Программирование STM8
- oleg110592
- Друг Кота
- Сообщения: 3832
- Зарегистрирован: Сб сен 10, 2011 17:46:25
Re: Программирование STM8
задержки на таймере так можно организовать:
http://sam3s-demo-source.googlecode.com ... rc/delay.c
там правда для STM8L, для STM8S должно подойти
http://sam3s-demo-source.googlecode.com ... rc/delay.c
там правда для STM8L, для STM8S должно подойти
Re: Программирование STM8
Спасибо
На таймере как сделать я знаю
Но это решение специфичное, его сложно/не возможно в библиотеку запихнуть
На таймере как сделать я знаю
Но это решение специфичное, его сложно/не возможно в библиотеку запихнуть
- oleg110592
- Друг Кота
- Сообщения: 3832
- Зарегистрирован: Сб сен 10, 2011 17:46:25
Re: Программирование STM8
это еще есть, не проверял
http://forum.easyelectronics.ru/viewtop ... 33&t=16950
http://forum.easyelectronics.ru/viewtop ... 33&t=16950
Re: Программирование STM8
вопрос про IAR
Почему у меня меню Project/Download имеет все пункты серые не активные?
Приходится грузить прошивку через Project/Download & Debug
програматор оригинальны stlink/v2
Почему у меня меню Project/Download имеет все пункты серые не активные?
Приходится грузить прошивку через Project/Download & Debug
програматор оригинальны stlink/v2
- oleg110592
- Друг Кота
- Сообщения: 3832
- Зарегистрирован: Сб сен 10, 2011 17:46:25
Re: Программирование STM8
в Help написано:
В ST Visual Develop + бесплатный Cosmic можно прошивать
Download
Commands for flash download and erase. Note that these menu commands are not available in IAR Embedded Workbench for STMicroelectronics STM8.
В ST Visual Develop + бесплатный Cosmic можно прошивать
Re: Программирование STM8
понял
не то, чтобы сильно напрягает - один лишний клик мышью, чтобы закрыть дебаггер после прошивки
но отсутствие возможности просто прошить без отладки выглядит странно
идти в другую программу для прошивки получится десяток лишних кликов, это явно лишнее
не то, чтобы сильно напрягает - один лишний клик мышью, чтобы закрыть дебаггер после прошивки
но отсутствие возможности просто прошить без отладки выглядит странно
идти в другую программу для прошивки получится десяток лишних кликов, это явно лишнее
- oleg110592
- Друг Кота
- Сообщения: 3832
- Зарегистрирован: Сб сен 10, 2011 17:46:25
Re: Программирование STM8
Спасение утопающих...
Есть в ST Visual develop файлик STVP_CmdLine.exe это командная строка для программатора. В иаре Tools->Configure Tools... можно указать этот экзешник и параметры командной строки. тогда можно прошить всего двумя кликами. Проверил - вроде работает, только прицепить чего нибудь в виде таргета пока нечего было. Лог прямо в окошко output иара:
параметры такие:
-BoardName=ST-LINK -Port=USB -ProgMode=SWD -Device=STM8S003F3 -FileProg=d:\Work\STM8.wrk\Proj\TrDsTi20STM8S003F3P6\Release\Exe\TrDsTi20STM8S003F3P6.hex
Есть в ST Visual develop файлик STVP_CmdLine.exe это командная строка для программатора. В иаре Tools->Configure Tools... можно указать этот экзешник и параметры командной строки. тогда можно прошить всего двумя кликами. Проверил - вроде работает, только прицепить чего нибудь в виде таргета пока нечего было. Лог прямо в окошко output иара:
STVP_CmdLine version 1.6
Verbose ON
Log activity ON
Display Progress OFF
Message box warning if protect option byte ON
Loop mode ON
Erase device OFF
Blank check device OFF
Verify device ON
Configuration:
BoardName=ST-LINK ST-LINK_ID=0 Device=STM8S003F3 Port=USB ProgMode=SWD
>>> Filling PROGRAM MEMORY image in computer with Blank Value
<<< Filling PROGRAM MEMORY image in computer succeeds
>>> Loading file d:\Work\STM8.wrk\Proj\TrDsTi20STM8S003F3P6\Release\Exe\TrDsTi20STM8S003F3P6.hex in PROGRAM MEMORY image in computer
<<< Loading file succeeds
Hit 'Esc' key to abort during communication.
>>> Programming PROGRAM MEMORY
(API) ERROR : Cannot communicate with the device !
Check the SWD cable connection and check all the needed pin connections on the SWD connector.
Reboot the ST-Link with USB cable.
<<< Programming PROGRAM MEMORY fails
параметры такие:
-BoardName=ST-LINK -Port=USB -ProgMode=SWD -Device=STM8S003F3 -FileProg=d:\Work\STM8.wrk\Proj\TrDsTi20STM8S003F3P6\Release\Exe\TrDsTi20STM8S003F3P6.hex
Re: Программирование STM8
oleg110592 спасибо!
переписал код с AVR для DHT22, там задержки на десятки нсек ногодрыгом
пока подобрал задержки циклами, но видел, что на stm8 c этим могут быть проблемы
какого рода проблемы?
подобрал задержки на голом stm8s103f3 и проверил датчик с частотой 2/4/8/16 мгц
потом перенес код в рабочее устройство с STM8S003F3 где работает TIM2, ADC, I2C и UART
заработало только на 16 мгц, на частотах ниже тайминги не попадают
и вообще как то странно себя МК повел, до добавления кода DHT22 который просто одна функция в теле main, все работало отлично на любой из чатсот 2/4/8/16
после добавления в main кода чтения dht основной цикл main исполняться перестал, это стало понятно по отсутствию ответов на UART
делаю пошаговую отладку - на строке до основного цикла в теле main там где включается ADC отладчик зависает, т.е. при нажатии F10 не происходит перехода на следующую строку
если поставить точку останова внутри хандлера ADC то туда исполнение прилетает бесконечно без возврата в main
при этом если поднять частоту до 16 - все работает как надо и не зависает на ADC
так же работает нормально если закоментарить код DHT ниже в основном цикле main
глюк или я что то упускаю?
переписал код с AVR для DHT22, там задержки на десятки нсек ногодрыгом
пока подобрал задержки циклами, но видел, что на stm8 c этим могут быть проблемы
какого рода проблемы?
подобрал задержки на голом stm8s103f3 и проверил датчик с частотой 2/4/8/16 мгц
потом перенес код в рабочее устройство с STM8S003F3 где работает TIM2, ADC, I2C и UART
заработало только на 16 мгц, на частотах ниже тайминги не попадают
и вообще как то странно себя МК повел, до добавления кода DHT22 который просто одна функция в теле main, все работало отлично на любой из чатсот 2/4/8/16
после добавления в main кода чтения dht основной цикл main исполняться перестал, это стало понятно по отсутствию ответов на UART
делаю пошаговую отладку - на строке до основного цикла в теле main там где включается ADC отладчик зависает, т.е. при нажатии F10 не происходит перехода на следующую строку
если поставить точку останова внутри хандлера ADC то туда исполнение прилетает бесконечно без возврата в main
при этом если поднять частоту до 16 - все работает как надо и не зависает на ADC
так же работает нормально если закоментарить код DHT ниже в основном цикле main
глюк или я что то упускаю?
- oleg110592
- Друг Кота
- Сообщения: 3832
- Зарегистрирован: Сб сен 10, 2011 17:46:25
Re: Программирование STM8
можт потому что программные задержки в STM8 организовывать плохо, "виноват" трехуровневый конвейер, таймер не зря изначально предлагался.
Тут мучения и решения с программными задержками описаны:
http://we.easyelectronics.ru/STM8/progr ... -stm8.html
http://we.easyelectronics.ru/STM8/progr ... ast-2.html
Тут мучения и решения с программными задержками описаны:
http://we.easyelectronics.ru/STM8/progr ... -stm8.html
http://we.easyelectronics.ru/STM8/progr ... ast-2.html
Re: Программирование STM8
Программные задержки всегда плохо. Особенно микросекундные. И дело не в СТМ с его конвейером. И не в таймере, а в его неправильном применении и в неправильном способе решении задачи. Там всё решается элементарно на уровне железа и прерывания. Нужно только абстрагироваться от устаревших решений на АВР.
Re: Программирование STM8
У dht примитивный протокол. Сдается мне решение с прерываниями будет более громоздким с непонятно каким выигрышем кроме "это правильно"
Re: Программирование STM8
Как по мне наоборот. У СТМ8 развитые прерывания. Не стоит их бояться. Главное правильно расставить приоритеты.
Re: Программирование STM8
боязнь здесь вобще ни при чем
это вопрос целесообразности
есть у вас пример реализации протокола DHT или похожего на прерываниях?
это вопрос целесообразности
есть у вас пример реализации протокола DHT или похожего на прерываниях?
Re: Программирование STM8
какая логика должна быть при работе с передачей на UART (UART1) с использованием буфера?
- первый вариант - в putc заношу бвйт в софтверный FIFO буфер и активирую прерывание по готовности TX. Из предположения, что при этом сработает прерывание, в прерывании я вынимаю байт из FIFO и заношу в регистр данных для передачи. Если буфер пуст - отключаю прерывания
- второй вариант - в putc смотрю, если FIFO пуст, а а TX готов - просто вношу байт в регистр TX для передачи, если не пуст или TX не готов то заношу байт в FIFO и все. Прерывание включаю один раз при инициализации
- первый вариант - в putc заношу бвйт в софтверный FIFO буфер и активирую прерывание по готовности TX. Из предположения, что при этом сработает прерывание, в прерывании я вынимаю байт из FIFO и заношу в регистр данных для передачи. Если буфер пуст - отключаю прерывания
- второй вариант - в putc смотрю, если FIFO пуст, а а TX готов - просто вношу байт в регистр TX для передачи, если не пуст или TX не готов то заношу байт в FIFO и все. Прерывание включаю один раз при инициализации
- FireProoF
- Мучитель микросхем
- Сообщения: 424
- Зарегистрирован: Чт май 14, 2015 15:11:39
- Откуда: Саратов
Re: Программирование STM8
Всем привет. Есть у кого опыт измерения напряжения питания. В курсе, что его можно измерить с помощью внутреннего ИОН, но как его подать на канал АЦП?
P.S. и что за VCAP. В ДШ: 1.8V regulayor capacitor. Не оно?
P.S. и что за VCAP. В ДШ: 1.8V regulayor capacitor. Не оно?
-
Alexeyslav
- Друг Кота
- Сообщения: 4550
- Зарегистрирован: Чт май 05, 2011 21:26:34
- Откуда: Украина, Славутич
- Контактная информация:
Re: Программирование STM8
Его не надо подавать на канал АЦП, он уже давно подключен к одному из старших(внутренних) 8-ми каналов мультиплексора, его надо только выбрать а какой именно канал выбирать для этого - заглянуть в даташит.
Там же есть канал подключенный напрямую к AGND и в некоторых чипах рядом же находится сигнал со встроенного терморезистора.
Там же есть канал подключенный напрямую к AGND и в некоторых чипах рядом же находится сигнал со встроенного терморезистора.
- FireProoF
- Мучитель микросхем
- Сообщения: 424
- Зарегистрирован: Чт май 14, 2015 15:11:39
- Откуда: Саратов
Re: Программирование STM8
Ах да, забыл указать, что использую STM8S103F. Кажется терморезистор в L-серии. Попозже посмотрю в ДШ про каналы. Когда бегло смотрел, то не находил.
Пролистал еще раз ДШ и РМ и ничего про заветный опорный источник не нашел.
У меня stm8s в корпусе SO20.
Пролистал еще раз ДШ и РМ и ничего про заветный опорный источник не нашел.
У меня stm8s в корпусе SO20.
Re: Программирование STM8
EugenyAM писал(а):Сейчас готовим цикл статей об освоении STM8 с нуля на личных примерах, скоро будет первая - про мигание светодиодом
Первая статья опубликована, ждем комментариев...
http://eugenemcu.ru/publ/11-1-0-66
Хорошая идея, но вот зайти по ссылке не получается
Вылезает вот это
Это не совсем то, что я ожидал увидеть
Re: Программирование STM8
вопросы есть по отладке в IAR
- когда используешь Debug without download он должен стартовать с main так же как Download & Debug?
почему то стартует где попало
- отчего может быть такое - после остановки по точке останова при нажатии F10 не переходит на следующую строку, даже по F5 зависает на строке с точкой отсанова
чтобы пройти дальше надо выключить точку останова и тогда идет дальше
раньше такого не было, может я какие-то настройки сбил
- когда используешь Debug without download он должен стартовать с main так же как Download & Debug?
почему то стартует где попало
- отчего может быть такое - после остановки по точке останова при нажатии F10 не переходит на следующую строку, даже по F5 зависает на строке с точкой отсанова
чтобы пройти дальше надо выключить точку останова и тогда идет дальше
раньше такого не было, может я какие-то настройки сбил
- FireProoF
- Мучитель микросхем
- Сообщения: 424
- Зарегистрирован: Чт май 14, 2015 15:11:39
- Откуда: Саратов
Re: Программирование STM8
Подпаялся я к выводу Vcap до конденсатора ради 1.8В. Подключил его к АЦП. На выходе АЦП при питании МК - 561, что соответствует 3.3В опорного напряжения АЦП, хотя я питаю МК 4В специально. 
