Esp8266 c 2 spi с разным вольтажом.

Тема в разделе "ESP8266, ESP32", создана пользователем Delphin911, 17 май 2023.

  1. Delphin911

    Delphin911 Нерд

    Есть ESP8266 LOLIN(WEMOS) D1 R1 mini. К нему подключается дисплей на 16 светодиодных матрицах 1088BS (2 ряда по 8 матриц) подключены по SPI. И по SPI подключена SD карта. Матрицы работают от 5 вольт, SD от 3,3. Матрица подключена CS GPIO15, SD карта CS GPIO0. Так вот когда включено оба устройства, работает только дисплей. SD карта не инициируется. Если же от дисплея отключить CLK сигнал, то SD карта запускается. Пробовал использовать преобразователь уровня https://duino.ru/preobrazovatel-logicheskikh-urovney. Вроде заработало. Но тогда не работал сброс, т.к. на GPIO0 при загрузке получалась 1, а должен быть 0. ВОт думаю как выйти из ситуации?
     
  2. parovoZZ

    parovoZZ Гуру

    А зачем на ногу сброса МК вешать другой функционал?
     
  3. Delphin911

    Delphin911 Нерд

    А на какую ногу сброса я повесил другой функционал? У ESP8266 LOLIN(WEMOS) D1 R1 mini сброс на отдельно выделенном контакте и он у меня используется исключительно для сброса.
     
  4. parovoZZ

    parovoZZ Гуру

    так сброс работает или
     
  5. Delphin911

    Delphin911 Нерд

    Когда стояли преобразователи уровня как я указал в первом посте сброс кнопкой, либо подачей низкого уровня на контакт сброса не работал. В принципе оно бы и ничего, но мне нужно было сбрасывать плату при переключении питания с батареи на БП от сети. Теперь сброс работает, но SD карта не работает.
     
  6. ivan_alexoff

    ivan_alexoff Гик

    @Delphin911 показывайте схему подключений, только реальную, а не так как на esp8266.ru парили всем моск, а потом оказалось что понатыкали там преобразователей из-за которых ничего не работало/
    p/s и желательно код, хотя бы минимальный
     
  7. parovoZZ

    parovoZZ Гуру

    значит явный косяк с подключением.
     
  8. Delphin911

    Delphin911 Нерд

    Вот схема платы управления. Преобразователи убраны. Так что так оно сейчас и есть на самом деле. Не влезла сюда вторая плата, но там только матрицы светодиодные и MAX7219. Вот схема одной пары.
     

    Вложения:

  9. Delphin911

    Delphin911 Нерд

    Ну не знаю. Шина SPI что там можно накосячить? Только с CS можно накосячить. Остальные сигналы стандартные, на распиновке ESP все показаны четко.
    MISO - GPIO12
    MOSI - GPIO13
    CLK - GPIO14
    CS для дисплея GPIO15, для SD карты GPIO0.
    Ну и опять таки если все подключено, до дисплей работает, не работает SD. Если CLK у дисплея оторвать, то начинает работать SD.
     
  10. Delphin911

    Delphin911 Нерд

    Вот распиновка ESP-шки.
    Единственное вот смотрю TX можно использовать как CS в SPI. Может так и сделать? Тогда и преобразователи уровня можно оставить как были. Ведь для GPIO0требование при старте низкий уровень. А для TX вроде нет.
     

    Вложения:

  11. Delphin911

    Delphin911 Нерд

    Да, код могу приложить в виде файлов, если так можно на этом форуме. Там 10 файлов различного объема кода. Да и собственно код то тут не при чем. Ведь работает же по отдельности. А в коде кроме указания пинов CS вроде ничего и нет по SPI.
     
  12. parovoZZ

    parovoZZ Гуру

    SPI - это fullduplex шина. Т.е. передача и прием данных идёт по разным каналам. Отсюда делаем вывод, что двунаправленный преобразователь уровней для неё не нужен. На MOSI, CLK необходим простейший преобразователь на любом транзисторе, для MISO простейший резисторный делитель. CS формально не относится к шине SPI, но для него также двунаправленный преобразователь не нужен. Достаточно такой же, как и для CLK.
    В качестве CS можно использовать абсолютно любой вывод. Когда на шине висит более одного устройства, то управлять сигналами CS необходимо вручную, а не через библиотеки или ещё как.

    Но что там за проблема со сбросом - я не понял. Пока на ножке reset висит 0, МК вообще стоит в стопе, т.к. все регистры обнулены, в том числе и программный счётчик.
     
  13. Delphin911

    Delphin911 Нерд

    Дело в том, что при использовании указанного преобразователя на ноге GPIO0 при загрузке висит 1 с преобразователя. А должен висеть 0. Поэтому ESP-шка виснет и не перегружается.
     
  14. Delphin911

    Delphin911 Нерд

    Да, не нужен. Был выбран по совету на форуме именно этот как самый простой. И все работало. Ну за исключение сброса.
     
  15. Delphin911

    Delphin911 Нерд

    Ну вроде заработало. Поменял выход CS для дисплея с GPIO15 на GPIO1, вернул преобразователь уровня и все заработало. И сброс работает и дисплей и SD карта.
     
  16. 8bitai

    8bitai Нерд

    Недавно натыкался на подобное , когда эта нога GPIO0 висит в воздухе при сбросе при определённых конфигурациях других выводов - камень висит при сбросе, когда она подтянута k +3.3v резистором то всё пускается.