Stanislav
Дальше продвинуться не смог, если кто подскажет буду рад 😁
ok-home
Промежуточный узбек достигнут если дергать перед вызовом i2s_channel_read сбросы в такой последовательности: i2s_hal_rx_stop(&(handle->controller->hal)); i2s_hal_rx_reset_dma(&(handle->controller->hal)); i2s_hal_rx_reset_fifo(&(handle->controller->hal)); handle->dma.rw_pos = 0; i2s_hal_rx_enable_dma(&(handle->controller->hal)); i2s_hal_rx_start_link(&(handle->controller->hal), (uint32_t) handle->dma.desc[0]); handle->dma.curr_desc = ((lldesc_t *)handle->dma.desc[0]); handle->dma.curr_ptr = (void *)(((lldesc_t *)handle->dma.curr_desc)->buf); i2s_hal_rx_start(&(handle->controller->hal)); синхронизация ловится идеально-стабильно однако (с) печалька в том что если не вызывать i2s_hal_rx_stop то при чтении из буферов в них частично (второй буфер) лежит "старое" а если вызывать то переодически (но реже) пробегает мусор в начале пачки видимо я либо не правильно двигаю указатель (точнее не тот указатель) либо надо дополнительно сдвинуть указатель самого дма
т-е ты делаешь, i2s_channel_enable потом почти его же и повторяешь, только без блокировок и защиты от повторного запуска ? https://github.com/espressif/esp-idf/blob/d30e4d9960afd0d1ed067fef741126af810f675e/components/esp_driver_i2s/i2s_common.c#L1186 https://github.com/espressif/esp-idf/blob/d30e4d9960afd0d1ed067fef741126af810f675e/components/esp_driver_i2s/i2s_common.c#L141
Stanislav
т-е ты делаешь, i2s_channel_enable потом почти его же и повторяешь, только без блокировок и защиты от повторного запуска ? https://github.com/espressif/esp-idf/blob/d30e4d9960afd0d1ed067fef741126af810f675e/components/esp_driver_i2s/i2s_common.c#L1186 https://github.com/espressif/esp-idf/blob/d30e4d9960afd0d1ed067fef741126af810f675e/components/esp_driver_i2s/i2s_common.c#L141
Да, главной идеей было выкинуть rx_stop/start что бы физически шина не останавливалась, оставив только обнуление буферов но пока это минимально-работающая последовательность ☹️
Stanislav
Т.е. по сути мне нужно просто обнулить 5 переменных: - номер текущего используемого буфера дма (в контексте железа) - номер последнего записанного бита в буфере (в контексте железа) - номер текущего буфера дма в контексте ОС (из которого она будет читать) - номер последнего прочитанного бита в буфере в контексте ОС (с которого она будет читать) - количество готовых к чтению бит (в контексте железа?) По идее без старт/стоп у меня все очень похоже кроме последнего пункта - забыл померить время чтения - раз он вычитывает «старое» видимо указатели уехали а счетчик остался 🥴 и как его сбросить без стоп/старта я пока не догнал 😁
ok-home
Да, главной идеей было выкинуть rx_stop/start что бы физически шина не останавливалась, оставив только обнуление буферов но пока это минимально-работающая последовательность ☹️
а то что там драйвер дальше с этим под капотом делает неважно ? )), дма крутится, прерывания валятся ? ну уже посмотри как инициализируется i2s и dma и напиши свой драйвер под свою задачу, а вот так впихнуть перезапуск i2s дма в случайный момент времени ......
Stanislav
Хотя вообще задача то весьма типовая - засинхронизировать ацп с внешним сигналом 😑
ok-home
Т.е. по сути мне нужно просто обнулить 5 переменных: - номер текущего используемого буфера дма (в контексте железа) - номер последнего записанного бита в буфере (в контексте железа) - номер текущего буфера дма в контексте ОС (из которого она будет читать) - номер последнего прочитанного бита в буфере в контексте ОС (с которого она будет читать) - количество готовых к чтению бит (в контексте железа?) По идее без старт/стоп у меня все очень похоже кроме последнего пункта - забыл померить время чтения - раз он вычитывает «старое» видимо указатели уехали а счетчик остался 🥴 и как его сбросить без стоп/старта я пока не догнал 😁
оно так не работает 1 - определяется сколько байт ты хочешь получить 2 - настраиваешь линк листы и i2s 3 - толкаешь дма 4 - ждешь прерывание если ты между 3 и 4 начинаешь рестартить процесс получишь полную херню,
Max
ESP32 Agent Dev Kit is an LLM-powered voice assistant built on the ESP32-S3 platform (Crowdfunding) The ESP32 Agent Dev Kit is an ESP32-S3-powered voice assistant that offers integrations with popular LLM models such as ChatGPT, Gemini, and Claude. Wireless-Tag says the Dev Kit is suitable for “95% of AIoT applications, from smart home devices to desktop toys, robotics, and instruments” In some ways, it is similar to the SenseCAP Watcher,… https://www.cnx-software.com/2025/01/24/esp32-agent-dev-kit-is-an-llm-powered-voice-assistant-built-on-the-esp32-s3/
◉⃤ОгонёК
Здрастуйте, возможно ли сделать USB bridge, то есть одну есп вставляю в USB устройства, а вторую в комп?
◉⃤ОгонёК
И подключаюсь как будто провод подключен напрямую
Sergey
Здрастуйте, возможно ли сделать USB bridge, то есть одну есп вставляю в USB устройства, а вторую в комп?
Можно. Но если задаешь такой вопрос, значит для тебя это будет непростая задачка
◉⃤ОгонёК
Можно. Но если задаешь такой вопрос, значит для тебя это будет непростая задачка
К сожалению у меня специализация совершенно другая, поэтому и задаю такой вопрос
◉⃤ОгонёК
Зачем
Очень сложно каждый раз разбирать корпус для доступа
◉⃤ОгонёК
Для подключения юсб и изменения параметров. Повторюсь, я не силен, поэтому и спрашиваю
ㅤ
Для подключения юсб и изменения параметров. Повторюсь, я не силен, поэтому и спрашиваю
А зачем подключать? У есп32 есть беспроводные протоколы. Вифи тот же.
◉⃤ОгонёК
А зачем подключать? У есп32 есть беспроводные протоколы. Вифи тот же.
Вот, я правильно понимаю, что одну есп втыкаю в юсб устройства, а с ноута подключаюсь через вифи прямо через ip адрес, который ввожу вместо com порта (такая возможность в контроллере зашита)
◉⃤ОгонёК
Главное определить правильный ip и сделать его видимым для доступа в локальном вифи
ㅤ
Вот, я правильно понимаю, что одну есп втыкаю в юсб устройства, а с ноута подключаюсь через вифи прямо через ip адрес, который ввожу вместо com порта (такая возможность в контроллере зашита)
Да не надо ничего ни куда втыкать. Настраиваешь веб-морду/ота прошивку на есп. Есп подключается к твоей вифи сети. Дальше заходишь на нее и делаешь что хочешь
Ярослав
Добрый вечер , подскажите где можно почитать как пользоваться данной платой , я ее мультиметров пощупал конечно , но без документации боюсь использовать
Ярослав
Плата для переключения логического уровня 3,3в на 5в желтой перемычкой
меня больше пины смущают , я думал тут как на макетной плате по рядам , а тут чето как попала судя по дорожкам с обратной стороны и мультиметру , не понимаю зачем так
Nikita
Плата для переключения логического уровня 3,3в на 5в желтой перемычкой
а что это кстать значит, я так и не понял, дергал туда/сюда и разницы не понял
Vitaliy
меня больше пины смущают , я думал тут как на макетной плате по рядам , а тут чето как попала судя по дорожкам с обратной стороны и мультиметру , не понимаю зачем так
Я особо не заморачивался, видимо для удобства, а боятся нечего, втыкай и прозванивай по факту, так понятней станет принцип её работы
Ярослав
Они же все подписаны. Для удобства рядом с каждым логическим пином дополнительно выведено питание и земля
абстрактно сейчас вроде понятнее , похоже проще макетную плату дальше юзать
ㅤ
просто в чем плюс кроме 5V не могу понять
Тем что под каждый пин сигнальный выведены доп линии питания. Если типа 100 датчиков подключаешь дюпонтами видимо так тупо проще
ㅤ
А это говно то
Ярослав
А это говно то
по этому и в чат новичков)
ㅤ
по этому и в чат новичков)
Да нахрен с ними связываться
Ярослав
а ты что юзаешь ?
Vitaliy
просто в чем плюс кроме 5V не могу понять
Разъёмы питания Microusb, type c и под блок питания
Vitaliy
а ты что юзаешь ?
У меня умный дом на данных платах 🙈
Ярослав
У меня умный дом на данных платах 🙈
А схемами можете поделиться? Хотя бы самыми простыми, чтобы понять как используете
Vitaliy
Принципиальной схемы нет, есть фотка щитка
Vitaliy
Кстати 4й вариант подачи питания на фото
Ярослав
Нахрена, если есть мануал и надписи на плате?
Можно плиз ссылку, не нашёл мануал
emmett
О у меня где то было и 5 и 7 дюймов
Если найдешь и не будет лень, стукни в личку, я тебе бинарник скину Благодарю!
Mezzo Lab
Нафига там мануал, если все пины подписаны?
Max
ESP32-BlueJammer - Bluetooth, BLE, WiFi, RC Jammer The ESP32-BlueJammer (Bluetooth jammer, BLE jammer, WiFi jammer, RC jammer) disrupts various devices using an ESP32 and nRF24 modules (30m+) https://www.hackster.io/emensta/esp32-bluejammer-bluetooth-ble-wifi-rc-jammer-116bcc
Ярослав
Нафига там мануал, если все пины подписаны?
Нафиг есть книга которая обьясняет знаки дорожного движения раз по рисунку знака можно все понять? Чат для вопросов новичков, разом большой объем информации тяжело переварить самостоятельно
Ярослав
Время вхождения спасает чужой опыт и документация
ㅤ
Куда еще проще
Ярослав
Ярослав
Разная распиновка, на паттернах понять проще как это все юзать
ㅤ
Разная распиновка, на паттернах понять проще как это все юзать
Сути не меняет. Слева что ты обвел D22 дважды выведен по горизонтали. Потом дважды пин D21, дважды пин земля и дважды пин VCC. Эта плата вызванивается за минуту при наличии мультиметра
Ярослав
Сути не меняет. Слева что ты обвел D22 дважды выведен по горизонтали. Потом дважды пин D21, дважды пин земля и дважды пин VCC. Эта плата вызванивается за минуту при наличии мультиметра
Я не спорю) звонил) не понятно до конца понятно как это правильнее применять, как обычно учатся новички, собирают чужие проекты, дальше приходит осознание почему так, а не по другому (да бывает гавно учитель, не про это, но тоже опыт)
ㅤ
Я не спорю) звонил) не понятно до конца понятно как это правильнее применять, как обычно учатся новички, собирают чужие проекты, дальше приходит осознание почему так, а не по другому (да бывает гавно учитель, не про это, но тоже опыт)
Это сделано для удобства. Вот у тебя есть десять датчиков у которых три провода сигнал, земля, питание. Вот тебе по 3 и выведено чтоб ты воткнул и сразу его запитал. А не скручивал по 10 раз землю и питание. Пины D21,D22 задвоены чтоб можно было несколько I2C устройств повесить на один пин
Stanislav
оно так не работает 1 - определяется сколько байт ты хочешь получить 2 - настраиваешь линк листы и i2s 3 - толкаешь дма 4 - ждешь прерывание если ты между 3 и 4 начинаешь рестартить процесс получишь полную херню,
Это стороны ос Со стороны проца он увидел смену ws, отступил бит, посчитал байт (или слово, не суть), взял указатель на номер_буфера*номер_байта, положил байт, сдвинул счетчик байта, когда счетчик дошёл до размера буфера обнулил счетчик байт и перещелкнул номер буфера Соотв моя задача сделать что бы проц положил следующий за событием (прерыванием) байт в нулевой адрес нулевого буфера, а ос вычитала нулевой буфер с нулевого адреса по прерыванию готовности буфера или готовности запрошенного N байт 😑 На выходных подергаю китайцев, может чего подскажут 🥹
ok-home
Это стороны ос Со стороны проца он увидел смену ws, отступил бит, посчитал байт (или слово, не суть), взял указатель на номер_буфера*номер_байта, положил байт, сдвинул счетчик байта, когда счетчик дошёл до размера буфера обнулил счетчик байт и перещелкнул номер буфера Соотв моя задача сделать что бы проц положил следующий за событием (прерыванием) байт в нулевой адрес нулевого буфера, а ос вычитала нулевой буфер с нулевого адреса по прерыванию готовности буфера или готовности запрошенного N байт 😑 На выходных подергаю китайцев, может чего подскажут 🥹
Ну ОК если ты называешь "проц" автомат i2s dma а "ос" прерывания и работу процессора, пусть будет так. Для себя я эту задачу решил с задержкой старта заполнения буфера в 0,3 мкС, правда не для АЦП а для параллельного съема информации с i2s, твоя ошибка в том что ты дважды стартуешь прием, причем второй раз не до конца, я не смотрел в драйвере по какому событию он заканчивает передачу, по линклист dma или по счетчику приема i2s
Vitaliy
Это ты где такую дичь взял
Если память не изменяет, для некоторых датчиков нужно 5в, а есп выдаёт 3,3в, джампер как раз переключает логику на 5в
Mezzo Lab
Если память не изменяет, для некоторых датчиков нужно 5в, а есп выдаёт 3,3в, джампер как раз переключает логику на 5в
И опа нихера все ин/оут на есп сразу 5в всего лишь при использовании сраного переходника?
Mezzo Lab
Стоит всего-то переключить джампер. Шикарная плата
ok-home
А как именно? 🤓
Без драйвера на регистрах плюс hi level int
Riory
Диски в десятичной системе и считаются А потом умники жалуются, что им байтов не доложили
Я знаю, по этому вообще покупать буду ток терабайтами что бы не так уж и обидно было:)
Riory
Всем привет, ни у кого нет случаем инфы почему esp8266 и micropy могут не дружить со встроенным экраном? I2C scan() никак не хочет находить устройства, даже когда идет перебор всех комбинаций. Кнопки вкл/выкл у экрана нету, через прошивку в arduino ide - все ок. Версия micro py точно та, работает, другие экраны видит. Заранее благодарю за помощь :)
Riory
Маркетологи начали использовать термин "килобайт" для обозначения 1000 байт вместо 1024 байт примерно в конце 1990-х годов. Это было связано с тем, что производители жестких дисков и других устройств хранения данных хотели упростить понимание емкости накопителей для потребителей. Вместо использования двоичной системы счисления (где 1 килобайт = 1024 байта), они перешли на десятичную систему (где 1 килобайт = 1000 байт). Это позволило избежать путаницы у пользователей, так как многие люди привыкли считать в десятках, а не в степенях двойки. Однако стоит отметить, что в компьютерной индустрии традиционно используется двоичная система счисления, где 1 килобайт равен 1024 байтам. Поэтому разница между этими двумя подходами может вызывать путаницу среди пользователей.
Ну… мб хоть кто-то ровно держит значения? Премиальные диски для перфекционистов с завышенным прайсом?
Вик
Добрый день, подскажите пожалуйста, подключил плату esp 32 s3 через usb-uart к компьютеру (через порт OTG она не определяется), она опредилась как usb-serial CH343, залил прошивку wled через flash download, прошивка зашла, но сети вайфай нет. Подскажите что я делаю неправильно? Хочу подключить адресную светодиодную ленту.
ㅤ
Спасибо за помощь
Мне стало интересно и я таки решил проверить лично.
Евгений
О! Вот вы где! Вас то мне и надо! Я знаю, тут есть люди, понимающие в SSL и TCP...
Евгений
Не про ЕСП, но тоже МК, на борту езернет на W5500 Уже неделю себе ум ломаю. Есть некий сайт с SSL шифрацией, с него получаю данные в виде текстовой посылки в формате джейсон. Все отлично получается, пока объем файла не превышает 2кб. Если больше - обрезает посылку. Что интересно, с любых других сайтов качает мегабайтами без проблем. На пробу скачивал с гитхаба пачками - нет проблем. Пробовал с этого сайта получать эту же инфу с ПК - все получается. Куда копать уже не представляю😭