Arduino M0 - Программный SPI для работы с SD-Картой, кто сталкивался?

Тема в разделе "Схемотехника, компоненты, модули", создана пользователем trv, 19 мар 2019.

  1. parovoZZ

    parovoZZ Гуру

    Атмелу пофигу на все ваши абдурины. В даташите глупо искать такую информацию. И это прекрасный звоночек о том, что с этой шизы надо бы слезать.
     
  2. trv

    trv Нуб

    очень нужно решить проблему с имеющимися железками!
     
  3. parovoZZ

    parovoZZ Гуру

    Менять железо я не призываю ни в коем случае.

    Можно попробовать атмел старт
    https://start.atmel.com/

    Вся периферия настраивается визуально
     
  4. trv

    trv Нуб

    из просмотренного 1-го видео - это некое подобие FLprog или FLprog это подобие проекта от atmel, однако, это интересно, но не имеет практического применения для моей задачи, поэтому смотреть данный проект буду в будущем, но не сейчас... мне нужно решить текущую задачу...
     
  5. parovoZZ

    parovoZZ Гуру

    ну бейся лбом дальше ап свою абдурину. Её ж не зря так назвали....
     
  6. trv

    trv Нуб

    Вот нашел библиотеку SDfat, в описании которой есть фраза "Support for multiple SPI ports now uses a pointer to a SPIClass object." - можете подсказать, все таки, как "прикрутить" SD карту к МК с этой библиотекой?
     
  7. trv

    trv Нуб

    Работающий код, взятый и несколько исправленный, из примеров к библиотеке SdFat, запись файла на SD-карту работает, остальное уже буду разбирать чуть позже, основного добился - SD карта работает по SPI на пинах 11,12,13 и SS(10).
    Код (C++):
    #include <SPI.h>
    #include "SdFat.h"
    const uint8_t SOFT_MISO_PIN = 12;
    const uint8_t SOFT_MOSI_PIN = 11;
    const uint8_t SOFT_SCK_PIN  = 13;
    const uint8_t SD_CHIP_SELECT_PIN = 10;

    // SdFat software SPI template
    SdFatSoftSpi<SOFT_MISO_PIN, SOFT_MOSI_PIN, SOFT_SCK_PIN> sd;

    // Test file.
    SdFile file;

    void setup() {
      SerialUSB.begin(9600);
      // Wait for USB Serial
      while (!SerialUSB) {
        SysCall::yield();
      }
      SerialUSB.println("Type any character to start");
      while (!SerialUSB.available()) {
        SysCall::yield();
      }

      if (!sd.begin(SD_CHIP_SELECT_PIN)) {
        sd.initErrorHalt();
      }

      if (!file.open("localSPI.txt", O_RDWR | O_CREAT)) {
        sd.errorHalt(F("open failed"));
      }
      file.println(F("This line was printed using software SPI. SPIClass => localSPI"));

      file.rewind();

      while (file.available()) {
        SerialUSB.write(file.read());
      }

      file.close();

      SerialUSB.println(F("Done."));
    }
    //------------------------------------------------------------------------------
    void loop() {}
    Попробовал на скорую руку штамп даты в атрибутах файла, пока не получилось, но надеюсь, просто нужно подробнее с атрибутами разобраться.
    Всем огромное спасибо, что помогали!!!
     
    Последнее редактирование: 20 мар 2019
  8. trv

    trv Нуб

    На досуге посмотрел webIDE от Atmel'а - периферии очень мало... SD-card, нет точно!