Страница 66 из 130
Re: Программирование STM8
Добавлено: Вс мар 27, 2016 12:14:22
oleg110592
задержки на таймере так можно организовать:
http://sam3s-demo-source.googlecode.com ... rc/delay.c
там правда для STM8L, для STM8S должно подойти
Re: Программирование STM8
Добавлено: Вс мар 27, 2016 15:45:41
axillent
Спасибо
На таймере как сделать я знаю
Но это решение специфичное, его сложно/не возможно в библиотеку запихнуть
Re: Программирование STM8
Добавлено: Вс мар 27, 2016 19:00:43
oleg110592
Re: Программирование STM8
Добавлено: Пн мар 28, 2016 21:51:43
axillent
вопрос про IAR
Почему у меня меню Project/Download имеет все пункты серые не активные?
Приходится грузить прошивку через Project/Download & Debug
програматор оригинальны stlink/v2
Re: Программирование STM8
Добавлено: Вт мар 29, 2016 06:54:52
oleg110592
в Help написано:
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
Добавлено: Вт мар 29, 2016 07:55:19
axillent
понял
не то, чтобы сильно напрягает - один лишний клик мышью, чтобы закрыть дебаггер после прошивки
но отсутствие возможности просто прошить без отладки выглядит странно
идти в другую программу для прошивки получится десяток лишних кликов, это явно лишнее
Re: Программирование STM8
Добавлено: Вт мар 29, 2016 09:33:21
oleg110592
Спасение утопающих...
Есть в 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
Добавлено: Вт мар 29, 2016 10:05:28
axillent
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
глюк или я что то упускаю?
Re: Программирование STM8
Добавлено: Вт мар 29, 2016 10:42:40
oleg110592
можт потому что программные задержки в STM8 организовывать плохо, "виноват" трехуровневый конвейер, таймер не зря изначально предлагался.
Тут мучения и решения с программными задержками описаны:
http://we.easyelectronics.ru/STM8/progr ... -stm8.html
http://we.easyelectronics.ru/STM8/progr ... ast-2.html
Re: Программирование STM8
Добавлено: Вт мар 29, 2016 15:57:31
scorpi_0n
Программные задержки всегда плохо. Особенно микросекундные. И дело не в СТМ с его конвейером. И не в таймере, а в его неправильном применении и в неправильном способе решении задачи. Там всё решается элементарно на уровне железа и прерывания. Нужно только абстрагироваться от устаревших решений на АВР.
Re: Программирование STM8
Добавлено: Вт мар 29, 2016 16:59:27
axillent
У dht примитивный протокол. Сдается мне решение с прерываниями будет более громоздким с непонятно каким выигрышем кроме "это правильно"
Re: Программирование STM8
Добавлено: Вт мар 29, 2016 18:37:36
scorpi_0n
Как по мне наоборот. У СТМ8 развитые прерывания. Не стоит их бояться. Главное правильно расставить приоритеты.
Re: Программирование STM8
Добавлено: Вт мар 29, 2016 20:18:10
axillent
боязнь здесь вобще ни при чем
это вопрос целесообразности
есть у вас пример реализации протокола DHT или похожего на прерываниях?
Re: Программирование STM8
Добавлено: Вт апр 05, 2016 10:08:41
axillent
какая логика должна быть при работе с передачей на UART (UART1) с использованием буфера?
- первый вариант - в putc заношу бвйт в софтверный FIFO буфер и активирую прерывание по готовности TX. Из предположения, что при этом сработает прерывание, в прерывании я вынимаю байт из FIFO и заношу в регистр данных для передачи. Если буфер пуст - отключаю прерывания
- второй вариант - в putc смотрю, если FIFO пуст, а а TX готов - просто вношу байт в регистр TX для передачи, если не пуст или TX не готов то заношу байт в FIFO и все. Прерывание включаю один раз при инициализации
Re: Программирование STM8
Добавлено: Ср апр 06, 2016 19:46:53
FireProoF
Всем привет. Есть у кого опыт измерения напряжения питания. В курсе, что его можно измерить с помощью внутреннего ИОН, но как его подать на канал АЦП?
P.S. и что за VCAP. В ДШ: 1.8V regulayor capacitor. Не оно?
Re: Программирование STM8
Добавлено: Ср апр 06, 2016 20:41:14
Alexeyslav
Его не надо подавать на канал АЦП, он уже давно подключен к одному из старших(внутренних) 8-ми каналов мультиплексора, его надо только выбрать а какой именно канал выбирать для этого - заглянуть в даташит.
Там же есть канал подключенный напрямую к AGND и в некоторых чипах рядом же находится сигнал со встроенного терморезистора.
Re: Программирование STM8
Добавлено: Ср апр 06, 2016 20:45:31
FireProoF
Ах да, забыл указать, что использую STM8S103F. Кажется терморезистор в L-серии. Попозже посмотрю в ДШ про каналы. Когда бегло смотрел, то не находил.
Пролистал еще раз ДШ и РМ и ничего про заветный опорный источник не нашел.
У меня stm8s в корпусе SO20.
Re: Программирование STM8
Добавлено: Чт апр 07, 2016 14:39:05
nuisance
EugenyAM писал(а):Сейчас готовим цикл статей об освоении STM8 с нуля на личных примерах, скоро будет первая - про мигание светодиодом
Первая статья опубликована, ждем комментариев...
http://eugenemcu.ru/publ/11-1-0-66
Хорошая идея, но вот зайти по ссылке не получается
Вылезает вот это
Спойлер

Это не совсем то, что я ожидал увидеть

Re: Программирование STM8
Добавлено: Чт апр 07, 2016 20:22:39
axillent
вопросы есть по отладке в IAR
- когда используешь Debug without download он должен стартовать с main так же как Download & Debug?
почему то стартует где попало
- отчего может быть такое - после остановки по точке останова при нажатии F10 не переходит на следующую строку, даже по F5 зависает на строке с точкой отсанова
чтобы пройти дальше надо выключить точку останова и тогда идет дальше
раньше такого не было, может я какие-то настройки сбил
Re: Программирование STM8
Добавлено: Чт апр 07, 2016 20:40:16
FireProoF
Подпаялся я к выводу Vcap до конденсатора ради 1.8В. Подключил его к АЦП. На выходе АЦП при питании МК - 561, что соответствует 3.3В опорного напряжения АЦП, хотя я питаю МК 4В специально.
