Сегодня я поведаю косяки в процессе работы с SD картой и ESP. Выдалась мне задача хранить логи с ESP, поэтому я надумал использовать SD карту ввиду ее практичности, но ее отладка была достаточно сложной и посему я решил написать эту статью, чтоб новички не споткнулись о те же углы тумбочки.
Для начала традиционные распиновки:
Как видно на картинке 1 микро сд карта не задействует 1 и 8 пин в работе, их не беспокоим.
Имея все эти распиновки вы без проблем сможете подключить карту к esp, далее по косякам:
Главный косяк заключается в том, что на макетке у меня ничего не работало, здесь проблема в том, что шина SPI, на которой работает карта, высокоскоростная, и ей нужно нормальное соединение пайкой, но не стоит думать, что на этом мои мучения закончились, я собрал на скорую руку схему пайкой, на фото ниже.
Это тоже не привело к ожидаемому результату, карта все также отказывалась инициализироваться. К слову на вот этом модуле вверху фотокарточки модуль для ардуины и там были напаяны резисторы для конвертирования логического уровня с 5 вольт ардуиновских на 3.3 картовские, и если их не выпаять, то ваши 3.3 вольта с esp превратятся в около 2 и карта не заработает, поэтому их я удалил и заменил перемычками, как и говорил это не коем образом не скрасило ситуацию, но если вы будете использовать ардуино, то их удалять не нужно, карту зазря спалите.
Этот модуль тоже нельзя использовать, он с конвертером логических уровней.
Потом я уж совсем не знал что делать, но все же решил поэкспериментировать и сделать печатную плату для этой задачи, представляю ее вам ниже:
На этой схеме нужно соединить перемычкой 2 контакта, на фото ниже:
С этой платой все заработало как надо, в качестве холдера для карты был использован этот: https://www.danomsk.ru/shop/7-kommutatsiya/121-razemy/311-sokety/198957-cf-micro-sd-smd-9pin-ejector-derzhatel-kart-micro-sd-kitay/
А в качестве отлодочной платы Wemos d1.
Вот как получилось в итоге:
(Это старая версия платы с косяками, не удивляетесь)
Если хотите повторить:
Спасибо за прочтение!
Комментарии (9)
PR200SD
19.07.2022 14:12+1Думаю следующей будет статья про скорость работы с картой, так как из под Arduino скорее всего она будет черепашья. Еще лет 5 назад когда мне нужны были логи в моем устройстве на esp8266 делал подключение обычного слота по spi, и порт библиотеки fatfs ElmChan, работает на порядок быстрее.
sav13
19.07.2022 14:16+4Изобретателями велосипеда посвящается:
https://www.wemos.cc/en/latest/d1_mini_shield/micro_sd.html
А уж если и разводить плату с SMD холдером, то сразу с модулем ESP12
zilibob4ik
19.07.2022 14:48Никаких сложностей! Даже на ESP 01 напрямую к чипу подпаивал микро сд и всё работало.
smart_alex
19.07.2022 21:10Вот я тоже многократно подключал SD карты и к ESP8266 и к ESP32 и интенсивно с ними работал — никаких проблем не было (даже без пайки).
Наверное как всегда что-то неправильно делал...
ktod
20.07.2022 10:07Нет никаких сложностей. Все работает и на макетке и даже с умеренно длинными (10см) проводниками на максимальной скорости. Насобирал десятка полтора всяких устройств таким образом в качестве "быстрых поделок".
Jack_Vo
20.07.2022 16:27Мне кажется, что достаточно было просто отмыть флюс...
iig
20.07.2022 18:41Я так понял, что проблема была в наличии резисторных делителей на плате со SD картой. Не бывает* флюса, который настолько необходимо отмывать.
*бывает, конечно, всякое, но на этих напряжениях и этих частотах разница несущественна.
avs24rus
21.07.2022 10:15К esp32 подключил модуль как на второй фотке, т.е. с конвертором - никаких проблем, работает даже без пайки, просто проводками. Так что проблема не в конверторе и не в соединении.
По поводу скорости работы и выбора способа подключения можно почитать тут: https://www.instructables.com/Select-SD-Interface-for-ESP32/
iig
Я так и не понял, в чём сложность то? Нужно провода припаивать правильно и использовать правильные комплектующие?