Не получается настроить таймер в 30 мс. Минимум 60. даже при LoadCount=1
HAL_TIMER_WRITE32((TIMER_INTERVAL*TimerId + TIMER_LOAD_COUNT_OFF),
LoadCount);
HAL_TIMER_WRITE32((TIMER_INTERVAL*TimerId + TIMER_LOAD_COUNT_OFF),
LoadCount);
Минимум 31 мкс (30.5175 мкс... 1/32768). Count обычно = (кол-во - 1).Не получается настроить таймер в 30 мс. Минимум 60. даже при LoadCount=1
На ините таймера видел заглушку 0=>1. В моем обработчике таймера почти все по феншую. Цикл 60 или 90 мкс. 32кгц хотелось для эксперимента, я и так выкосил из драйвера 95% usleep. По большому счету и 60 кгц для данного эксперимента было-бы не лишнимМинимум 31 мкс (30.5175 мкс... 1/32768). Count обычно = (кол-во - 1).
И куда вам прерывания в 32 кГц? Пожалейте систему - она тоже работать хочет. Для экспериментов под RTOS с CLK 83 МНz тянет прерывания и за 100 кГц, но зачем...
Я смотрю несколько шире - если есть возможность не ставить дополнительных контроллеров - надо этим пользоватьсяБрать WiFi-SoC и делать из него эмуляцию аппаратного драйвера ногодрыгом как-то не сходится с задачами данного чипа![]()
Работа с GPIO - это 0.33 мкс на одно обращение. В прерывании нужна их пачка. Когда работать другим задачам? Контролеров отложенных транзакций на шинах у данного MCU нет и он не может исполнять команды, пока стоит ready от шины. Ну нет у него PCI-E последних редакцийНа ините таймера видел заглушку 0=>1. В моем обработчике таймера почти все по феншую. Цикл 60 или 90 мкс. 32кгц хотелось для эксперимента, я и так выкосил из драйвера 95% usleep. По большому счету и 60 кгц для данного эксперимента было-бы не лишним
Я смотрю несколько шире - если есть возможность не ставить дополнительных контроллеров - надо этим пользоватьсяНа есп уже работает одно изделие, построенное по похожему принципу. И вифи и опрос датчиков и экранчик и перистальтический насос. Дискретных элементов минимум.
Там стандартный IP блок UART по подобию от Intel 16550, аналогичный имеется во многих устройствах, включая PC. Доки с описанием выкладывались. У всех моделей по типу 16550 имеются различия в установке CLK, остальные регистры всегда одинаковы и софт совместим. Можно брать дрова от любого (хоть от PC), поправив установку CLK и дописав переключение мультиплексора i/o. Исходники (и примеры) инициализации UART и установки CLK/baud rate, c коммутацией выводов UART на i/o в SDK есть.Вы упоминали по эмуляцию через сериальный RX/TX. На ПК драйвер от максима так и работает. Где-бы почитать про реализацию последовательного порта на RTL? мне не хватает для полноты эксперимента. Не уверен, что получится разложить чтение/запись на такты 16кгц.
Нужно ли говорить, что RTOS не совсем RT? В отличии от 8266 у RTL все более-менее неплохо с TC, а моя задача вертится и на кривом ESP, под который программирование задачи свелось в распиливании монолитных алгоритмов на куски, которые не рушили бы магию внутри HAL. Говоря о реальном мире, мой драйвер отнимает 10 микросекунд за 90 микросекунд на 1 бит. На опрос датчиков +/- 1000 бит, потом пауза в 750 миллисекунд и так по кругу. Говорить о сверхнагрузке тут просто не приходится. Аналогично, при использовании IRQ - 1 мкс/60 мкс. За одно прерывание идет 0-3 обращений. Естественно, этот подход не пойдет для массивных протоколов с большими битрейтами.Когда работать другим задачам?
Пока еще цел микроскоп - про молоток даже не подумаю.Для дрыгания на asm с частотой CLK есть специализированные MCU.
16550 знаком со времен давних. Смутно вспоминаются очереди данных, только совсем не ничего не знаю про полудуплексТам стандартный IP блок UART по подобию от Intel 16550
Вообще существует ли аппаратный блок "owe wire" в каком MCU ? Или это шина только для DIY ?Пока еще цел микроскоп - про молоток даже не подумаю.
Встречается в "тяжелых" soc. Например есть в imx25, во многих планшетных soc. Применяется для связи с контроллером батареи.Вообще существует ли аппаратный блок "owe wire" в каком MCU ? Или это шина только для DIY ?
Для 1-wire все вдоль и поперек запатентовано maxim/dallas.А для "1 wire" что-то совсем редко и жидко...
Значит устройств с 1-Wire собирать и выпускать на продажу незя, не уплатив пошлины/оброка?Для 1-wire все вдоль и поперек запатентовано maxim/dallas.
Вы где нибудь видели в продаже 1-wire устройства не maxim ??? Даже китайские ds18b20 маскируются под оригинал.
В приличных 1-wire контроллерах есть Search ROM accelerator. Под линуксом с его тяжелым переключением контекста полезная штука.Тогда никаких доп контролеров не требуется...
1-wire мастер аппаратно реализуется при помощи UART на 115200 с минимальной внешней обвеской (надо выход с открытым коллектором сделать). Так что аппаратный блок 1-wire есть почти в любом MCU.Вообще существует ли аппаратный блок "owe wire" в каком MCU ?
Подскажи любой другой термодатчик, который можно включать параллельно и засунуть в 6мм гильзу? А так ты прав, сельское хозяйство, как оно естьВ сельском хозяйстве применяется для многоточечного контроля температуры в теплицах, ульях, элеваторах, инкубаторах, овощехранилищах. Популярны домашние метеостанции, подключаемые по этому интерфейсу."![]()
Термоподвеска, что ли?Подскажи любой другой термодатчик, который можно включать параллельно
PT которые? И по каналу АЦП на каждый?А сколько надо "параллельно"? Может, проще точными термисторами обойтись?
Ректификационна колоннаТермоподвеска, что ли?![]()
Если бы было всё так (то не писал бы пост ранее про UART c ОК - уточнение для дурика =AK=)... но реализуется на UART не полностью и очень заморочисто. И данному алго-реализации без разницы, что UART, что SPI, что I2S. Аппаратно он не дешифрирует адрес и со "слейвом" проблемсы... Таким-же образом можно и на USB выводах сформировать 1-wire1-wire мастер аппаратно реализуется при помощи UART на 115200 с минимальной внешней обвеской (надо выход с открытым коллектором сделать). Так что аппаратный блок 1-wire есть почти в любом MCU.![]()
Мне интересно тему добить, забубню на DMA и прерываниях UART драйверЕсли бы было всё так (то не писал бы пост ранее про UART c ОК - уточнение для дурика =AK=)... но реализуется на UART не полностью и очень заморочисто.
USS, например.
Дык есть же уже примеры... Возьмите, как пишут, за базу хотя-бы из Linux (там тот-же тип UART в 90% кода), а если нет желания туда лезть и поддерживать его концепции, да нужен короткий код - пишите сами.Мне интересно тему добить, забубню на DMA и прерываниях UART драйвер