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

LOLIN*WEMIS) D1 R2 & mini проблема с шиной SPI.

Народ. Вопрос. Может ли глючить шина SPI из-за длинной дорожки. Есть у меня указанный девайс. К нему подключена SD карта по SPI и 16 матриц через MAX7219 тоже соответственно по SPI. Сама ESP на одной плате, матрицы с микросхемами на другной. Сначала настраивал WEB интерфейс и работу датчиков по I2C. Все настроил, подсоединяю вторую плату и пишет ошибку моля SD карты. Короче долго ковырялся, но выяснил, что если CLK SPI не подключать ко 2 плате, то работает. Благо плат 5 штук (китайцы меньше не делают). ПОдключил совсем голую плату. И снова ошибка модуля SD карты. Начал резать на этой плате все дорожки от основной шины к микросхемам. И вот нашел. Вроде заработало. Взял еще одну плату и отрезал только ту микросхему, на которой заработало. Отрезал ее, подключил, работает. Ну правда обзырил весь путь дорожки через лупу. Не вижу косяков. Но вот если подключить снова отрезанную часть. Снова ошибка модуля SD. Думал решил. Беру плату с напаяными матрицами и микросхемами, отрезаю нужную микросхему и .... не работает!
Вот я и думаю, может дорожка слишком длинная. Может как резистором на питание подтянуть?
 
Да, на макетке все работало. Там правда всего 4 матрицы было.
Сегодня я снял все MAX7219 с платы, всё промыл, прочистил. Но раз уж с голой платой не работает. В общем пока я в ступоре.
 
Народ, вопрос решен. Какая-то непонятка с питанием. Когда запитываю от ESP (подключение к USB ПК) такая фигня. При питании от блока питания все работает. Но дело не в нагрузке. Ведь я голую плату без матриц и микросхем подключал.
 
Это ни о чем, простой скетч может как работать от уст, так и неработать.
Возможно просадка питания на проводе.
Да глюк какой-то. Прицеплена голая плата вообще безо всего. Только провода пистнаия к ней подключены, да провода шины SPI. Начинаю отрезать контакты микросхем от CLK шины. Отрезаю скажем у U11 и начинает работать. Беру вторую плату, отрезаю только ногу этой микросхему, прям по площадку дорожку отрезаю. Работает. Замыкаю отрезанную площадку на шину CLK, перестает работать SPI. Ну казалось бы вот причина! Ставлю одну микросхему MAX7219 и снова не работает. Не знаю, что меня сподвигло подключить еще питание от БП и по USB к компу. Но сразу все заработало! Хорошо китайцы по 5 плат делаю! Еще 2 у меня нетронутые остались.
 

CodeNameHawk

Moderator
Команда форума
Нарисуйте как у вас подключено, посмотрите как рекомендуют подключать для шины SPI.
Возможно лишние резисторы подтяжки шины, раз несколько плат подключаете.
провода пистнаия
"Пистнаия" должно быть заведомо стабильное.
Да и не ясно дополнительные платы от чего вы питаете.
 
Нет. Не работает. Такое ощущение, что микросхемы сильно просаживают питание.
Схема вот общая. Их 2. Для платы с ESP и датчиками температуры и влажности. Она работает полностью. ИSchematic_Сontrol board_2022-04-09.png для платы с дисплеем и датчиком движения.
 
Schematic_Display_2022-04-09.png
Пока части с реле нет вообще. И аккумулятора нет. Есть только блок питания на 5 вольт. вот такой. Подключение все проверял на макетках. Только матриц было 4 штуки всего и подключались они к DIP микросхемам. Но все работало и работало от компьютерного USB. Разницы между DIP и SOIC корпусом не должно быть вроде. Щас проверю. Может там чего не так. Сейчас прозвонил плату, вроде нормально все.
 

CodeNameHawk

Moderator
Команда форума
Ну самое простое померить ток и вольты.
Что бы ничего не спалить нагрузите автомобильной лампочкой, сначала двумя последовательно.
Ссылка на бп не рабочая. Если бп Китай, то заявленный ток надо делить так на три.
 
Блок питания цеплял лабораторный. На БП 5, на плате с матрица и 4,4В. Ток не мерил. Матрицы горят все, микросхемы греются. Завтра попробую на эту плату одну матрицу прицепить с одной микросхем ой и все это по проверенной схеме, с проверенным скетчем к ардуино уно. Что то мне не нравится, что греются микросхемы.
 
Подключил плату к Ардуино UNO. Все работает. ВО всяком случае уц меня пока 11 из 16 матриц пришло, 10 подключил и запустил простенький скетч, чтобы попорядку все светодиоды загорались, а потом гасли. Все работает. Я уже и не знаю куда думать!
 
С питанием разобрался. Дорожки чтоль тонкие на контрольной плате сделал. На них падало напряжение. Два толстых провода бросил, сразу все нормально, 5 вольт.
Что-то видно с SD картой именно. Она вот так запускалась:
Код:
Serial.print("3. Инициализация SD карты...");
  if (!SD.begin(CS_PIN_SDC)) {
    Serial.println("Ошибка");
    while (1);
  }
  hasSD = true;
  Serial.println("OK.");
И при таком коде скетч уходил в перезагрузку и остальная часть не отрабатывала.
Я оставил только SD.begin(CS_PIN_SDC);
Карта не запускается, но молча. Все остальное, включая и дисплей на 16 матрицах, который так же как и SD карта на SPI, запускается. Я повесил SC карты на D3(GPIO0), там вроде на распиновке отмечено CS2. Но есть еще CS1, может туда попробовать прицепить?
 

CodeNameHawk

Moderator
Команда форума
Прозвонил плату всю. Всё строго по схеме.
Начните с разрешенного диапазона питания микросхем, а вы уже до этого дошли.
Я повесил SC карты на D3(GPIO0), там вроде на распиновке отмечено CS2. Но есть еще CS1, может туда попробовать прицепить?
Какие выводы можно безопасно, а какие надо знать как использовать, есть на главной.
 
Начните с разрешенного диапазона питания микросхем, а вы уже до этого дошли.
А что с ним не так? О каких микросхемах вы говорите? MAX7219 от 4 до 5,5 Вольт. Или вы о модуле SD карты? Он от 3,3В питается.
Какие выводы можно безопасно, а какие надо знать как использовать, есть на главной.
Ничего не понял! Точнее догадываюсь, но этим ответом вы ничего не прояснили, только запутали. Что вы хотите этим сказать? Может быть причина в том, что я зацепился на CS2, а не на CS1? Или это не важно на какой цепляться и вообще можно на любой подключится, все равно ведь CS в скетче конкретно указывается.
 

CodeNameHawk

Moderator
Команда форума
У вас от блока питания до плат падает 0,6в и вам это не красный флаг?
Может быть причина в том, что я зацепился на CS2, а не на CS1?
О чем вы это. Что это за выводы, кто их так назвал.
Если стандартная библиотека SD.
Там конкретно написано:
SD card read/write

This example shows how to read and write data to and from an SD card file
The circuit:
SD card attached to SPI bus as follows:
** MOSI - pin 11
** MISO - pin 12
** CLK - pin 13
** CS - pin 4
 
WeMos-3.png
Вот отсюда взял. Да и работала SD карта и на макетке вместе дисплеем из 4 матриц и на рабочей плате пока я не подцепил плату с матрицами.
 
А pin11, 12, 13, 4 это какие? Вроде в скетче задается номер GPIO. Н тут нет 11 GPIO. Я просто брал контакты из библиотеки для MAX7219. Ведь MOSI, MISO и CLK для всех устройств одинаковые, а CS разные. Ну и вот я с рисунка выше GPIO15 взял как CS для матриц и GPIO0 для SD карты. GPIO1 я побоялся использовать.
 

CodeNameHawk

Moderator
Команда форума
Вроде в скетче задается номер GPIO. Н тут нет 11 GPIO.
В есп есть gpio11.
Я не подключал карточку, но если используете другие выводы, то это надо указать в скетче.
А разве не ставят подтягивающие резисторы для sd.
Да и работала SD карта и на макетке вместе дисплеем из 4 матриц и на рабочей плате пока я не подцепил плату с матрицами.
Если, снова отключить, работает sd?
Если работает, тогда подайте отдельное питание на есп и проверьте все в сборе.
 
Сверху Снизу