NI_isx
Я так понял, что серийный формат это по два слота на каждый из Data1-Data4 пинов, а TDM позволяет все данные через Data1 гнать
ok-home
технически насколько я понимаю можно вообще забить на cs,(ws(lr)), там фиксировано bclk per frame, lr поставить в master и тупо игнорировать
Alexey
Парни, а кто нибудь такую штуку у себя в отоплении использовал?
ok-home
А как он начало фрейма определит, ели ws не будет?
ну зашли ему powerdown on/off а дальше корректно отправляй bclk но это пробовать нужно
ok-home
Ааа, понял. Спасибо за инфу, буду пробовать
только смотри там по даташиту он не очень быстро из rst выходит
NI_isx
Интересно, а между передачами spi микро задержек не будет? А то мне нужно максимально точно частоту задавать, а если даже по микросекунде на 48кГц, то ощутимо будет
NI_isx
будут ((
Тогда лучше через шим сделаю. Там частота гарантированная будет. Оставлю одно ядро молотить биты, а на втором логику запилю.
NI_isx
А если я сделаю частоту дискретизации не 48 или 44.1, а 3.6 или 36кГц, то оно должно работать? Мне а то фазу нужно двигать с шагом 0.1 или 0.01 градуса, так было бы гораздо точнее и удобнее.
Max
Делаем автомобильный компьютер с нескучным функционалом Привет, я собрал небольшой бортовой компьютер для авто, который умеет показывать температуру, время с момента включения и раздавать «Free Wi-Fi». В этой статье приведён код, список компонентов и всё остальное, чтобы собрать такой же. Назвал я его Kruk — от беларуского слова «Крук» (рус. «Крюк»). Вот видео его работы на YouTube. Здесь его страница на GitHub. Если вы уже посмотрели видео, то понимаете суть функции «Free Wi-Fi». Как только к Wi-Fi подключаются, система сразу переводит пользователя на captive portal, а сам компьютер начинает показывать, помимо температуры и времени, ещё два дополнительных окна с информацией о количестве пользователей, подключившихся к Wi-Fi, и о количестве пользователей, которые до сих пор к нему подключены (online). Читать далее https://habr.com/ru/articles/920714/?utm_source=habrahabr&utm_medium=rss&utm_campaign=920714
Ruslan
камрады, напомните где и что подкрутить? короче, для работы внешней аппаратной собаки добавил таску, которая тупо дёргает ногу туда-сюда, и всё, настал абзац: всё работает, но на этапе подключения к облачку, то коннект поднять не может, то имя разрезолвить, на лицо проблема внутри процедуры коннекта но, если отрубить собачью таску, то проблемы исчезают я вангую, что где-то не хватает памяти, но оно тихо сливается... чё поувеличивать? ну кроме члена? )))
Ruslan
одно ядро юзаю
Ruslan
проблема не в тасках
Ruslan
ok-home
так вот этой ошибкой ругается ? 0х8006
Ruslan
да
Ruslan
иногда ещё не может адрес сервака разрезолвить, но редко и проблема только если включена новая таска, которая дрочит ногой для аппаратного сторожа
Evgeniy
Из-за малого объема RAM сомнительно использовать ESP32 в тех случаях, где нужна криптография
Ruslan
чё забавно, старые модули спокойно работают с хипом на 125кб, новые модули с оптимизированной прошивкой работают на 135кб хипа, а тут почти 180кб и оно выделывается
ok-home
А с включенной таской насколько Хип падает ?
Ruslan
пишу же, 180, оно не успевает нажраться, ибо весь жор происходит после коннекта
ok-home
пишу же, 180, оно не успевает нажраться, ибо весь жор происходит после коннекта
Не. Насколько Хип с таской и без таски отличается ? Чисто для успокоения совести
Ruslan
с таской 180, без таски щас скажу
Ruslan
стек таски 4к
Ruslan
код просто гениальный: static void task(void *pv_parameter) { (void)pv_parameter; ESP_LOGW(TAG, "SWDT100 task started"); while (true) { ESP_LOGW(TAG, "<HEAP=%u> Task ping ...", esp_get_free_heap_size()); gpio_set_level(WDI_PIN, PIN_HIGH); vTaskDelay(pdMS_TO_TICKS(HALF_PERIOD_MS)); ESP_LOGW(TAG, "<HEAP=%u> Task pong ...", esp_get_free_heap_size()); gpio_set_level(WDI_PIN, PIN_LOW); vTaskDelay(pdMS_TO_TICKS(HALF_PERIOD_MS)); } }
Evgeniy
Недавно отключил таск, который выводит heap также - были с ним проблемы. Тоже самое происходит если оставить там только сброс WD через GPIO? Без строковых функций и логов.
Evgeniy
Жручее здесь - формат строк
Ruslan
А период какой?
750мс на каждом делее
Evgeniy
Я хип выводить начал чтобы разобраться с проблемой
я уж думал это доп функционал, очень полезно на постоянной основе выводить HEAP
Evgeniy
Что если использовать альтернативу: таймеры freertos для периодических таких задач? Интересно сглючит в таком случае или нет.
Resident
750мс на каждом делее
Какой таймаут у собаки? Попробуйте реже дёргать, посмотрите что получится
Resident
Evgeniy
хм, а ситуация не меняется если постепенно закомментить разные вызовы функций внутри while?
Ruslan
Вы меня пугаете, старичье?
Ruslan
Проблема не в функции!
Evgeniy
То есть сократив до while(true){ vTaskDelay(...); } тоже самое наблюдается?
Ruslan
Новая тачка выжрала что-то у фриртоса и теперь не хватает ресурса для старта тлс рукопожатия для Коннекта с облаком. Вопрос, что крутить
Evgeniy
поменьше памяти выделить на этот таск тоже не помогает? разве что форматирование отвалится
Tonchik
Не было дебага ваще и не работало
а если оставить только делэй и убрать вызовы дерганья?
Evgeniy
То есть сократив до while(true){ vTaskDelay(...); } тоже самое наблюдается?
тогда любопытно, что будет при 1024 стека и такой короткой таске с одним delay
ok-home
а какой чип на собаке стоит ?
Ruslan
а какой чип на собаке стоит ?
STWD100NYWY3F — сторож аппаратный;
Tonchik
static void task(void *pv_parameter) { unsigned int state = 0; TickType_t delay = pdMS_TO_TICKS(HALF_PERIOD_MS); while (true) { gpio_set_level(WDI_PIN, ++state % 2); vTaskDelay(delay); } }
Tonchik
...ну я так, в качестве бреда, как вариант
Tonchik
коли все опробовано
Ruslan
D (15:05:20.042) MQTT: DATA={"OPERATION": "pong", "HEAP": 130916, "RSSI": 23, "BER": 0, "VOLT": 4043, "BCS": 0, "BCL": 80}
Ruslan
так, вернул всё в прежнее состоянии, ща буду пробовать пустую задачу
Ruslan
пустой цикл работает
Ruslan
как тока начинаю шевелить пином, сразу глюк с TLS
ㅤ
У меня вопрос. А почему ты вообще дергаешь пин в таске а не таймере?
Evgeniy
как тока начинаю шевелить пином, сразу глюк с TLS
Подёргай через регистр, без драйвера
Ruslan
У меня вопрос. А почему ты вообще дергаешь пин в таске а не таймере?
ты даешь гарантию, что в таймере оно остановится, когда прошивка встанет?
ㅤ
ты даешь гарантию, что в таймере оно остановится, когда прошивка встанет?
Почему я должен давать гарантию? Я что похож на китайца? Заоодно и проверишь
ㅤ
Ну можно юзать таймеры фриртос. xTimerCreate хотя бы. Они то наверняка должны встать вместе с прошивкой
ㅤ
Вместо GPT
Evgeniy
Кстати интереснейшая вещь. Планирую поставить. Идея в том, чтобы имея разнесённые в пространстве датчики температуры регулировать температуру батарей с минимальным перелётом за уставку. По расписанию снижать температуру до +18 когда никого нет дома. И таким образом уменьшить затраты на отопление.
ㅤ
Кстати интереснейшая вещь. Планирую поставить. Идея в том, чтобы имея разнесённые в пространстве датчики температуры регулировать температуру батарей с минимальным перелётом за уставку. По расписанию снижать температуру до +18 когда никого нет дома. И таким образом уменьшить затраты на отопление.
Опять же что такое расписание? Не в каждой семье можно нормировать расписание. Лично я могу вернутся домой когда угодно. И это либо надо сильно заранее тыкать кнопку что ты уже едешь на базу, либо как-то чтоб оно само определяло.
Ruslan
таймер считай ту же задачу запускает, но да, код стал типа компактнее... но TLS падает..., сцук, не хватает ему памяти
Ruslan
может глобально ртосу дать побольше хипа, как такое делать?
Ruslan
я про это