• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Обсуждение Работа модуля с SD картой

Victor

Administrator
Команда форума
С появлением модуля ESP-12-E

мы имеем SPI.

Попробует кто-нибудь прикрутить SD карту?
Можно использовать как логгер или даже грузится с SD. Вариантов применений - масса.
 

ugsm

New member
а разве на модуле ESP-201 их не было? 12е нашел только на ебее у двух продавцов и цены в 2.5 раза выше, чем на обычный 12й и выше, чем на более удобный 201й...
 

ugsm

New member
там микросхема исключительно для согласования уровней 5-3.3В (для ардуинщиков), поэтому в случае ESP8266 можно сразу цепляться к контактам SD карты.
 

anakod

Moderator
Команда форума
Но ведь один из SPI интерфейсов был и раньше доступен, начиная с ESP-03 (как я понимаю SPI2?).

PS Оффтоп: А какая флеш память стоит в ESP-12-E? Тоже 512Кб, или наконец что-то больше?
 

Discriminator

New member
Тема незаметно заглохла или как, какое резюме ?
У кого то успешный опыт есть ? В каком формате грузим ? SD пишем отдельно ? Или можно выпаять флэшь и напаять слот SD ? А подгружать через UART ?

PS: Иноязычные сайты пока не копал...
Но это видел: https://github.com/esp8266/esp8266-wiki/wiki/Boot-Process
 

nikolz

Well-known member
дней через 10 придет плата для SD тогда можно будет обсуждать
 

pvvx

Активный участник сообщества
дней через 10 придет плата для SD тогда можно будет обсуждать
Что-то я не нашел в BIOS-ROM кода загрузки с SD.
Все коды работы с QSPI из ROM-BIOS приведены в Web_Base\xlam\libs\bios\SpiFlash.c.
Садитесь и пишите драйвер, который будет грузиться с flash для работы с SD.
"SD Specifications Version 4.10"
 
Последнее редактирование:

Discriminator

New member
nikolz, Придет что ? Шилд SD-SPI ?
Я вообщето спрашиваю в свете существования модулей типа ESP-201(в которых, вроде как, все или почти все выводы чипа продублированы на ножках)... Ну и пункт: "ESP Boot Modes" в приведенной мной ссылке. Как я понимаю - это подразумевает прямое подключение SD к чипу, ну или с применением преобразователей уровня...
 

pvvx

Активный участник сообщества
Я вообщето спрашиваю в свете существования модулей типа ESP-201(в которых, вроде как, все или почти все выводы чипа продублированы на ножках)... Ну и пункт: "ESP Boot Modes" в приведенной мной ссылке. Как я понимаю - это подразумевает прямое подключение SD к чипу, ну или с применением преобразователей уровня...
Напрямую. Но выводы у модуля сделаны для этого:
http://esp8266.ru/forum/attachments/flash_download_tool-1-0-0-png.506/
Espressif считает, что надо ставить две малых flash, вместо одной большой.
 

Andy Korg

Moderator
Команда форума
Как я понимаю - это подразумевает прямое подключение SD к чипу
Нет, так не будет работать. Дело в том, что для работы с SD-картой нужны вполне определенные команды подавать и они сильно отличаются от управления чип-памятью. Вот например инициализация SD-карты в библиотеке PetitFatFS от Chain
Код:
DSTATUS disk_initialize (void)
{
    BYTE n, cmd, ty, ocr[4];
    WORD tmr;

    INIT_SPI();
    if NoSDCard() return STA_NOINIT;
#if _WRITE_FUNC
    if (MMC_SEL) disk_writep(0, 0);                            // Finalize write process if it is in progress
#endif
    for (n = 100; n; n--) rcv_spi();                        // Dummy clocks

    ty = 0;
    if (send_cmd(CMD0, 0) == 1) {            // Enter Idle state
        if (send_cmd(CMD8, 0x1AA) == 1) {    // SDv2
            for (n = 0; n < 4; n++) ocr[n] = rcv_spi();        // Get trailing return value of R7 resp
            if (ocr[2] == 0x01 && ocr[3] == 0xAA) {                // The card can work at vdd range of 2.7-3.6V
                for (tmr = 12000; tmr && send_cmd(ACMD41, 1UL << 30); tmr--) ;    // Wait for leaving idle state (ACMD41 with HCS bit)
                if (tmr && send_cmd(CMD58, 0) == 0) {        // Check CCS bit in the OCR
                    for (n = 0; n < 4; n++) ocr[n] = rcv_spi();
                    ty = (ocr[0] & 0x40) ? CT_SD2 | CT_BLOCK : CT_SD2;    // SDv2 (HC or SC)
                }
            }
        } else {                            // SDv1 or MMCv3
            if (send_cmd(ACMD41, 0) <= 1)     {
                ty = CT_SD1; cmd = ACMD41;    // SDv1
            } else {
                ty = CT_MMC; cmd = CMD1;    // MMCv3
            }
            for (tmr = 25000; tmr && send_cmd(cmd, 0); tmr--) ;    // Wait for leaving idle state
            if (!tmr || send_cmd(CMD16, 512) != 0)            // Set R/W block length to 512
                ty = 0;
        }
    }
    CardType = ty;
    release_spi();

    return ty ? 0 : STA_NOINIT;
}
Так, что можно попробывать адаптировать это дело для хранения файлов, но и все, т.к. быстродействия SD недостаточно для исполнения кода чипом. Или вы что-то другое имели в виду?
 

Sergi

New member
Ну на счет быстродействия. В основном ограничено самим SPI ESP. Штатная флешь работает до 70МГц клока, что соответствует 10 классу T-flash. И это только в 1бит режиме, но можно запустить и в 4бит(не поддерживается ESP?).
 

Discriminator

New member
Ну на счет быстродействия. В основном ограничено самим SPI ESP. Штатная флешь работает до 70МГц клока, что соответствует 10 классу T-flash. И это только в 1бит режиме, но можно запустить и в 4бит(не поддерживается ESP?).
Почему не поддерживается ? Стр.8 "ESP8266_Module Application Design Guide"
 

Sergi

New member
Я только готовлюсь к приходу ESP :) .Доподлинно не изучил документацию. Опыт с T-flash есть не большой,но если указан класс 6 то выше и не работает (ну может чуть-чуть). Естественно это только на запись,чтение быстрее.
 

Andy Korg

Moderator
Команда форума
Штатная флешь работает до 70МГц клока, что соответствует 10 классу T-flash.
Хмм, тогда я не прав. Остается только сделать, грубо говоря, драйвер для работы с ICACHE_FLASH_ATTR. И будет у нас flash хоть залейся. :) Но че-то сомневаюсь, что это будет работать.
 

Sergi

New member
Сейчас ремонтирую планшет 7". Там прошивка лежит на 4Гб T-Flash и все работает, в проце только загрузчик.
 

Andy Korg

Moderator
Команда форума
что это за режим загрузки с SD карты (GPIO15 = "H").
То же интересно, подскажите плиз место в доках.
Там прошивка лежит на 4Гб T-Flash и все работает, в проце только загрузчик.
Может быть загрузчик затаскивает в память все целиком или оверлеями, можно ли так сделать на esp не могу точно сказать.
 
Сверху Снизу