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

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

JustACat

Moderator
Команда форума
Discriminator, Andy Korg, ребята, а не может быть, что это подразумевается именно режим, где ESP выступает в роли ведомого устройства по SPI? А не режим, когда ESP с SD карты что-то грузит...
Просто тут недавно проскакивали дрова на Linux для использования ESP в качестве WiFi как раз вроде по SPI (хотя может вру).
Раздел "ESP8266EX SPI-Slave Mode" в том же доке...
Там скудненько, но описано как раз, что при этом ESP получает прошивку с хоста - то есть с ведущего устройства...
 

pvvx

Активный участник сообщества
@Andy Korg - Понял как оно, в ROM-BIOS:
Код:
main:  
    addi            a1, a1, 0xF0
    s32i.n          a12, a1, 4
    s32i.n          a13, a1, 8
    s32i            a0, a1, 0
    call0           uartAttach
    movi.n          a2, 0
    call0           Uart_Init
    call0           ets_install_uart_printf
    l32r            a12, a_0x60000200
    memw
    l32i            a0, a12, 0x118 ; 0x60000318
    extui           a0, a0, 16, 3
    beqi            a0, 6, _main_bm06
    memw
    l32i            a3, a12, 0x118 ; 0x60000318
    extui           a3, a3, 16, 3
    addi            a3, a3, -7
    beqz            a3, _main_bm07
    memw
    l32i            a4, a12, 0x118 ; 0x60000318
    extui           a4, a4, 16, 3
    addi            a4, a4, -4
    beqz            a4, _main_bm04
    memw
    l32i            a5, a12, 0x118
    extui           a5, a5, 16, 3
    bnei            a5, 5, _main_bm00_03
    movi            a2, 3
    call0           sip_init_attach
    j               _main_bm00_03
_main_bm06:                            
    movi            a2, 0
    call0           sip_init_attach
_main_bm07:                            
    movi.n          a2, 1
    call0           sip_init_attach
    j               _main_bm00_03
_main_bm04:                            
    movi.n          a2, 2
    call0           sip_init_attach
    j               _main_bm00_03
_main_bm00_03: 
    call0           rtc_get_reset_reason
    mov.n           a4, a2
 .....
Т.е. при состоянии битов пинов 4, 5, 6, 7 включается инициализация интерфейса sip (sip_init_attach()).
 

Discriminator

New member
А ведь и правда, кажись где-то на esp8266.com про этот режим читал. Вот только счас не найду хоть убей.
Я пока только это нашел: http://www.esp8266.com/viewtopic.php?f=6&t=1982

Но интересно вот что:
I removed the 25Q40 from one of my modules and attached an SD card socket (4bit mode, D0-D3, CMD, CLK) to the module.

If I set my serial port to 76800 I can see the boot messages:
- if there is no SD card in the socket, the bootloader reports bootmode 7,0 and in the next line "waiting for host"
- if I insert an SD card bootmode changes to 7,2
First digit (7) seems OK, (all lines (GPIO15, GPIO2, GPIO0) are '1'). I did not find anything about the second digit.
 

Andy Korg

Moderator
Команда форума
Последнее редактирование:

Discriminator

New member
Сейчас ремонтирую планшет 7". Там прошивка лежит на 4Гб T-Flash и все работает, в проце только загрузчик.
Возвращаясь к этому вопросу - у меня был планшетик на Freescale-вском камушке. Тоже использовалась только SD карта. Там примерно такой формат записи был на SD:
  • 0 сектор с таблицей разделов
  • u-boot
  • Linux kernel
  • сами разделы
 

pvvx

Активный участник сообщества
Код:
 ets Jan  8 2013,rst cause:2, boot mode:(7,6)

waiting for host
Но это не sip.
 

pvvx

Активный участник сообщества
У нас на сайте давно уже лежит это
Смотрите внизу таблицу
ESP8266 Pin Strapping
угу - там особенно понятно, что:
0- Remapping - это включение RX/TX на GPIO7/8 :)
Наверно по RS-TTL и грузится c SD :))
------
Пока не понятно какие там, в ROM-BIOS 4 типа инициализации sip?
Там устанавливаются неописанные нигде даже мельком регистры...
----
Все пути после вывода надписи "waiting for host" идут на "call0 UartDwnLdProc".
 
