Ассемблер 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Мгц
При проектировании источника питания важно правильно выбрать компоненты, чтобы обеспечить надежное функционирование прибора во всех возможных режимах работы при любых допустимых изменениях температуры окружающей среды, характера нагрузки и сетевого питания. Компоненты SUNCO идеально подходят для создания мощных индустриальных ИП, в том числе для сложных температурных условий. На основе детального анализа характеристик разберем как быстро подобрать подходящие силовые компоненты SUNCO для индустриальных ИП.
в общем, не очень понимаю, что надо, не зная задачи и принципов реализации... на 1-2 страницы раньше я выкладывал проверенный в железе код инициализации TIM1 и TIM2. TIM3 и TIM2 одинаковы, так что можно использовать тот код, просто заменив циферку 2 на 3. причём для TIM2 я использовал как раз одиночный режим. а прерывание, кмк, всё равно лучше использовать.
_________________ don't believe what u see,
don't believe what u read
Бренд MOSO Power пользуется популярностью во всем мире. Многочисленные вопросы свидетельствуют о том, что продукция этой компании вызывает интерес, а спрос на нее постоянно растет. Служба технической поддержки 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К.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения