• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

MCLK

ART_HA

Member
Здравствуйте.
Во времена Arduino 1.8 и Windows 7 был сотворен проект с использованием ESP32 и двумя каналами I2S, который успешно работал.
Сохранилось всё, и схемы, и комплектация, и скетч.
Сейчас понадобилось воспользоваться этим же проектом, на той же комплектации, но уже на Arduino 2.3.2 и Windows 10.
Компиляция без ошибок.
Но проект не заработал.
Вроде все сигналы в норме, но не понравился MCLK.
К сожалению, я не помню какой он был раньше, но, по моему, он какой-то неправильный.
Осциллограмма MCLK приложена ниже.
Если это действительно косячный сигнал, то откуда он мог взяться и как его исправить?
 

Вложения

aZholtikov

Active member
Если кратко (сам столкнулся с подобной проблемой - проект компилировался, но одна важная функция работала не так, как надо).
В менеджере плат посмотрите установленную версию для ESP32 from Espressif Systems.
Разные версии используют разные framework ESP-IDF версий 4.x.x. или 5.x.x. Они местами не совместимы. На сайте Espressif темам "Migration from 4.x.x to 5.x.x" посвящено очень очень много страниц... Кратко - очень много переделок кода.

Единственное решение (какое я выбрал) - скомпилировать проект в старой версии (правда надо знать какая была тогда). Это может помочь https://github.com/espressif/arduino-esp32/releases

P.S. От версии самого Arduino IDE ничего в принципе не зависит.
 

ART_HA

Member
Я использовал старый драйвер i2s.h , а не новый ESP_I2S.h , и компиляция не показала ошибок.
Или мне придется все-таки переходить на ESP_I2S.h ?
Опять же MCLK вроде как к I2S не имеет отношения. Или это не так?
 

aZholtikov

Active member
ИМХО по моему самый простой метод это скомпилировать в старом окружении.
P.S. После указанного случая выше стал держать в архиве не только код, но и бинарнички... :) Ибо бывает лень разбираться в чем возникла проблема.
 

ART_HA

Member
Это да, с бинарчиком я прохлопал. :(
ОК, попробую под семеркой со старым ардуино иде прошить мк.
 

ART_HA

Member
С win 7 на ноуте не получилось, т.к. esptool категорически не желает работать под х32.
Поэтому пришлось поставить win 7 x64 на варю, и ... результат точно такой же, как и на win 10. :(
И сигнал MCLK такой же, пачками.
Поэтому вопрос остался тот же, MCLK и должен быть пачками?
 

pvvx

Активный участник сообщества
Поэтому вопрос остался тот же, MCLK и должен быть пачками?
В I2S CLK должен быть ровным и с нулевым джиттером.
На осле с низкой частотой дискретизации будут кратные частоте MCLK волны.
Чтобы частота 46 МГц на осле выглядела ровно требуется осел с частотой дискретизации от 10 раз и более, т.е. от 0.5 ГГц.
 
Сверху Снизу