Мега 2560 + SD card - записывается мусор

User MTU
Offline
Зарегистрирован: 24.03.2012

Здравствуйте.

Использую мегу 2560, шилд sd-card (на нем стабилизатор 5-3.3В, подтягивающие резисторы и больше ничего). Пример из среды разработки версии 1.0.4.

Подключено так как надо для меги 2560.

Есть проблема.

Например инициализировать карточку, понять есть она или нет получается.  Пpочитать имя файла и понять есть нужный или нету получается.

А вот создать файл, открыть и записать в него данные не получается - на карточку пишется мусор... при чем создаются "типа" файлыл или папки, которые на компьютере неоткрываемые...

Пробовал и FAT16 и FAT32, пробовал питание и 5 и 3.3 В (там можно выбрать как питать шилд).

Карточка на 2 Гб (не SDHC).

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

 

gooroong
gooroong аватар
Offline
Зарегистрирован: 08.03.2015

Здравствуйте, Вам удалось решить проблему? 

Я испробовал: формаирования (полного в fat16-33), укоротил провода до <10см (прочитал на каком то форуме)

Все равно пишет мусор.

  //инициализация карты памяти на 53м контакте
  if (!SD.begin(53)) {
    Serial.println("Card failed, or not present");
    // don't do anything more:
    return;
  }
  Serial.println("card initialized.");
  SaveConfig();


void SaveConfig() {
  File MyFile;
  String Record;
  byte j,l;
  if (SD.exists("config.ini")) { 
    SD.remove("config.ini");
  }
  MyFile = SD.open("config.ini", FILE_WRITE);
  Serial.println("creating ini file");
  Record=String(Valves);
  MyFile.println(Record);
  Serial.println(Record);
  for (j=0; j<Valves; j++) {
    Record=""; 
    for (l=0; l<7; l++) {
      Record+=String(ValveWeek[j][l]);
      Record+=" ";
    }
    MyFile.println(Record);
    Serial.println(Record);
  } 
  MyFile.close();
  Serial.println("close file");
}