Ассемблер COSMICа очень удобен, но т.к. он не совместим с "чудом STVD", то использовать *.inc - файлы последнего не получалось. Лень и прогресс победили - написал маленькую консольную утилиту, которая переводит *.asm-файл STVD из папки \asm\include , в то что "понятно" COSMICу. Для запуска вводите : st2cosmic.exe "имя_*.asm-файла" или : st2cosmic.exe "имя_*.asm-файла" "имя_выходного_файла"
Зарегистрирован: Вт мар 18, 2008 10:29:04 Сообщений: 43
Рейтинг сообщения:0
Снова Мяу После некоторого перерыва вновь занялся написанием программы на STM8S207K6 хочу создать задержку порядка 4 мс. для этого решил использовать таймер3 решил просто отслеживать путем однократного запуска его. Делаю с целью записи в EEPROM
написал подпрограмму типа:
Код:
void DATA_SAVE_EEPROM(uint32_t ADR_EEPROM, uint8_t DATA) { uint8_t DataMemory; DataMemory = FLASH_ReadByte(ADR_EEPROM); if (DataMemory!=DATA) { FLASH_Unlock(FLASH_MEMTYPE_DATA); FLASH_ProgramByte(ADR_EEPROM,DATA); FLASH_Lock(FLASH_MEMTYPE_DATA); } TIM3->CR1|=TIM3_CR1_OPM; //рижим работы в 1 проход TIM3->CR1|=TIM3_CR1_CEN; //Разрешаем счет while(TIM3->CR1|=TIM3_CR1_CEN){}; //Ждем остановки счетчика.
Зарегистрирован: Вт мар 18, 2008 10:29:04 Сообщений: 43
Рейтинг сообщения:0
TIM3->CR1|=TIM3_CR1_OPM; //рижим работы в 1 проход TIM3->CR1|=TIM3_CR1_CEN; //Разрешаем счет
расписал так для себя потом перепишу когда буду оптимизировать код TIM3->CR1|=TIM3_CR1_OPM | TIM3_CR1_CEN;
Можно сделать и по прерыванию, но цель, чтоб данное действие было даже не вторичной функцией, а третично, то есть запись в память будет происходить очень редко (порядка 8 байт в 5 и более минут )
Не пробовал - жду микросхему. Остальные настройки: по дефолту, и пред делитель частоты = 2 тактирую от внутреннего генератора на 16Мгц
Открыта удобная площадка с выгодными ценами, поставляющая весь ассортимент продукции, производимой компанией MEAN WELL – от завоевавших популярность и известных на рынке изделий до новинок. MEAN WELL.Market предоставляет гарантийную и сервисную поддержку, удобный подбор продукции, оперативную доставку по России.
На сайте интернет-магазина посетители смогут найти обзоры, интересные статьи о применении, максимальный объем технических сведений.
в общем, не очень понимаю, что надо, не зная задачи и принципов реализации... на 1-2 страницы раньше я выкладывал проверенный в железе код инициализации TIM1 и TIM2. TIM3 и TIM2 одинаковы, так что можно использовать тот код, просто заменив циферку 2 на 3. причём для TIM2 я использовал как раз одиночный режим. а прерывание, кмк, всё равно лучше использовать.
_________________ don't believe what u see,
don't believe what u read
Продукция MOSO предназначена в основном для индустриальных приложений, использует инновационные решения на основе более 200 собственных патентов для силовой электроники и соответствует международным стандартам. LED-драйверы MOSO применяются в системах наружного освещения разных отраслей, включая промышленность, сельское хозяйство, транспорт и железную дорогу. В ряде серий реализована возможность дистанционного контроля и программирования работы по заданному сценарию. Разберем решения MOSO
подробнее>>
Здравствуйте! Подскажите новичку. Пытаюсь прошить внешний МК используя stm8s-discovery. Распаял 2 моста. потом присоединил провода от CN7: 1) Питание; 2) SWIM; 3) Земля; 4) RESET присоединил это к соответствующим ногам МК (Питание - analog power supply, Земля - analog ground) выбрал в STVD соответствующий МК. Но после нажатия на кнопку отладки вылазит ошибка swim error [30006]: comm init error: chip does not answer
пробовал отдельно подавать питание на МК - та же ошибка Помогите пожалуйста
Здравствуйте! Подскажите новичку. Пытаюсь прошить внешний МК используя stm8s-discovery. Распаял 2 моста. потом присоединил провода от CN7: 1) Питание; 2) SWIM; 3) Земля; 4) RESET присоединил это к соответствующим ногам МК (Питание - analog power supply, Земля - analog ground) выбрал в STVD соответствующий МК. Но после нажатия на кнопку отладки вылазит ошибка swim error [30006]: comm init error: chip does not answer
пробовал отдельно подавать питание на МК - та же ошибка Помогите пожалуйста
почему аналог-то? analog power supply нужно сцепить вместе с VCC и подать туда питалово от отладчика, аналог граунд - с цифровой землёй и подать туда землю отладчика. не работает потому, что не стартует ядро, которое питается от других ног - цифровых. вам бы для начала типовые схемы включения хотя бы посмотреть, чтобы не сжечь ничего...
_________________ don't believe what u see,
don't believe what u read
VCC это Digital Power Supply ? Просто именно Vcc в даташите не нашел. А типовые схемы подключения, если честно, не знаю даже где искать
Получилось прошить МК который стоит в discovery после отделения его от ST-Link. Спасибо вам! Но теперь пытаюсь прошить внешний МК stm8s105K6B6. Все подключил как вы сказали, выбрал в проекте соответствующий МК, но вылазит ошибка: swim error [30004]: comm timeout Если можете, помогите пожалуйста разобраться
VCC это Digital Power Supply ? Просто именно Vcc в даташите не нашел. А типовые схемы подключения, если честно, не знаю даже где искать
Получилось прошить МК который стоит в discovery после отделения его от ST-Link. Спасибо вам! Но теперь пытаюсь прошить внешний МК stm8s105K6B6. Все подключил как вы сказали, выбрал в проекте соответствующий МК, но вылазит ошибка: swim error [30004]: comm timeout Если можете, помогите пожалуйста разобраться
да, он самый)
короче, план такой: открываем дш, смотрим все ноги, начинающиеся на Vss, соединяем их вместе, подключаем к земле. потом берём все ноги, начинающиеся на Vdd, соединяем их вместе, подключаем к питалову. потом находим ногу Vcap и суём между ней и землёй кондёр, по дш - 0.47-3.3 мкФ, у меня работает 1 мкФ. потом уже подключаем SWIM и RESET, причём последнее опционально (и реально нужно только будет для отладки засыпающего МК). ещё между питаловом и землёй рекомендовал бы поставить керамику на 0.1..несколько мкФ - так надо делать для всей цифровой (и не только) электроники всегда.
_________________ don't believe what u see,
don't believe what u read
самый бюджетный вариант - загрузчик через UART (потребуется только преобразователь UART-RS-232 или какой-нибудь UART-USB)
Прошу сильно не пинать, у меня есть аппаратура радиоуправление, где стоит процессор STM8S105x6, есть переходник USB 2.0 to UART TTL 6PIN Module Serial Converter CP2102 вот на ebay похожий. Я могу перепрошить им этот микроконтроллер?
Зарегистрирован: Ср сен 06, 2006 10:50:14 Сообщений: 87 Откуда: Москва
Рейтинг сообщения:0
Прошу прощения за глупый вопрос, но что будет на выходе контроллера, если я в порт запишу "1". В АВР вроде при записи "1" в порт, на выходе появлялась логическая "1", то есть +5В Здесь же когда пишу "mov PD_DDR,#1", он наоборот сажает вывод на землю. Можно ли настроить, что бы при записи в порт "1" на выходе то же была логическая "1"?
PD_DDR - регистр направления порта, 1 - на вывод PD_ODR - регистр вывода данных, если там изначально 0, то при записи в PD_DDR=1 он и появится на выходе.
В вашем случае нужно записать в PD_DDR единицы в нужных битах при инициализации, а состояние ножек менять записью в PD_ODR.
Наткнулся в инете на ассемблер для STM8 (ST7,6). Вообще то этим кросс-ассемблером пользовался во времена i8031, но в последней версии V5.03 в список добавились и 8-ми битные ST. Написал мелкую программку для STM8S103. После работы линкера получился файл *.s28 и не смотря на ругань STVP ( он ждал *.s19) все заработало.
.PS .. с настройками ключей сильно не разбирался, скорее всего все можно настроить. Да и все дается с открытыми исходниками, так что можно и "подшаманить"...
А разве для записи во флеш-память обязательно выжидать определенное время перед записью следующей ячейки? Неужели нет бита-индикатора готовности EEPROM к записи? Или хотябы прерывание по окончанию записи...
У самого лежит заказанная отладочная платка с STM32 103-им, просто еще руки не дошли.
Сразу прошу прощения за вопрос, но гугл ничего про это не знает Есть плата STM32VLDISCOVERY (с интерфейcом SWD), но я хочу прошить ею STM8S003f3, а ей нужен SWIM. Есть какие-то варианты или покупать STM8-DISCOVERY со SWIM. Денег не жалко, но все же и там и там ST-LINK. Может какая-то прошивка есть, или SWIM где то на ножках присутствует?
.... но я хочу прошить ею STM8S003f3, а ей нужен SWIM
на DISCOVERY урезанная версия ST-LINK. Купите DISCOVERY под STM8 или полноценный ST-LINK. Кажется где-то проскакивала информация о замене прошивки в DISCOVERY, но при ее цене в 10$, нужды экспериментировать не вижу ИМХО.
Вопрос по ассемблеру по STM8S. Почему в программах рекомендованы метки типа long? Только для совместимости с будущими, более емкими, чипами? А если мне таблицу в памяти программ хочется, то тогда для этого командами работающими с трехбайтными адресами надо использовать? А просто Х, как указатель, нельзя использовать? Все равно у того чипа, для которого пишется (STM8S003F3), нет столько адресного пространства. Я попробовал использовать для меток двухбайтный тип, все работает (просто по Х), но чем это черевато? Си не предлагать. Не хочу.
на счет "рекомендованности" long не слышал. Команды работающие с трехбайтными адресами дополняются f - callf, jpf. Там где объем памяти не превышает 64К они не нужны. 16-ти разрядные регистры Х,У могут "достать" до любой ячейки памяти в пределах 64К.
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения