понял не то, чтобы сильно напрягает - один лишний клик мышью, чтобы закрыть дебаггер после прошивки но отсутствие возможности просто прошить без отладки выглядит странно
идти в другую программу для прошивки получится десяток лишних кликов, это явно лишнее
Спасение утопающих... Есть в 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
>>> 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.
переписал код с 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 глюк или я что то упускаю?
Программные задержки всегда плохо. Особенно микросекундные. И дело не в СТМ с его конвейером. И не в таймере, а в его неправильном применении и в неправильном способе решении задачи. Там всё решается элементарно на уровне железа и прерывания. Нужно только абстрагироваться от устаревших решений на АВР.
какая логика должна быть при работе с передачей на UART (UART1) с использованием буфера? - первый вариант - в putc заношу бвйт в софтверный FIFO буфер и активирую прерывание по готовности TX. Из предположения, что при этом сработает прерывание, в прерывании я вынимаю байт из FIFO и заношу в регистр данных для передачи. Если буфер пуст - отключаю прерывания - второй вариант - в putc смотрю, если FIFO пуст, а а TX готов - просто вношу байт в регистр TX для передачи, если не пуст или TX не готов то заношу байт в FIFO и все. Прерывание включаю один раз при инициализации
Карма: 1
Рейтинг сообщений: 7
Зарегистрирован: Чт май 14, 2015 15:11:39 Сообщений: 424 Откуда: Саратов
Рейтинг сообщения:0
Всем привет. Есть у кого опыт измерения напряжения питания. В курсе, что его можно измерить с помощью внутреннего ИОН, но как его подать на канал АЦП? P.S. и что за VCAP. В ДШ: 1.8V regulayor capacitor. Не оно?
Его не надо подавать на канал АЦП, он уже давно подключен к одному из старших(внутренних) 8-ми каналов мультиплексора, его надо только выбрать а какой именно канал выбирать для этого - заглянуть в даташит. Там же есть канал подключенный напрямую к AGND и в некоторых чипах рядом же находится сигнал со встроенного терморезистора.
Карма: 1
Рейтинг сообщений: 7
Зарегистрирован: Чт май 14, 2015 15:11:39 Сообщений: 424 Откуда: Саратов
Рейтинг сообщения:0
Ах да, забыл указать, что использую STM8S103F. Кажется терморезистор в L-серии. Попозже посмотрю в ДШ про каналы. Когда бегло смотрел, то не находил. Пролистал еще раз ДШ и РМ и ничего про заветный опорный источник не нашел. У меня stm8s в корпусе SO20.
- когда используешь Debug without download он должен стартовать с main так же как Download & Debug? почему то стартует где попало
- отчего может быть такое - после остановки по точке останова при нажатии F10 не переходит на следующую строку, даже по F5 зависает на строке с точкой отсанова чтобы пройти дальше надо выключить точку останова и тогда идет дальше раньше такого не было, может я какие-то настройки сбил
Карма: 1
Рейтинг сообщений: 7
Зарегистрирован: Чт май 14, 2015 15:11:39 Сообщений: 424 Откуда: Саратов
Рейтинг сообщения:0
Подпаялся я к выводу Vcap до конденсатора ради 1.8В. Подключил его к АЦП. На выходе АЦП при питании МК - 561, что соответствует 3.3В опорного напряжения АЦП, хотя я питаю МК 4В специально.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения