Как установить CS-пин на Beetle BLE/Bluno Beetle на Adafruit SD Card Breakout - Ошибка инициализации!
Здравствуйте, у меня есть Beetle BLE (https://www.dfrobot.com/wiki/index. php/Bluno_Beetle_SKU:DFR0339), и я пытаюсь подключить коммутационную плату Adafruit MicroSD+ (https://www.adafruit .com/product/254) через соединения SPI. Я пробую следующий код, но у меня возникают проблемы с выбором контакта CS с помощью D4, так как у Beetle нет D10. Кто-нибудь знает, правильно ли я выбираю D4, сохраняя при этом контакт 10 в качестве выхода. Я продолжаю получать сообщение об ошибке инициализации! В моей настройке используется 6-контактная конфигурация ICSP:
5В --> 5В
МИСО --> ДЕЛАТЬ
SCK -->CLK
Земля --> Земля
MOSI --> DI
D4 --> СС
RST отсутствует
Вот мой код:
#include <SPI.h>
#include <SD.h>
File myFile;
void setup()
{
Serial.begin(9600);
Serial.print("Initializing SD card...");
// На плате Ethernet Shield CS — это контакт 4. По умолчанию он установлен как выход.
// Обратите внимание, что даже если он не используется в качестве вывода CS, аппаратный вывод SS
// (10 на большинстве плат Arduino, 53 на Mega) нужно оставить как выход
// или функции библиотеки SD не будут работать.
// pinMode(4, OUTPUT);
pinMode(10, OUTPUT);
// цифровая запись(4, ВЫСОКИЙ); // Добавляем эту строку
if (!SD.begin(4)) {
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");
}
}
void loop()
{
// после настройки ничего не происходит
}
@Conrad Addo, 👍0
Обсуждение3 ответа
Лучший ответ:
Правильный ICSP был справа, ICSP1. Однако ориентация этих контактов была слева направо на ВЕРХНЕМ: SCK, 5V, MISO; слева направо ВНИЗУ: MOSI, RESET, GND. В Wiki они поменяли местами метки ICSP 1 и 2, но правильно в тексте ниже. https://www.dfrobot.com/wiki/index.php/Bluno_Beetle_SKU:DFR0339
Поэтому в коде не было ничего неправильного, только подключение к правильным контактам!
Заголовок ICSP метки на странице Wiki неверны. На схеме здесь разъем ICSP имеет ту же распиновку, что и другие платы Arduino. Легенда не соответствует картинке на вики-странице, но соответствует действительности:
- ICSP1: Atmega 328P
- ICSP2: CC2540
Заголовок ICSP является внутренним. Правильно на картинках. У вывода 1 на плате угол белого квадрата вокруг кеглей перекошен. Штыри слева направо первый ряд Eeset, CLK, MISO, второй ряд Земля, MOSI, 5 В.
схема платы в формате pdf
Привет, Юрай, спасибо за ответ. На этой странице много ссылок, включая ту, которую я вам отправил. Не могли бы вы прислать прямую ссылку на правильную диаграмму ICSP? Ценить это., @Conrad Addo
добавил в ответ, @Juraj
Юрай и @Jot, как это соответствует контактам на плате на этом рисунке? Я не знаю, как это сказать: [Пин-картинка ICSP](https://i.imgur.com/MQTGSIx.jpg), @Conrad Addo
отмечен один угол. это контакт 1 MISO, @Juraj
Извини, Юрай, я этого не вижу. Можно поподробнее о порядке и ориентации?, @Conrad Addo
я отредактировал ответ, @Juraj
Привет @Juraj. Сегодня вечером я припаял провода, но все равно получаю сообщение «Ошибка инициализации». Что касается контактов, как вы поняли, что схема на странице Wiki изначально неверна? PS: та же настройка работает на моем Arduino Pro Mini, но я определенно хочу, чтобы она работала на Beetle для моего проекта., @Conrad Addo
Я подключал ICSP-разъем AVR с помощью перемычек DuPont столько раз, что знаю распиновку без схемы. А плата Atmega 328 не может иметь другую распиновку разъема ICSP, потому что разъем программатора AVR не будет совпадать., @Juraj
Я все еще получаю сообщение об ошибке инициализации. Есть идеи, в чем может быть проблема? Я проверил свои провода, они такие, как вы сказали., @Conrad Addo
вопрос какой из двух заголовков Atmega. что с 3,3 В это не ICSP. в схеме это JP2. так что вполне возможно, что правильный заголовок - это правильный заголовок, @Juraj
Я отредактировал ответ. https://github.com/Arduinolibrary/DFRobot_Bluno_Bettle/raw/master/Bluno%20beetle%20V1.0%20layout%20ground.pdf, @Juraj
Да, я уже подключаюсь к правильному, который находится слева (ICSP2), так что, похоже, проблема здесь не в этом. Будут ли ориентация и порядок ICSP2 такими же, как у вашего AVR, или они могут отличаться?, @Conrad Addo
Может быть, проблема в коде, который я не делаю?, @Conrad Addo
право есть право. ICSP1. ICSP2 — это не ICSP., @Juraj
Протестировано с другими контактами ICSP1. Это определенно не сработало, поскольку скетч даже не вошел в setup(), потому что «Инициализация SD-карты...» не распечаталась. Спасибо за вашу постоянную помощь., @Conrad Addo
если плата не загружается, сброс подключается к земле. или короткое замыкание где-то есть, @Juraj
Привет, Юрай, правильный ICSP был справа, ICSP1. Однако ориентация этих контактов была сверху слева направо: SCK, 5V, MISO; слева направо ВНИЗУ: MOSI, RESET, GND. В Wiki метки ICSP 1 и 2 перепутаны, но в тексте ниже они верны. https://www.dfrobot.com/wiki/index.php/Bluno_Beetle_SKU:DFR0339, @Conrad Addo
тогда они не должны называть его заголовком ICSP, потому что вы не можете использовать с ним программатор ICSP AVR https://www.olimex.com/Products/AVR/Programmers/AVR-ISP-MK2/open-source-hardware, @Juraj
Я думал, что ICSP — это просто протокол и не имеет ничего общего с конкретным программистом AVR., @Conrad Addo
у программаторов есть кабель с разъемом 2х3, @Juraj
лол, позже я проверю твои выводы на своем устройстве, но спасибо за этот пост. Ух ты, их документация не только бесполезна, но и к тому же испорчена!, @Scott
Вот что я вижу на своем мультитестере:
CC2540 — это микросхема SMD, расположенная на той же стороне, что и контактные площадки ICSP. Atmega328p находится на противоположной стороне платы
- Запись данных на SD-карту из SoftwareSerial
- SD-карта не инициализируется
- Что означают эти контакты? Куда мне их подключить?
- Почему Adafruit motor shield не крутит моторы?
- Понимание того, почему следует избегать «String» и альтернативных решений
- Статус выхода 1 ожидаемое первичное выражение перед ']' Arduino
- Arduino: как записать значение переменной в текстовый файл и изменить его на SD-карте?
- Сохранение файла .txt на SD-карту и чтение данных каждого содержимого в файл txt, а затем сохранение его в переменной
Схему жука Bluno можно найти здесь: https://www.dfrobot.com/product-1259.html Atmega подключена с rx и tx через резистор 4k7 к чипу bluetooth, а чип bluetooth подключен к usb. Шина spi на модуле не используется, поэтому с другими чипами проблем нет. Установка контакта 10 в качестве выхода и использование контакта 4 в качестве выбора микросхемы должны работать., @Jot