К содержимому
  1. Главная
  2. Блог
  3. Как использовать ArduCAM с платой Arduino Due

Как использовать ArduCAM с платой Arduino Due

6 октября 2014 · По материалам Arducam

Пользователи часто сообщали, что плата-шилд ArduCAM не работает с платой Due. Теперь это известная проблема.

В Arducam выяснили, что на плате Due библиотека SD по умолчанию работает на гораздо большей скорости, чем поддерживает шилд ArduCAM. Текущие тайминги SPI шилда ArduCAM поддерживают скорость менее 10 Мбит/с. Поэтому, чтобы ArduCAM и Due работали вместе, SPI нужно настроить на меньшую скорость.

Чтобы обойти проблему, измените библиотеку SD, как описано ниже.

1. Добавьте последнюю строку в файл \libraries\SD\utility\Sd2Card.h, как показано ниже:

/** Set SCK to max rate of F_CPU/2. See Sd2Card::setSckRate(). */
uint8_t const SPI_FULL_SPEED = 0;
/** Set SCK rate to F_CPU/4. See Sd2Card::setSckRate(). */
uint8_t const SPI_HALF_SPEED = 1;
/** Set SCK rate to F_CPU/8. Sd2Card::setSckRate(). */
uint8_t const SPI_QUARTER_SPEED = 2;
uint8_t const SPI_ARDUCAM_SPEED = 3;

2. Измените функцию SDClass::begin() в файле \libraries\SD\SD.cpp следующим образом:

boolean SDClass::begin(uint8_t csPin) {
/*
 
Performs the initialisation required by the sdfatlib library.
 
Return true if initialization succeeds, false otherwise.
 
*/
//return card.init( SPI_FULL_SPEED, csPin) &&
//return card.init(SPI_HALF_SPEED, csPin) &&
//return card.init(SPI_QUARTER_SPEED, csPin) &&
return card.init(SPI_ARDUCAM_SPEED, csPin) &&
volume.init(card) &&
root.openRoot(volume);
}

Ещё по теме

Запросить цену

Укажите количество — пришлём коммерческое предложение.