SD Shield. Проблема подключения. Ошибка инициализации

SineD13
Offline
Зарегистрирован: 03.01.2013

Доброй ночи.

Собственно сама планка расширения - IM120417007

Основная плата Freaduino 2560

Тестовый скетч:

#include <SD.h>

File myFile;

void setup()

{

Serial.begin(9600);
Serial.print("Initializing SD card…");
pinMode(10, OUTPUT);
if (!SD.begin(53)) {
Serial.println("initialization failed!");
return;   }
Serial.println("initialization done.");
myFile = SD.open("test.txt", FILE_WRITE);
if (myFile) {
Serial.print("Writing to test.txt…");
myFile.println("testing 1, 2, 3.");
myFile.close();
Serial.println("done.");   }
else {
Serial.println("error opening test.txt");
}
myFile = SD.open("test.txt");
if (myFile) {
Serial.println("test.txt:");
while (myFile.available()) {
Serial.write(myFile.read());
}
myFile.close();   }
else {
Serial.println("error opening test.txt");
}
}
void loop() {
}

Карта SDHC 2класс на 4gb отформатирована в FAT с размером кластера в 64кб 

К своему удивлению, нигде не нашел нормальной информации относительно этого шилда, его распиновки.
Собственно вся работа заканчивается на этом моменте Serial.println("initialization failed!");
 
Кто-нибудь работал с этим шилдом или с аналогичными?
 
 
leshak
Offline
Зарегистрирован: 29.09.2011

>Собственно сама планка расширения - IM120417007

Вообщем кому нужно - гуглите сами что это за зверь.

http://www.lipoly.de/index.php?main_page=product_info&cPath=880_895_1296...

Там же читаем Note: SDHC is not supported.

Могу ошибатся, но помоему стандартная либа вроде только FAT16 работает. Если либы и на FAT32, но тормозючие они. (хотя пишут что вроде и стандартная уже FAT32 понимает, но я бы все-таки рекомендовал начинать с "проверенного"). К тому же еще и имена файлов дайте в формате 8.3 и только "в корень карты".

Вообщем возмите вначале карточку поменьше. Добейтесь работы с ней, а потом уже будете большие пытатся заставить работать.

Подход к заставлянию такой: смотрим что за пины задействованы D10,D11,D12,D13. На http://arduino.cc/en/Reference/SD видим что эти же пины указаны как SPI (через него работает SD) для большинства карт. А вот для меги это 50,51,52,53 пины  (да. это значит что "просто воткнуть шил - не покатит". нужно ложить шилд рядом и тянуть в пины сопли/проводки).

Что-бы точно высянить какой пин меги соотвесвует "обычной плате" идет, к примеру http://arduino.ru/Hardware/ArduinoBoardUno

Находим там описание интерфейа SPI. Видим что каждый пин из этих D10,D11,D12,D13 имеет особое имя SS,MOSI,MISO, SCK

ПОтом идем в описание меги, и там смотрим какие номера имеют пины с этими именами.

И выясняем "кого/куда". К примеру D10 пин шилда, это SS. На меге SS Это 53-тин пин. Значит нужно D10 шилда, воткнуть в D53, а не "куда шилд влазит". 

Аналогично для остальных трех. Ну и питание и с землей подвести.

>Тестовый скетч:

Читамем прекрепленную ветку http://arduino.ru/forum/obshchii/vstavka-programmnogo-koda-v-temukommentarii

SineD13
Offline
Зарегистрирован: 03.01.2013

 

Спасибо еще раз
Опять понял-сам дурак))
SDHC поддерживается точно
 
** MOSI – pin 11
** MISO – pin 12
** CLK – pin 13
** CS – pin 10
 
про прикрепление кода понял, учту
 
шаманю
leshak
Offline
Зарегистрирован: 29.09.2011

SineD13 пишет:

 

** MOSI – pin 11
** MISO – pin 12
** CLK – pin 13
** CS – pin 10
 

Теперь то же самое нужно для меги выяснить 

http://arduino.ru/Hardware/ArduinoBoardMega

>SDHC поддерживается точно

Ну как хотите. Но я бы вначале "максимально упростил". Снизил даже теоретическую возможность проблем. Вначале добился что-бы "хоть что-то заработало", а уж потом занимался "гигабайтами". 

Тут иногда бывает "ну вот просто не нравится ему эта карта и все" (хотя карта 100% рабочая). Кстати это тоже проверьте - тупо другую карточку попробовать. А еще бывает "форматнуть" нужно в чистую. Просто "все удалить" - не помогает. Уж не знаю почему.

SineD13
Offline
Зарегистрирован: 03.01.2013

Уже.

Проблема в том, что под рукой только 4,32 и 64 гб)) завтра зайду, возьму попроще, уже понял это

 

SineD13
Offline
Зарегистрирован: 03.01.2013

Спасибо

leshak
Offline
Зарегистрирован: 29.09.2011

Че-то я вас не понимаю. Я же дал в #1 ссылку где распиновку можно увидеть. Первая моя  ссылка.

Да и "сие" с офсайта ее содержит. Табличка в разделе Hardware это не распиновка?

Да даже просто зная что зная что работает по SPI можно догадатся о распиновке (что в #2 вы и сделали).

Немного смущает что в описании продукта у них написано что она совместима с мегой, а по факту выходить что нужен "напильник" для этого.

SineD13
Offline
Зарегистрирован: 03.01.2013

Именно это факт совместимости и сбил с пути истенного.

Огромное Вам спасибо, второй день помогаете, все сделал, на удивление-работает))))

leshak
Offline
Зарегистрирован: 29.09.2011

 

SineD13 пишет:

Именно это факт совместимости и сбил с пути истенного.

Этим мега плоха для новичка (отличие распиновки). С другой стороны хорошо - заставляет новичка быстрее понять откуда берется нумерация ног и что же именно digitalWrite прячет под собой. Меня - заставила ;)

Вот вам еще пара полезных ссылок:

http://arduino.cc/en/Hacking/PinMapping168

http://arduino.cc/en/Hacking/PinMapping2560

Пригодятся если попадется какая-то библиотека/пример работающие не через digiatlWrite , а напрямую с портами.

Собственно по ним тоже можно увидить куда SPI пины убежали. Или где есть PWM а где нет и т.п.

Кстати, на меге, лично мне удобней (я просто сделал шлейфик) забирать SPI не с 50-тых контактов, а с ICSP разъема. Они еще и туда продублированы (кроме SS - его все равно отдельно тянуть приходится):

Кстати поэтому, если видите на SD шилде отвеку для этого разъема - шансы что он будет работать на меге без дополнительных проводов - резко увеличиваются.

Посмотрите, кстати, какой может и у вас, получится в макетное поле поставить "маму" которая попадет туда.

SineD13 пишет:

Огромное Вам спасибо, второй день помогаете, все сделал, на удивление-работает))))

Не знаю, не знаю. Вот тут некоторые жалуются что "травлю новичков", в гугл и документацию посылаю ;)

Ну и чудно что заработало. Я в таких случаях всегда вспоминаю как сам сидел с улыбкой до ушей минут 20-ть созерцая мигающий диод первого своего девайса на макете :)

SineD13
Offline
Зарегистрирован: 03.01.2013

Самое интересное, что так и подключил))

Ух ты, и такие особи попадаются?

Вот, знакомое чувство, испытывал его в 5утра))

Так, все 3 скетча по отдельности работают, осталось объединить их