MEGA+SD Card shield(seeed studio)

RANDREY
Offline
Зарегистрирован: 10.06.2012

SD Card shield(seeed studio) v3.0 есть и мега 2560, нужен SD, или паять или это использовать, хотя он для UNO, просто одеть не получится, окромя коробки ничего нет, как перебросить провода к нему?

На плате выводы 0-13,GND,REF (резисторы сосредоточены в районе REF,GND,8-13),другая сторона RESET,3.3V,5V,GND,VIN,A0,A1 и 2 джека UART,IIC.

Сообственно надо пробросить 4 вывода, и землю (это понятно) . Может в инете есть схемка шилда?

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

http://www.seeedstudio.com/wiki/SD_Card_Shield_V3.0

все популярно и с картинками...

RANDREY
Offline
Зарегистрирован: 10.06.2012

Спасибо, искал через гугль - одни магазины...

RANDREY
Offline
Зарегистрирован: 10.06.2012

уезжал, приехал, начал подключать - 4 провода пробросил, а тут вопрос где питание?

полез на сайт и увидел надпись ( Do not compatible with Mega) Voltage max 3.6V хотя далее 3.3v and 5v logical voltage compatible

придется паять...

 

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

а взять с меги 3.3 вольта вам религия не позволяет?

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

Да не... плохо читали....  Ну да, не совместим... без танцев с бубном.. но танцы с бубном описаны там же

This shield works fine for the Arduino Mega 2560, you just have to make the appropriate connections. 4or10 ->53, 11->51, 12 ->50, and 13 ->52. This arrangement works fine so long as you make sure not to assign anything else to those pins.

Питание - не нужно пробрасывать отдельно. Оно у Меги там же где и у Uno, так что когда "просто воткнете" - оно уже запитается.

Непонятно только почему они написали 4 or 10, хотя ниже четко написанно D10 – Used for CS of SPI, поэтому каким боком тут D4 - не понятно.

Если често, я вообще не понимаю "нафига" вообще делать проброс на 53, если можно просто, при инициализации библиотеки указать какой пин использовать в качестве CS . Написать SD.begin(10) да и дело с концом. 

Главное потом, нигде в коде, больше не трогать эти пины. Как те "откуда пробрасывали проводком", так и те "куда пробрасывали"

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

Вообщем я бы попробовал сделать проброс трех проводов

11->51, 12 ->50, and 13 ->52

И в коде написал SD.begin(10);

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

Да, судя по http://arduino.cc/en/Reference/SDbegin

"Note that even if you use a different chip select pin, the hardware SS pin must be kept as an output or the SD library functions will not work."

Нужно будет, еще сделать pinMode(53,OUTPUT); если мы не бросаем на него проводок.

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

Вообщем либо 4-ре проводка и не нужны изменения в коде примеров, либо три проводка и 

pinMode(53,OUTPUT);
if(!SD.begin(10)){
....

Вначале бы попробовал без pinMode(53,OUTPUT), скорее всего "не заработает", тогда добавил-бы ее (фиг его знает, вдруг они под "kept as an output" подразумевали "оставте просто висеть в воздухе", а не "включите его на выход").

RANDREY
Offline
Зарегистрирован: 10.06.2012

Puhlyaviy пишет:

а взять с меги 3.3 вольта вам религия не позволяет?

я про них совершенно забыл, помятуя про логическую единицу в 5 вольт на шине данных

RANDREY
Offline
Зарегистрирован: 10.06.2012

leshak пишет:

Вообщем либо 4-ре проводка и не нужны изменения в коде примеров, либо три проводка и

завтра опробую...

RANDREY
Offline
Зарегистрирован: 10.06.2012

что-то никак 

pinMode(53, OUTPUT); // INI SD CARD
if (!SD.begin(53)) {
lcd.setCursor(0, 0);
lcd.print ("ini SD fail");
delay(100000);
return;
}

MOSI -11-51

MISO-12-50

CLK-13-52

ES-10-53

подал питание 3.3 с меги и землю, пишет ini SD fail, карточка вставлена 8Гб

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

>карточка вставлена 8Гб

Во первых:

Берите другую карточку. Даже 4-ре может быть многовато. Лучше поменьше. Даже с "правильным размером" и то - иногда бывает переборчива. Так что лучше запастись карточками для подбора феншуйной :)  Ну и форматируйте ее правильно. В FAT32 или FAT16. Я бы рекомендовал - FAT16. NTFS - забудте. Даже если уже формат подходящий - все равно форматните. Начните с чистой.

Во вторых:

так какой вариант вы попробовали. Прокидывая 4-тый проводок или нет?  Если прокидывая, то в коде вообще ничего менять не нужно было. SD.Begin() - и все. Если "не прокидывая", то почему SD.begin(53)? Я вроде писал SD.begin(10)

А.. 53, это если в pinMode(53,OUTPUT); . Но... это в самую последнюю очередь попробовать. Смущает оно меня сильно :(  Но .. не могу точно перевести " it must be left as an output".

То ли

1. Оставте его не подключенным (склоняюсь к этому варианту), тогда pinMode - не нужен, то ли
2. Выставте его в режим ВЫХОД (тогда pinMode нужен), но... что-то протестует внутри против этого :)  Не попадался нигде на глаза такой вариант, что-бы включали его сами.

Про питание - не понял что вы там "прокидывали". Шилд же садится на свое место и пинами получает питание без прокидываний. Питание/земля у UNO/Mega совпадают. По идее - ничего не нужно было мудрить по этому поводу (если вы "нахлобучиваете шилд", а не "проводками подключаете").

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

RANDREY пишет:

пишет ini SD fail, карточка вставлена 8Гб

канечно никак, там же написано что максимум 2 гб карточка :)

RANDREY
Offline
Зарегистрирован: 10.06.2012

так вотнул в картридер, не пашет, не видит, помнится, что была у меня битая карта, т.е нечитаемая в компе, сначала не читаемая, а потом читалось, и скинул фото. А может и сжег карту, хотя менял только проводки на 50-11,51-12,52-13,53-10 на холодную.

Поищу старую, везде продают больших объёмов...

4 проводка вёл, 

SD.begin(10) - у меня LED висит на 10 ноге, ничего?

"Про питание " да вполне возможно что питание дублируется наверх, для бутерброда и и плата питание от этих пинов не берет, 

надо смотреть на обратную сторону (уже прикручено), на верхней части  от пинов питания дорожек нет.

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

Ну, я прямо уж и не знаю как еще сказать.

leshak пишет:

 Если прокидывая, то в коде вообще ничего менять не нужно было. SD.Begin() - и все.

Ну если уже хочется все-таки указать, то на меге SD.Begin(53). Это если ЕСТЬ Проводок от 10 к 53!!! Все. Больше ничего!!!

Вообщем определитесь. И пробуйте какой-то один вариант, или по очереди, но не делайте микс.

Вариант 1:

Проводок 10-53 прокинут. Тогда либо SD.begin() или SD.begin(53) - без разницы (на меге, когда мега выбрана в качестве целевой платы).

Вариант 2:

Проводок 10->53 - отсутсвует. Тогда pinMode(53,OUTPUT); SD.begin(10);   

(pinMode - таки нужен. Выяснил это однозначно. В примере DumpFile.ino  - это видно не только "словами", но и "кодом").

> у меня LED висит на 10 ноге, ничего?

Еще как "чего". Нафиг его.

>надо смотреть на обратную сторону (уже прикручено), на верхней части  от пинов питания дорожек нет.

Не нужно Ничего смотреть. Плата может быть и многослойной. Если она не дефектная.... ну вот представте, что у вас UNO. Как бы оно питалось? С пинов. А где пины питания? Там же где и на меге. Так почему на на UNO никто землю и питания не тягает, а на меге вы решили потягать? Что-бы увеличить шансы где-то хомутнуть? SPI пины - у меги в другом месте. Тут понятно почему нужно "тягать", но питание и землю?