Скрыть объявление
На нашем форуме недоступен просмотр изображений для неавторизованных пользователей. Если Вы уже зарегистрированы на нашем форуме, то можете войти. Если у Вас еще нет аккаунта, мы будем рады, если Вы к нам присоединитесь. Зарегистрироваться Вы можете здесь.

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

Тема в разделе "Железные вопросы по esp8266", создана пользователем Victor, 14 апр 2015.

Метки:
  1. Victor

    Victor Administrator Команда форума

    Сообщения:
    2.224
    Симпатии:
    389
    С появлением модуля ESP-12-E
    ESP-12-E (раскрыть)

    [​IMG]
    [​IMG]

    мы имеем SPI.

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

    ugsm Новичок

    Сообщения:
    8
    Симпатии:
    1
    а разве на модуле ESP-201 их не было? 12е нашел только на ебее у двух продавцов и цены в 2.5 раза выше, чем на обычный 12й и выше, чем на более удобный 201й...
     
  3. Victor

    Victor Administrator Команда форума

    Сообщения:
    2.224
    Симпатии:
    389
    Есть вот такие разные модули за 1$ с SPI для SD. Можно поискать на 3,3v и попробовать прикрутить к ESP8266
     
  4. ugsm

    ugsm Новичок

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

    anakod Moderator Команда форума

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

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

    Discriminator Читатель

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

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

    nikolz Гуру

    Сообщения:
    5.350
    Симпатии:
    473
    дней через 10 придет плата для SD тогда можно будет обсуждать
     
  8. pvvx

    pvvx Активный участник сообщества

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

    Discriminator Читатель

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

    pvvx Активный участник сообщества

    Сообщения:
    10.240
    Симпатии:
    1.349
    Напрямую. Но выводы у модуля сделаны для этого:
    http://esp8266.ru/forum/attachments/flash_download_tool-1-0-0-png.506/
    Espressif считает, что надо ставить две малых flash, вместо одной большой.
     
  11. Andy Korg

    Andy Korg Moderator Команда форума

    Сообщения:
    416
    Симпатии:
    76
    Нет, так не будет работать. Дело в том, что для работы с SD-картой нужны вполне определенные команды подавать и они сильно отличаются от управления чип-памятью. Вот например инициализация SD-карты в библиотеке PetitFatFS от Chain
    Инициализация SD (раскрыть)
    Код (C):
    1. DSTATUS disk_initialize (void)
    2. {
    3.     BYTE n, cmd, ty, ocr[4];
    4.     WORD tmr;
    5.  
    6.     INIT_SPI();
    7.     if NoSDCard() return STA_NOINIT;
    8. #if _WRITE_FUNC
    9.     if (MMC_SEL) disk_writep(0, 0);                            // Finalize write process if it is in progress
    10. #endif
    11.     for (n = 100; n; n--) rcv_spi();                        // Dummy clocks
    12.  
    13.     ty = 0;
    14.     if (send_cmd(CMD0, 0) == 1) {            // Enter Idle state
    15.         if (send_cmd(CMD8, 0x1AA) == 1) {    // SDv2
    16.             for (n = 0; n < 4; n++) ocr[n] = rcv_spi();        // Get trailing return value of R7 resp
    17.             if (ocr[2] == 0x01 && ocr[3] == 0xAA) {                // The card can work at vdd range of 2.7-3.6V
    18.                 for (tmr = 12000; tmr && send_cmd(ACMD41, 1UL << 30); tmr--) ;    // Wait for leaving idle state (ACMD41 with HCS bit)
    19.                 if (tmr && send_cmd(CMD58, 0) == 0) {        // Check CCS bit in the OCR
    20.                     for (n = 0; n < 4; n++) ocr[n] = rcv_spi();
    21.                     ty = (ocr[0] & 0x40) ? CT_SD2 | CT_BLOCK : CT_SD2;    // SDv2 (HC or SC)
    22.                 }
    23.             }
    24.         } else {                            // SDv1 or MMCv3
    25.             if (send_cmd(ACMD41, 0) <= 1)     {
    26.                 ty = CT_SD1; cmd = ACMD41;    // SDv1
    27.             } else {
    28.                 ty = CT_MMC; cmd = CMD1;    // MMCv3
    29.             }
    30.             for (tmr = 25000; tmr && send_cmd(cmd, 0); tmr--) ;    // Wait for leaving idle state
    31.             if (!tmr || send_cmd(CMD16, 512) != 0)            // Set R/W block length to 512
    32.                 ty = 0;
    33.         }
    34.     }
    35.     CardType = ty;
    36.     release_spi();
    37.  
    38.     return ty ? 0 : STA_NOINIT;
    39. }
    40.  

    Так, что можно попробывать адаптировать это дело для хранения файлов, но и все, т.к. быстродействия SD недостаточно для исполнения кода чипом. Или вы что-то другое имели в виду?
     
  12. Sergi

    Sergi Читатель

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

    Discriminator Читатель

    Сообщения:
    130
    Симпатии:
    9
    Почему не поддерживается ? Стр.8 "ESP8266_Module Application Design Guide"
     
  14. Sergi

    Sergi Читатель

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

    Andy Korg Moderator Команда форума

    Сообщения:
    416
    Симпатии:
    76
    Хмм, тогда я не прав. Остается только сделать, грубо говоря, драйвер для работы с ICACHE_FLASH_ATTR. И будет у нас flash хоть залейся. :) Но че-то сомневаюсь, что это будет работать.
     
  16. Discriminator

    Discriminator Читатель

    Сообщения:
    130
    Симпатии:
    9
    Я хочу разобраться, что это за режим загрузки с SD карты (GPIO15 = "H"). Учитывая, что судя по докам, вроде как, карта должна цепляться на прямую к чипу без SPI посредников.
     
  17. Sergi

    Sergi Читатель

    Сообщения:
    11
    Симпатии:
    5
    Сейчас ремонтирую планшет 7". Там прошивка лежит на 4Гб T-Flash и все работает, в проце только загрузчик.
     
  18. Andy Korg

    Andy Korg Moderator Команда форума

    Сообщения:
    416
    Симпатии:
    76
    То же интересно, подскажите плиз место в доках.
    Может быть загрузчик затаскивает в память все целиком или оверлеями, можно ли так сделать на esp не могу точно сказать.
     
  19. Discriminator

    Discriminator Читатель

    Сообщения:
    130
    Симпатии:
    9
  20. Andy Korg

    Andy Korg Moderator Команда форума

    Сообщения:
    416
    Симпатии:
    76
    Большое спасибо. К сожалению негусто :( Надо ковырять загрузчик, а тут у меня уже мозга не хватает :)
     

Поделиться этой страницей