Сегодня я поведаю косяки в процессе работы с 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)


  1. iig
    19.07.2022 13:08
    +9

    Я так и не понял, в чём сложность то? Нужно провода припаивать правильно и использовать правильные комплектующие?


  1. PR200SD
    19.07.2022 14:12
    +1

    Думаю следующей будет статья про скорость работы с картой, так как из под Arduino скорее всего она будет черепашья. Еще лет 5 назад когда мне нужны были логи в моем устройстве на esp8266 делал подключение обычного слота по spi, и порт библиотеки fatfs ElmChan, работает на порядок быстрее.


  1. sav13
    19.07.2022 14:16
    +4

    Изобретателями велосипеда посвящается:
    https://www.wemos.cc/en/latest/d1_mini_shield/micro_sd.html

    А уж если и разводить плату с SMD холдером, то сразу с модулем ESP12


  1. zilibob4ik
    19.07.2022 14:48

    Никаких сложностей! Даже на ESP 01 напрямую к чипу подпаивал микро сд и всё работало.


    1. smart_alex
      19.07.2022 21:10

      Вот я тоже многократно подключал SD карты и к ESP8266 и к ESP32 и интенсивно с ними работал — никаких проблем не было (даже без пайки).

      Наверное как всегда что-то неправильно делал...


  1. ktod
    20.07.2022 10:07

    Нет никаких сложностей. Все работает и на макетке и даже с умеренно длинными (10см) проводниками на максимальной скорости. Насобирал десятка полтора всяких устройств таким образом в качестве "быстрых поделок".


  1. Jack_Vo
    20.07.2022 16:27

    Мне кажется, что достаточно было просто отмыть флюс...


    1. iig
      20.07.2022 18:41

      Я так понял, что проблема была в наличии резисторных делителей на плате со SD картой. Не бывает* флюса, который настолько необходимо отмывать.

      *бывает, конечно, всякое, но на этих напряжениях и этих частотах разница несущественна.


  1. avs24rus
    21.07.2022 10:15

    К esp32 подключил модуль как на второй фотке, т.е. с конвертором - никаких проблем, работает даже без пайки, просто проводками. Так что проблема не в конверторе и не в соединении.

    По поводу скорости работы и выбора способа подключения можно почитать тут: https://www.instructables.com/Select-SD-Interface-for-ESP32/