Два косяка SD Shield...
- Войдите на сайт для отправки комментариев
Привет. Помогите разобраться с модулями для карт памяти SD.
Недавно приобрел два Shield`а для SD карт. Один - MicroSD, второй - SD. Использую Arduino Uno R3 (точнее клон XDRduino). Начал с MicroSD, проблем вообще никаких. Разные скетчи грузятся и работают нормально. На нем, на MicroSD шилде, присутствует чип LV125A.
Дальше взялся за SD. Как заявлено продавцом на сайте - "SD Card Modul for Arduino ARM MCU"... На зтом шилде нет чипа LV125A. Может быть именно по этому появились две проблемы:
1) Во первых карта не инициализируется (скетч - CardInfo):
Немного поигрался и заметил, что для решения проблемы необходимо, не отключая питание, извлечь и снова вставить SD карту. Тогда инициализируется - "Initializing SD card...Wiring is correct and a card is present." И даже распознает тип карты - "Card type: SDHC".
2) Вторая прблема - Карта не читается:
Карта - SDHC, 8Gb, 10 Class. Потратил много времени на поиски решения, всё напрасно... Потом взял карту MicroSD, которая нормально работает в микро шилде. SDHC, 8Gb, 4 Class. Вставил её в адаптер MicroSD->SD. Вставил адаптер с ней в SD Shield. То-же самое, не распознается пока не извлечешь и не вставишь назад. А дальше все равно не читается. Google мне посоветовал правильно форматировать. Попробовал - SDFormatter. Результата ноль. Всё как и было. Нашел советы по изменению скорости (SPI_FULL_SPEED, SPI_HALF_SPEED, SPI_QUARTER_SPEED), то же никаких изменений. Но потом вспомнил про карту памяти в смартфоне... SDHC, 16Gb, 10 Class. C инициализацией всё так же. Но после извлечения и установки на место, всё отлично работает !!! И читает и пишет.
========================================================
В результате появилось два вопроса. Может кто сталкивался, подскажите. Хотя бы общее направление укажите. Куда копать ? :-) Буду пробовать всё варианты.
1) Как решить вопрос инициализации программным способом, без извлечения карты ? Пробовал отключать и снова подключать разные провода. Не помогло... Может есть программная возможность устроить сброс, или что-то в этом роде... Планирую использовать в гараже без батареек, 220v. А там на ночь вырубают свет. Тогда при подаче питания, карта не будет работать... Может можно её как-то программно "извлечь" и снова "вставить" ?
2) Второй вопрос - почему так получается что некоторые карты читаются а некоторые нет ? Значит дело не в самом модуле и не в чипе LV125A. Слышал что не все карты поддерживают SPI... Но ведь одна и та-же карта micro, которая нормально работает в MicroSD shield`e, она же с SD адаптером, вдруг не работает в SD shield`e... В чём проблема ? Чем отличаются эти карты ? Может дело в "Arduino ARM" из описания продавца ? Но карта из смартфона работает с Arduino UNO... Как решить эту проблему программно ? Ну или - какую карту купить, чтоб точно читалась ?
https://www.youtube.com/watch?v=TWBzFzLPXxI
https://www.youtube.com/watch?v=TWBzFzLPXxI
Автор ролика утверждает что библиотека не работает с картами более 4Gb. Но моя microSD 16Gb из смартфона, с адаптером MicroSD->SD, читается и записывается этой же библиотекой, в этом же SD модуле. Правда есть проблема с инициализацией. И карта microSD 8Gb, отлично ратотает с этой же самой прошивкой, но с модулем microSD.
Еще в этом ролике SD модуль подключается на аппаратный ICSP. А я подключал на:
Автор ролика утверждает что библиотека не работает с картами более 4Gb.
она полный обьем таких карт не видет, а не с картами не работает..
и там еще сказано о том, что ненужно, модули рассчитанные на 3,3 вольтовую логику, сувать в 5 вольтовую ардуину..
она полный обьем таких карт не видет, а не с картами не работает..
Спасибо за уточнение.
и там еще сказано о том, что ненужно, модули рассчитанные на 3,3 вольтовую логику, сувать в 5 вольтовую ардуину..
А вот это видимо и есть моя проблема ! На моем модуле действительно есть только котроллер питания, 4 резистора и 4 конденсатора. Значит по этому его нельзя подключать к UNO. Кстати была уже такая мысль, но нашел карту которая читалась и записывалась, вот я и отложил эту мысль... Не зря продавец написал - Arduino ARM mcu...
Спасибо большое за помощь ! Буду теперь искать информацию о конвертации уровней. Кстати если знаете хорошую статью об этом, дайте ссылку пожалуйста.