#1 2025-04-13 09:34:37

HelloArduino
Учасник
Зареєстрований: 2025-04-13
Повідомлень: 14

Arduino mega записати файл на sd w5100

Всім мирного неба!
Починаю вивчати ардуіно.
Стикнувся з проблемою.
Не можу записати данні в файл на sd за допомогою w5100
Я пыдключаю pin:
             w5100   Mega
MOSI------10 ----51
MISO------11-----50
SCK-------12------52
SS---------13-----53

#include <microDS18B20.h>
  #define DS_PIN 7 //пін для термометрів
  // Унікальні адреси датчиків
  uint8_t s1_addr[] = {0x28, 0x3C, 0xC0, 0x57, 0x0, 0x0, 0x0, 0xF2}; // Основний датчик температури, з одним вузлом
  uint8_t s2_addr[] = {0x28, 0x61, 0x64, 0x35, 0xFA, 0x7E, 0x14, 0x5C}; //Давач в шафу для контролю охолодження
  uint8_t s3_addr[] = {0x28, 0xBC, 0x73, 0x57, 0x0, 0x0, 0x0, 0x19}; //Запасний датчик температури реактора

  MicroDS18B20<DS_PIN, s1_addr> temperReactor;
  MicroDS18B20<DS_PIN, s2_addr> sensor2;
  MicroDS18B20<DS_PIN, s3_addr> sensor3; 

#include <SPI.h>
  #include <SD.h>
  File myfile;
  String sfilename;
  char filename[20];
  String record = "";
void setup() {
  Serial.begin(57600);
  Serial.println("виконання setup");
  delay(1000); // затримака
  pinMode(53, OUTPUT);
  Serial.print("Initializing SD card...");
 
  if (!SD.begin()) {
    Serial.println("initialization failed!");
    return;
  }
  Serial.println("initialization done.");
 
}
void loop() {


  static uint32_t tmr;
  if (millis() - tmr >= 5000) {
    tmr = millis();
    // temperature
      temperReactor.requestTemp();     
      sensor2.requestTemp();
      sensor3.requestTemp();
   
      Serial.print("t1: ");
      if (temperReactor.readTemp()) Serial.println(temperReactor.getTemp());
      else Serial.println("error");
      Serial.print("t2: ");
      if (sensor2.readTemp()) Serial.println(sensor2.getTemp());
      else Serial.println("error");
      Serial.print("t3: ");
      if (sensor3.readTemp()) Serial.println(sensor3.getTemp());
      else Serial.println("error");
    //--------------
// sd card
  if (!SD.begin()) {
    Serial.println("initialization failed!");
    return;
  }
    myfile = SD.open("data.txt", FILE_WRITE);
    record = "Temperature";
    record += "  ";
    record += String(temperReactor.getTemp());
    myfile.println(record);
    myfile.close();
//--------------


  }
}

я постійно отримую помилку підключення до карти.
Прошу допомоги, та пояснити де я роблю не вірно?

Остання редакція HelloArduino (2025-04-13 09:36:13)

Неактивний

#2 2025-04-13 12:01:18

dimich
Учасник
Зареєстрований: 2023-12-01
Повідомлень: 377

Re: Arduino mega записати файл на sd w5100

HelloArduino пише:

Не можу записати данні в файл на sd за допомогою w5100
Я пыдключаю pin:
             w5100   Mega
MOSI------10 ----51
MISO------11-----50
SCK-------12------52
SS---------13-----53

А chip select для SD-карти (SD_CSn)?

Неактивний

#3 2025-04-13 20:33:52

HelloArduino
Учасник
Зареєстрований: 2025-04-13
Повідомлень: 14

Re: Arduino mega записати файл на sd w5100

А chip select для SD-карти (SD_CSn)?

підключено на 4 pin mega -> 4 pin w5100

if (!SD.begin()) {

намагався if (!SD.begin(53))
виходить те саме

Остання редакція HelloArduino (2025-04-13 20:41:16)

Неактивний

#4 2025-04-13 20:44:44

dimich
Учасник
Зареєстрований: 2023-12-01
Повідомлень: 377

Re: Arduino mega записати файл на sd w5100

HelloArduino пише:

підключено на 4 pin mega -> 4 pin w5100
намагався if (!SD.begin(53))
виходить те саме

Чому 53, якщо до нього вже підключений chip select для W5100? Вказуйте той пін, до якого підключений SD_CSn.

Неактивний

#5 2025-04-13 21:26:20

HelloArduino
Учасник
Зареєстрований: 2025-04-13
Повідомлень: 14

Re: Arduino mega записати файл на sd w5100

пробував і 4, не працює.
я щось пропустив, але не можу зрозуміти де

Неактивний

#6 2025-04-13 21:47:05

jokeer
Гість

Re: Arduino mega записати файл на sd w5100

може з самим шілдом щось не так? перевірте, чи доходять сигнали до sd карти. і живлення теж.

#7 2025-04-13 22:17:17

dimich
Учасник
Зареєстрований: 2023-12-01
Повідомлень: 377

Re: Arduino mega записати файл на sd w5100

HelloArduino пише:

пробував і 4, не працює.

Пробували для того SD.begin() що в loop(), чи тільки для того що в setup()? Взагалі-то не дуже хороша ідея реініціалізувати SD на кожній ітерації головного циклу.

Для початку спробуйте мінімальний скетч, який тільки ініціалізує SD і виводить результат, більш нічого не робить.
Спробуйте скетч listfiles із SD examples.

Неактивний

#8 2025-04-14 09:16:13

HelloArduino
Учасник
Зареєстрований: 2025-04-13
Повідомлень: 14

Re: Arduino mega записати файл на sd w5100

dimich пише:

Пробували для того SD.begin() що в loop(),

І там і там!


Взагалі-то не дуже хороша ідея реініціалізувати SD на кожній ітерації головного циклу.

Згоден, в loop  зробив для тесту.

Для початку спробуйте мінімальний скетч, який тільки ініціалізує SD і виводить результат, більш нічого не робить.

Може в кого є скетч та схема саме для mega та w5100
Бо в мене є сумнів що я вірно все зробив.

Неактивний

#9 2025-04-14 11:45:48

jokeer
Гість

Re: Arduino mega записати файл на sd w5100

В папочці examples дивились? там не повинно бути нічого w5100 специфічного.
Купіть логічний аналізатор, 5 баксів на Алі. Відповість зразу на всі питання.

#10 2025-04-14 13:05:24

dimich
Учасник
Зареєстрований: 2023-12-01
Повідомлень: 377

Re: Arduino mega записати файл на sd w5100

HelloArduino пише:

Може в кого є скетч та схема саме для mega та w5100

Шілда W5100 у мене нема, але знайшовся модуль TFT з розʼємом для SD-карти. Підключив до Arduino Mega 2560:

 SD         Mega
SCK   <->    52
MISO  <->    50
MOSI  <->    51
SD_CS <->     4
VCC   <->    5V
GND   <->   GND

Вставив SD-карту з FAT32.
В Arduino IDE завантажив приклад: File -> Examples -> SD -> listfiles. Вибрав "Arduino Mega or Mega 2560" і відповідний порт.

Замінив

const int chipSelect = 10;

на

const int chipSelect = 4;

Скомпілив, завантажив. Все працює:

12:52:54.452 -> Initializing SD card...initialization done.
12:52:54.484 -> U-BOOT.IMG		464508
12:52:54.516 -> MLO		43828
12:52:54.516 -> ROOTFS~2.SQU		12943360
12:52:54.548 -> AM335X~1.DTB		98763
12:52:54.579 -> ROOTFS~1.SQU		12943360
12:52:54.612 -> ZIMAGE		8115424
12:52:54.612 -> done!

Наскільки памʼятаю, контролер SPI на всіх атмегах однаковий, не має бути різниці чи там atmega2560, чи atmega328P.

HelloArduino пише:

Бо в мене є сумнів що я вірно все зробив.

Перевірте живлення що йде на саму SD-карту. Перевірте, чи доходить до неї chipselect.
Якщо у вас підозра, що там щось специфічне для W5100, то давайте схему вашого шілда і що куди підключено, включно з живленням. Телепатично вгадувати будем довго.

Неактивний

#11 2025-04-14 19:56:54

HelloArduino
Учасник
Зареєстрований: 2025-04-13
Повідомлень: 14

Re: Arduino mega записати файл на sd w5100

Перевірте, чи доходить до неї chipselect.

перевірте, чи доходять сигнали до sd карти. і живлення теж.

Коли мега звертається до шилда, світеться світо діон на шилду.
напруга є, 4,8 В

Шилд купив цієї суботи. має робити

В папочці examples дивились? там не повинно бути нічого w5100 специфічного.

де ця папка?

Неактивний

#12 2025-04-14 20:27:44

dimich
Учасник
Зареєстрований: 2023-12-01
Повідомлень: 377

Re: Arduino mega записати файл на sd w5100

HelloArduino пише:

Коли мега звертається до шилда, світеться світо діон на шилду.

До якої лінії цей світлодіод підключений? W5100 - це взагалі мікросхема ethernet-контролера. Шилдів з нею багато різних може бути. SD-карта на шилді - це окремий пристрій, тільки використовує спільну з W5100 SPI-шину (мабуть). А chip select у неї окремий. І має бути конвертор рівнів на SPI, або хоча б резистивні дільники.
Давайте схему вашого шилда. Або хоча б посилання чи фото, по якому можна пошукати його схему. Маркування пінів на ньому якесь є?

HelloArduino пише:

напруга є, 4,8 В

4.8 В на SD-карті? Вона б мала вже згоріти. На шилді має бути регулятор, з якого живлення подається на SD-розʼєм.

Неактивний

#13 2025-04-14 20:44:43

jokeer
Гість

Re: Arduino mega записати файл на sd w5100

Приклади йдуть разом з Arduino core, покладайте менюшки в Arduino ide. з живленням дивно. карті потрібно 3.3в.

#14 2025-04-14 20:49:05

HelloArduino
Учасник
Зареєстрований: 2025-04-13
Повідомлень: 14

Re: Arduino mega записати файл на sd w5100

Всім дякую!
Проблеми вирішив.

Неактивний

#15 2025-04-14 20:53:20

HelloArduino
Учасник
Зареєстрований: 2025-04-13
Повідомлень: 14

Re: Arduino mega записати файл на sd w5100

Всім дякую за ваш час, та бажання допомогти.
             
a8ac2b9bd48cfc23ddd33e393cb56a61b529cac4.png


цього виявляється мало

потрібно ще так з'єднати

dcf72de18dcd5969697a9aee565c8c72628be697.png



цє інфо знайшов на https://forum.arduino.cc/

Неактивний

#16 2025-04-14 21:58:17

dimich
Учасник
Зареєстрований: 2023-12-01
Повідомлень: 377

Re: Arduino mega записати файл на sd w5100

HelloArduino пише:

Проблеми вирішив.

Вітаю! cool

HelloArduino пише:

потрібно ще так з'єднати

Reset там, мабуть, зайвий. А розпіновка вашої версії шилда мала би бути відома вам.
Моя б воля, я б законодавчо заборонив продавати периферійні модулі та шилди без надання схеми електричної принципової smile

Остання редакція dimich (2025-04-14 21:58:31)

Неактивний

#17 2025-04-14 22:28:29

HelloArduino
Учасник
Зареєстрований: 2025-04-13
Повідомлень: 14

Re: Arduino mega записати файл на sd w5100

dimich пише:
HelloArduino пише:

Проблеми вирішив.

Вітаю! cool

HelloArduino пише:

потрібно ще так з'єднати

Моя б воля, я б законодавчо заборонив продавати периферійні модулі та шилди без надання схеми електричної принципової smile

Так є такий закон, навіть забороне продавати обладнання без Україно мовної інструкції.
Ми бере часто у італійців, вони наймають перекладача
але все що купуємо з Китаю приходить так

Неактивний

#18 2025-04-15 08:48:46

jokeer
Гість

Re: Arduino mega записати файл на sd w5100

Все одно не зрозуміло. Різниця між картинками - в проводів reset, який в sd карті не використовується. Може, була помилка в монтажі, і ви її случайно виправили? wink ну і 4.8 В, це ж не просто так.

#19 2025-04-15 13:03:13

dimich
Учасник
Зареєстрований: 2023-12-01
Повідомлень: 377

Re: Arduino mega записати файл на sd w5100

jokeer пише:

Все одно не зрозуміло. Різниця між картинками - в проводів reset, який в sd карті не використовується.

Якщо там такий варіант шилда, то SPI виведено тільки на ICSP, а на пінах 10..12 ніякої SPI нема.

jokeer пише:

4.8 В, це ж не просто так.

То мабуть не на карті міряли, а на вході шилда.

Остання редакція dimich (2025-04-15 13:49:37)

Неактивний

#20 2025-04-15 15:19:46

HelloArduino
Учасник
Зареєстрований: 2025-04-13
Повідомлень: 14

Re: Arduino mega записати файл на sd w5100

jokeer пише:

Все одно не зрозуміло. Різниця між картинками - в проводів reset, який в sd карті не використовується. Може, була помилка в монтажі, і ви її случайно виправили? ;

Добрий день!
Як що уважно порівняти картинки то можна побачити
На першій та другій на шил підключено до різних контактів.
На першій для роботи Ethernet на другій для SD card
Як що я помиляюсь, тоді не знаю що було.

Остання редакція HelloArduino (2025-04-15 15:27:39)

Неактивний

#21 2025-04-15 15:20:50

HelloArduino
Учасник
Зареєстрований: 2025-04-13
Повідомлень: 14

Re: Arduino mega записати файл на sd w5100

jokeer пише:

То мабуть не на карті міряли, а на вході шилда.

Так вірно, то я помилився, та міряв на вході.

Неактивний

#22 2025-04-15 15:30:29

dimich
Учасник
Зареєстрований: 2023-12-01
Повідомлень: 377

Re: Arduino mega записати файл на sd w5100

HelloArduino пише:

На першій для роботи Ethernet на другій для SD card

Ethernet та SD card працюють по одній і тій же шині SPI, тільки chip select у них різні. Просто на вашому шилді SPI виведено тільки на на отой 6-піновий ICSP, якщо вірити схемі по посиланню з попереднього повідомлення.

Неактивний

#23 2025-04-15 15:35:04

HelloArduino
Учасник
Зареєстрований: 2025-04-13
Повідомлень: 14

Re: Arduino mega записати файл на sd w5100

dimich пише:
HelloArduino пише:

На першій для роботи Ethernet на другій для SD card

Ethernet та SD card працюють по одній і тій же шині SPI, тільки chip select у них різні. Просто на вашому шилді SPI виведено тільки на на отой 6-піновий ICSP, якщо вірити схемі по посиланню з попереднього повідомлення.

Схоже що так і є

Неактивний

#24 2025-04-15 16:52:24

jokeer
Гість

Re: Arduino mega записати файл на sd w5100

HelloArduino пише:

Як що уважно порівняти картинки..


Не дуже люблю різнокольорові ребуси. Тим більше розгадувати їх з мобільного телефона wink Був би даташіт на ваш шілд з нормальною схемою - можна було б щось запідозрити. А так, номери пінів на вашій платі щось скажуть лише тому, хто грався в точно таку гру з точно такою платою. Вірогідність цього близько 0.

Швидке повідомлення

Введіть повідомлення і натисніть Надіслати

Підвал форуму