• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе 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 ГГц.
 
Сверху Снизу