Последнее редактирование:

pet

Member
Всем алоха! что в итоге то получается? мастер или ведомый?
Я вот решил поподробней понять как и зачем spi выведен.... и совсем запутался!
подключаю к есп 12-f модуль микроSD по этому SPI, и всё! скетч не зальёшь!(на ардуино ide)
говорит нет синхронизации!)
 

af1283

New member
Дабы не плодить близких по содержанию тем!
Существует вот такой проект:
ESP8266 + SD/MMC + FAT16/32 Demo

И всё бы хорошо, но он у меня не работает. Конкретнее - чтение принятого байта по SPI всегда возвращает 0xFF, не смотря на то, что SD-карта исправно шлёт ожидание инициалиации(0х01). Пожалуйста, попробуйте этот проект сами и расскажите, работает ли он у вас. Также прошу помощи в работе SPI, т.к. хотелось бы все-таки понять, как правильно с ним работать в полнодуплексном режиме.
 

pvvx

Активный участник сообщества
Дабы не плодить близких по содержанию тем!
Существует вот такой проект:
ESP8266 + SD/MMC + FAT16/32 Demo

И всё бы хорошо, но он у меня не работает. Конкретнее - чтение принятого байта по SPI всегда возвращает 0xFF, не смотря на то, что SD-карта исправно шлёт ожидание инициалиации(0х01). Пожалуйста, попробуйте этот проект сами и расскажите, работает ли он у вас. Также прошу помощи в работе SPI, т.к. хотелось бы все-таки понять, как правильно с ним работать в полнодуплексном режиме.
Указанный проект не на 5-ть линий данных к SD. Это же ужасный тормоз - скорость будет ниже чем прием-передача по WiFi - нет смысла в нем ковыряться.
Может проще подключить SD к RTL871x – модуль стоит одинаково, полноценный аппаратный SDIOH контролер в него встроен, ПО, исходники, полная документация к контроллеру есть и всё работает и в среде СИ и RtlDuino с реальными трансферами за 8 мегабайт в сек...
 
Последнее редактирование:

af1283

New member
Указанный проект не на 5-ть линий данных к SD. Это же ужасный тормоз - скорость будет ниже чем прием-передача по WiFi - нет смысла в нем ковыряться.
Может проще подключить SD к RTL871x – модуль стоит одинаково, полноценный аппаратный SDIOH контролер в него встроен, ПО, исходники, полная документация к контроллеру есть и всё работает и в среде СИ и RtlDuino с реальными трансферами за 8 мегабайт в сек...
Я с вашими доводами согласен, но RTL871x у меня нет, а ESP есть. Сейчас попробовал ардуиновский код, что-то и там инициализация не проходит. Может ноге на ESPшке кабздык...
 

af1283

New member
Не думаю. Скорее всего что-то в коде.
Понимаете, очень странная ситуация. Выдача по SPI идёт как по маслу, чтение за редчайшим исключением возвращает FF. Проверял на осциллографе 3 дня, перелопатил 2 версии библиотеки SPI (за одно восхитился логикой работы SPI от Espressif), теперь вот взял скетчи для Arduino IDE. Результат отрицательный. С Arduino всё тоже самое, что и до этого - высылается команда на переход в режим SPI(0x 40 00 00 95), затем sd-карта даёт добро в виде сигнала R1(0x01), а дальнейшей последовательности инициализации sd уже нет.
 

pvvx

Активный участник сообщества
Понимаете, очень странная ситуация. Выдача по SPI идёт как по маслу, чтение за редчайшим исключением возвращает FF. Проверял на осциллографе 3 дня, перелопатил 2 версии библиотеки SPI (за одно восхитился логикой работы SPI от Espressif), теперь вот взял скетчи для Arduino IDE. Результат отрицательный. С Arduino всё тоже самое, что и до этого - высылается команда на переход в режим SPI(0x 40 00 00 95), затем sd-карта даёт добро в виде сигнала R1(0x01), а дальнейшей последовательности инициализации sd уже нет.
Т.е. вы хотите задействовать QSPI (4-х битный SPI)? C SD это сложно - там временные параметры очень критичны...
 
Сверху Снизу