Начну новую тему по микроконтроллерам, пока обделенным вниманием на форуме. Сразу выкладываю кое-какие наработки в виде исходников. Если что не понятно постараюсь разъяснить. Может стиль программирования через одно место, но практически все проверено в работе, потому сильно прошу не пинать.
Вложения:
Комментарий к файлу: Проект в STVD на си и асме Cosmic С_1Wire_LCD.rar [219.22 KiB]
Скачиваний: 3580
Для STM8 есть отличный стартовый набор с USB отладчиком ! Очень дешево и доступно. STM8S-DISCOVERY - Отладочный набор на базе микроконтроллера STM8S105 с интегрированным на плату программатором отладчиком ST-Link для микроконтроллеров STM8S.
_________________ Будете проходить мимо- проходите!
Последний раз редактировалось radio-kot Вт окт 05, 2010 01:24:26, всего редактировалось 1 раз.
А не могли бы вы для быстрого старта,указать на наилучшую на ваш взгляд среду разработки и схему программатора,да может быть,извините за наглость,у вас есть ссылки на литературу на русском по контроллерам STM8S...
Для STM8 есть отличный стартовый набор с USB отладчиком
Те, для кого я создавал эту тему знают что это STM8S-DISCOVERY, и даже имеют его. Кстати о программировании STM8S. Если не нужен отладчик, прошивку можно залить с помощью встроенного загрузчика в моделях medium-density (STM8S105) и high-density (STM8S20x) через UART, SPI, CAN (в зависимости от конкретной модели). При этом есть несколько важных моментов: 1) "Чистый" микроконтроллер всегда стартует с загрузчика. 2) Если в микроконтроллере уже есть прошивка, а соответствующий настроечный байт (OPTBL) разрешает старт с загрузчика, то микроконтроллер ждет 1 секунду инициирующей программирование последовательности по одному из интерфейсов, если последовательность не получена в течение этой секунды, то управление передается прошивке пользователя. 3) Если есть прошивка, а настроечный байт (OPTBL) не разрешает старт бутлоадера, то микроконтроллер всегда стартует с программы пользователя.
Цитата:
А не могли бы вы для быстрого старта,указать на наилучшую на ваш взгляд среду разработки и схему программатора
Выбор сред для программирования не велик. Я пользую следующее: 1) Среда STVD + STVP - в ней ассемблер и отладчик-программатор - скачивается бесплатно с сайта ST Microelectronics. 2) Компилятор Cosmic (Си+ассемблер) - интегрируется в STVD (до 16 килобайт кода - бесплатный - ключ по мылу, лечение есть в интернетах). 3) Программатор ST-LINK (Я пользуюсь STM8S-DISCOVERY - в нем и программатор ST-LINK и отладочная плата - раза в 3 дешевле, чем просто программатор, для этой серии его достаточно). Схемы программатора подобной AVR-овским и PIC-овским как таковой нет, самый бюджетный вариант - загрузчик через UART (потребуется только преобразователь UART-RS-232 или какой-нибудь UART-USB). Документации на русском практически нет - встречал в интернетах пару коротких статеек и все.
_________________ - Если вы такие умные, то почему тогда строем не ходите? ἓν οἶδα ὅτι οὐδὲν οἶδα (с) Σωκράτης
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
надо ли как то модифицировать прошивку для камня с прошитым загрузчиком или достаточно убедится что размер проги не превышает размер флеша - размер бутлодера.
_________________ Будете проходить мимо- проходите!
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
Для тех, кому трудно по тем или иным причинам изучать даташиты на английском перечислю что есть в STM8S (вольный перевод первой страницы даташита - пишу по памяти, возможно придется корректировать): 1. регистры: 8-битный аккумулятор A, индексные 16-разрядные регистры X, Y, 8-разрядный регистр состояния, 24-разрядный программный счетчик (позволяет адресовать 16 Мибайтное пространство адресов), 16-разрядный указатель стека. Все пространство ОЗУ по сути является файлом регистров общего назначения. 2. Flash-память программ от 4 до 128 Кибайт (10 000 циклов перезаписи) 3. EEPROM до 2 Кибайт (300 000 циклов перезаписи) 4. ОЗУ до 6 Кибайт 5. Тактовая частота до 24 МГц 6. Питание от 2,95 вольт (причем при максимальной тактовой частоте) 7. Встроенные тактовые RC-генераторы 128 кГц и 16МГц 8. Кварцевый генератор (естественно с внешним кварцевым резонатором) 9. Система контроля тактовой частоты (clock monitor) - при неисправности кварцевого генератора тактирование автоматом переводится на внутренний RC-генератор. 10. 32 вектора прерывания от периферии, в том числе одно программное прерывание, большинство портов могут быть входами внешних прерываний. 11. Таймеры 8 и 16-разрядные (всего до 4) 12. Каналы ШИМ (до 9) 13. Интерфейсы USART, SPI, IIC, beCAN 14. 10-разрядный АЦП до 16 каналов 15. С точки зрения программиста все пространство памяти (Flash, EEPROM, RAM, регистры периферии и настроечные байты (Option bytes)) линейное и к нему применимы все 20 методов адресации, поэтому исполнение кода возможно и из ОЗУ (в загрузчиках моделей без функции чтения во время записи Flash-памяти процедуры записи в Flash перемещаются в ОЗУ и там выполняются) и даже EEPROM. 16. Встроенный загрузчик (STM8S105 и выше). 17. Автоматическое сохранение контекста при входе в прерывание и восстановление при выходе. 18. Однопроводный интерфейс программирования/отладки SWIM позволяет отлаживать прошивку по шагам и получить доступ ко всему пространству памяти, регистрам АЛУ и большей части регистров периферии из программы-отладчика (STVD) (на самом деле для подключения отладчика требуется еще два провода: RESET и "общий").
Ну и конечно надо указать "минусы": 1. Минимальная тактовая частота от внешнего кварца - 1 МГц. 2. Отсутствует аналоговый компаратор (есть его цифровой аналог в составе АЦП). 3. Не все порты имеют повышенную нагрузочную способность (до 18). 4. У маловыводных моделей нет входа опорного напряжения АЦП (зато у многовыводных есть вход "нижнего" опорного напряжения) и оно всегда равно напряжению питания АЦП. 5. Нет моделей с аппаратным USB. 6. У моделей low-density нет встроенного загрузчика. 7. Свой интерфейс программирования/отладки SWIM не позволяет собрать простой программатор. 8. При тактировании частотой выше 16 МГц (STM8S20x) требуется настраивать бит вставки тактов ожидания при обращении к памяти. 9. Минимальное напряжение питания 2,95 Вольт. (Для меньшего есть STM8L). 10. И обнаружил одну не очень приятную особенность (прописанную в даташите STM8S105, другие модели не проверял) аппаратного SPI: при низком логическом уровне на входе выбора ведомого (NSS) SPI переходит в режим ведомого, даже если этот пин настроен как выход, а SPI настроен в режиме ведущего. 11. Автоматическое сохранение контекста при входе в прерывание "задерживает" на 6 тактов начало функции обработчика прерывания с момента наступления события вызвавшего его. 12. Отсутствуют асинхронные таймеры и PLL, что ограничивает частоту 8-битного ШИМ до 62500 Гц (при тактовой частоте 16 МГц), а 16-битного - до 244 Гц (при тактовой 16 МГц). Если еще что вспомню или обнаружу - дополню список.
_________________ - Если вы такие умные, то почему тогда строем не ходите? ἓν οἶδα ὅτι οὐδὲν οἶδα (с) Σωκράτης
Последний раз редактировалось DrWatson Вс окт 03, 2010 14:11:39, всего редактировалось 3 раз(а).
надо ли как то модифицировать прошивку для камня с прошитым загрузчиком или достаточно убедится что размер проги не превышает размер флеша - размер бутлодера.
В моделях с встроенным загрузчиком код этого самого загрузчика находится в ROM (с адреса 0x6000) - эта область не перепрограммируемая (типа масочного ПЗУ), для прошивки пользователя (которая начинается с адреса 0x8000) доступно все адресное пространство Flash-памяти программ. В то же время есть возможность у всех моделей прошить свой собственный защищенный от перезаписи загрузчик (так называемый User Boot Code) размером до 255 страниц, каждая страница от 64 до 512 байт в зависимости от модели, начинающийся с адреса 0x8000, тогда основная программа будет размешаться выше по адресам (над загрузчиком).
_________________ - Если вы такие умные, то почему тогда строем не ходите? ἓν οἶδα ὅτι οὐδὲν οἶδα (с) Σωκράτης
Последний раз редактировалось DrWatson Вс окт 03, 2010 12:29:02, всего редактировалось 1 раз.
Зарегистрирован: Сб сен 25, 2010 10:13:00 Сообщений: 14
Рейтинг сообщения:0
Да, автор темы забыл сказать еще про то что адресация в данной линии абсолютно линейная, поэтому в некоторых случаях возможно и выполнение команд из срам памяти. Да, между прочим....ст линк (программатор и отладчик) стоит очень дешево в сравнение с тем же инструментарием для AVR.
Я уже пообщался с данными мк. Стоит отметить очень легкое освоение периферии. Просто влюблен в stm8l152 который по возможностям просто рвет м32 от атмел. Также неплох контроллер, стоящщий в дискавери. Так что советую. Могу так же поделиться своими наработками (жк по SPI, I2C часы, приемник..... ШИМ)
DrWatson Я понимаю что в Гондурасе они в любом ларьке валяются ... Где в России их купить/заказать , с отправкой почтой ? И контроллеры и программатор .
Гы... нашел в Элитане , и цены вроде ничего.
DrWatson Какой программатор лучше взять ST-LINK или DISCOVERY? Какие контроллеры из STM8 и STM32 ?
Брал там же (не в Гондурасе ) и STM8S-DISCOVERY и контроллеры (брал самые дешевые) - STM8S103xx - в 20-ногом SSOP (шаг у них 0,65, но, ЛУТ потянет, не говоря уж о ФР), STM8S903 - LQFP-32, шаг ног 0,8 - в самый раз - на нем сейчас делаю усилок, по одному STM8S207 и STM8S208 - много памяти и ног. с STM32F-чего-то-там (ARM Cortex M3) взял на пробу STM32-PRIMER2 - недорого и сердито, но пока руки не дошли поковырять его. Подумываю о (а точнее коплю на) покупке ST-LINK и парочке STM32 (шаг выводов у них 0,5, что несколько пугает, но через макетку думаю не проблема будет их задействовать). А DISCOVERY для STM8S вполне достаточно (достаточно две перемычки разомкнуть или отломить часть ST-LINK), разъемчик SWIM 4-контактный там есть, т.е. полнофункциональный внутрисхемный программатор/отладчик (но только для STM8S). Чуть попозже выложу таблицу "Ordering infomation" на русском, по которой можно выбрать (узнать) контроллер по параметрам, если будут желающие лицезреть её.
_________________ - Если вы такие умные, то почему тогда строем не ходите? ἓν οἶδα ὅτι οὐδὲν οἶδα (с) Σωκράτης
Нужную документацию не всегда получается быстро найти (особенно если трудно сформулировать что точно интересует), потому выкладываю названия документов, которые могут понадобиться для освоения STM8S. Забиваем код документа в строку поиска на главной странице сайта http://www.st.com и в результатах тыкаем в ссылку с пометкой [PDF] - скачиваем, вникаем. В первую очередь понадобится даташит на конкретный микроконтроллер, на самом деле их всего около 4: STM8S103xx, STM8S903x3, STM8S105xx, STM8S20xx (Их можно скачать в подразделе Datasheet на странице http://www.st.com/mcu/familiesdocs-113.html , там же и файлы перечисленные ниже). Затем: RM0016 – описание периферии семейства STM8S PM0044 – описание ядра, памяти, набора команд (ассемблерных) семейства STM8S UM0144 – Описание ассемблера-линковщика от ST UM0036 – Руководство пользователя по STVD – ST Visual Develop – среда разработки UM0151 – Руководство пользователя по STVP – ST Visual Programmer — инструментарий программирования (прошивки) AN2752 – Старт с STM8S – немного о периферии, много ссылок на другие документы на STM8S по разным темам. С первыми тремя документами (и знанием английского) уже можно начинать чего-то программировать. А дальше можно посмотреть эти: UM0833 – Руководство пользователя по демо-прошивке STM8S-DISCOVERY UM0834 – разработка и отладка программы для STM8S-DISCOVERY UM0856 – ШИМ в STM8S-DISCOVERY UM0848 – Индикация переменного напряжения на светодиодной линейке в STM8S-DISCOVERY UM0845 – Регулируемая частота бипера в STM8S-DISCOVERY AN3143 – работа со звуком в STM8 UM0470 – Руководство по протоколу SWIM и модулю отладки UM0560 — Руководство пользователя по загрузчику STM8S/L UM0627 – Руководство пользователя по внутрисхемному программатору/отладчику ST-LINK AN2658 – Использование АЦП STM8S AN2687 – Драйвер «бесконтроллерного» LCD на STM8S20xxx AN2719 – Техники увеличения точности АЦП STM8S AN2927 – принципы построения RC сенсорных датчиков TN0075 – FAQ по библиотеке сенсорных датчиков TN0189 – FAQ по бутлоадеру STM8 AN2822 – калибровка внутреннего высокочастотного генератора AN2857 – Управление питанием STM8S AN2867 – рекомендации по проектированию тактового генератора для микроконтроллеров от ST PM0051 – описание организации памяти, программирования Flash, организации пользовательского загрузчика. Ну еще много других...
_________________ - Если вы такие умные, то почему тогда строем не ходите? ἓν οἶδα ὅτι οὐδὲν οἶδα (с) Σωκράτης
как на счет языка ассемблера для этого микроконтроллера с такими его особеностями(регистры, озу)? неужели доступ к ОЗУ такой же быстрый как и к регистрам? хотелось бы увидеть кусок кода с описанием, чтобы было показано наглядно, как это работает.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 27
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения