Скрыть объявление
На нашем форуме недоступен просмотр изображений для неавторизованных пользователей. Если Вы уже зарегистрированы на нашем форуме, то можете войти. Если у Вас еще нет аккаунта, мы будем рады, если Вы к нам присоединитесь. Зарегистрироваться Вы можете здесь.

Вопрос esp32 и atmegs328 общение по uart

Тема в разделе "ESP32 - все о железе", создана пользователем unreg, 14 май 2019.

Метки:
  1. unreg

    unreg Новичок

    Сообщения:
    55
    Симпатии:
    0
    Доброго! Необходимо коммутировать esp32 и atmega328 используя uart. Проблема в том, что esp 3.3v, а atmega 5v. Нужно ли согласовывать уровни и подойдет ли для этого SN74HCT245 datasheet ? Может посоветуете другой конвертер если на то есть причины... Спасибо!
     
  2. nikolz

    nikolz Гуру

    Сообщения:
    3.971
    Симпатии:
    426
    посмотрите это
    https://esp8266.ru/forum/threads/datchik-i-naprjazhenie.4345/page-2#post-61516
    тоже самое, только вид сбоку.
     
  3. unreg

    unreg Новичок

    Сообщения:
    55
    Симпатии:
    0
    Спасибо! Тут еще вопрос в контексте, даже не знаю создавать ли новую тему или лучше админы поменяют заголовок, например на "Коммутация ESP32 и Atmega328"?
    Может ну его нафиг этот uart? Может стоит попробовать SPI? Необходимо передавать от atmega в esp порядка 2Kb данных и чем быстрее тем лучше. У esp один SPI уже будет занят под SD, а по второму пишут, что не рекомендуется использовать так как он работает с внутренней флэш. Но если у меня уже прикручена внешняя флэш, то внутренняя мне как бы и не нужна... Или есть какие-то подводные камни? Есть вариант с использованием одного SPI и для SD и для atmega, IO SD довольно продолжительная, а данные от atmega нужно передавать так быстро на сколько это возможно (мгновенно при изменении каком-то изменении на периферии) (может даже распоточить на второй процессор).
     
  4. nikolz

    nikolz Гуру

    Сообщения:
    3.971
    Симпатии:
    426
    внутренняя нужна в ней программа
    возможно вам SD не нужна. какой в ней смысл на ESP32?
    и зачем Вам Atmrga328 на ESP32
    у atmega частота процессора 16 а у ESP32 240
    это как черепаху прицепить к автомашине .
     
  5. unreg

    unreg Новичок

    Сообщения:
    55
    Симпатии:
    0
    Внешняя мне нужна чтобы хранить аудио сэмплы. Если в упрощенном варианте, можно представить устройство- электронное пианино. По задумке атмега выполняет роль контроллера клавиатуры (постоянный опрос входов и хранение текущего отпечатка состояния кнопок), а есп проигрывает соответствующий сэмпл по этому отпечатку. Соответственно время реакции от нажатия клавиши до воспроизведения должно быть минимальным и, соответственно, нажатие другой клавиши приводит либо к прерыванию текущего сэмпла, либо к миксу. Пытаюсь найти наилучший вариант. Можно обойтись вообще без атмеги и опрос повесить на есп, но чего-то решил разделить эти две задачи по разным процессорам... незнаю, может через чур заморачиваюсь? Все кажется что быстродействия не хватит. Кнопок на клавиатуре много и будут задействованы расширители портов I2C.
     
  6. nikolz

    nikolz Гуру

    Сообщения:
    3.971
    Симпатии:
    426
    такую задачу я не решал.
    но делал говорящее устройство для незрячих на ESP8266
    При этом сэмплы для синтеза речи хранятся во внутренней флеш.
    ----------------
    В вашем случая я бы взял ESP32.
    Внутренней SRAM и флеш достаточно много для хранения всего что нужно и с большей скоростью, чем на SD
    Кроме того, можно догружать и обновлять сэмплы.
    Попробуйте сначала посчитать сколько и чего Вам нужно.
    Возможно хватит одной лишь ESP32.
     
  7. unreg

    unreg Новичок

    Сообщения:
    55
    Симпатии:
    0
    вот это прям очень интересно! Сэмплы - это готовые фразы или прямо синтез а-ля текст в звук?
     
  8. nikolz

    nikolz Гуру

    Сообщения:
    3.971
    Симпатии:
    426
    пока это словарь фраз и слов, который грузится под конкретное назначение устройства
    синтезатор из текста сходу не осилил и отложил на будущее.
     
  9. sharikov

    sharikov Авторитетный участник сообщества

    Сообщения:
    547
    Симпатии:
    51
    Память в виде SD карты неудачный выбор. У вас получаться конкурирующие обращения при одновременном воспроизведении разных сэмплов. SD карта в таком режиме будет тормозить.
    Лучше использовать SPI NOR flash. Посчитайте неободохимый объем памяти для сэмплов и либо возмите модуль с нужным объемом памяти либо припаяйте дополнительную флэшку снаружи. Сейчас и гигабитные spi nor flash доуступны а 512 мегабит - так есть у всех производителей.
    Таблицу сэмплов делаете без ФС потому что ФС - дополнительный тормоз.
    Если вы используете встроенный DAC нет смысла делать сэмплы 16-битными - сократится объем памяти.

    У вас внутри ESP32 есть два процессорных ядра на 240MHz и ULP процессор на 8MHz причем ULP это как пол-атмеги. Атмега там нафиг не нужна.
    Одно ядро пусть занимается только генерацией звука.
    Второе взаимодействует с ULP и командует что играть генератору.
    ULP занимается опросом клавиатуры. Расширители I2C не используйте - они тормоз. Достаточно 595+165 регистров которые будет писать/читать ULP.
     
  10. unreg

    unreg Новичок

    Сообщения:
    55
    Симпатии:
    0
    @sharikov, спасибо! обязательно почитаю про nor flash. Но вот не понял как быть с кнопками. Их же овер 64, они сенсорные и все настроены как обычные тактовые... на счет i2c лействительно были сомнения по быстродействию, тем более что у меня получается еще и каскад i2c включая хаб(!)
     
  11. nikolz

    nikolz Гуру

    Сообщения:
    3.971
    Симпатии:
    426
    клава от компа на 102 клавиши устроит?
    дайте ссылку на клавиатуру,которую хотите.
     
  12. unreg

    unreg Новичок

    Сообщения:
    55
    Симпатии:
    0
    это моя собственная клавиатура из сенсорных кнопок на ttp223n-ba6
     
  13. nikolz

    nikolz Гуру

    Сообщения:
    3.971
    Симпатии:
    426
    и какой у нее интерфейс?
     
  14. unreg

    unreg Новичок

    Сообщения:
    55
    Симпатии:
    0
    предполагал i2c. по 16 кнопок на расширитель типа pcf8575, таких групп 9 шт. Соответственно у меня вылезает еще и i2c hub
     
  15. unreg

    unreg Новичок

    Сообщения:
    55
    Симпатии:
    0
    до кучи, чтобы поднять быстродействие, думал использовать int от pcf8575 чтобы более адресно обращаться к кнопкам
     
  16. unreg

    unreg Новичок

    Сообщения:
    55
    Симпатии:
    0
    вобщем-то я сейчас и думаю над модулем клавиатуры и его интерфейсом))
     
  17. sharikov

    sharikov Авторитетный участник сообщества

    Сообщения:
    547
    Симпатии:
    51
    С хабом сон разума.
    NXP производит I2C GPIO расширители на 4, 8, 16, 24 и 40 входов.
    Берите на 40 gpio с выходом int (PCA9505/PCA9506 и PCA9698). 9698 поддерживают частоту I2C 1MHz и адресов у них овердофига.
     
  18. unreg

    unreg Новичок

    Сообщения:
    55
    Симпатии:
    0
    может и сон ) от i2c не уйти стало быть?
     
  19. sharikov

    sharikov Авторитетный участник сообщества

    Сообщения:
    547
    Симпатии:
    51
    Запросто можно уйти если захотеть. Все зависит от ваших предпочтений.
    Вам надо 9*16 = 144 кнопки.
    Вешаем 18 регистров 74HC165 цепочкой на интерфейс SPI : дешево и сердито. Опрашивать постоянно, изменения выявлять программно.
    Для удобства SPI можно настроить в режим DIO и сделать 2 ветки по 9 регистров.
     
  20. unreg

    unreg Новичок

    Сообщения:
    55
    Симпатии:
    0
    круть! вот только разберусь с nor flash. ищу и не нахожу дельного ресурса по этому вопросу что это и как готовить. Я правильно понимаю, что spi nor flash это не тот spi который я сейчас использую для внешней флэшки? сама флэшка тоже особенная какая-то? куда что паять и как к этому обращаться и есть ли поддержка arduino ide? Можно ли задействовать для этого ulp и есть ли поддержка arduino ide? Вот это минимум, а найти не могу. Если не сложно, поделитесь опытом/ссылкой
     

Поделиться этой страницей