Что-то я не нашел в BIOS-ROM кода загрузки с SD.дней через 10 придет плата для SD тогда можно будет обсуждать
Напрямую. Но выводы у модуля сделаны для этого:Я вообщето спрашиваю в свете существования модулей типа ESP-201(в которых, вроде как, все или почти все выводы чипа продублированы на ножках)... Ну и пункт: "ESP Boot Modes" в приведенной мной ссылке. Как я понимаю - это подразумевает прямое подключение SD к чипу, ну или с применением преобразователей уровня...
Нет, так не будет работать. Дело в том, что для работы с SD-картой нужны вполне определенные команды подавать и они сильно отличаются от управления чип-памятью. Вот например инициализация SD-карты в библиотеке PetitFatFS от ChainКак я понимаю - это подразумевает прямое подключение SD к чипу
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;
}
Почему не поддерживается ? Стр.8 "ESP8266_Module Application Design Guide"Ну на счет быстродействия. В основном ограничено самим SPI ESP. Штатная флешь работает до 70МГц клока, что соответствует 10 классу T-flash. И это только в 1бит режиме, но можно запустить и в 4бит(не поддерживается ESP?).
Хмм, тогда я не прав. Остается только сделать, грубо говоря, драйвер для работы с ICACHE_FLASH_ATTR. И будет у нас flash хоть залейся. Но че-то сомневаюсь, что это будет работать.Штатная флешь работает до 70МГц клока, что соответствует 10 классу T-flash.
Я хочу разобраться, что это за режим загрузки с SD карты (GPIO15 = "H"). Учитывая, что судя по докам, вроде как, карта должна цепляться на прямую к чипу без SPI посредников.Или вы что-то другое имели в виду?
То же интересно, подскажите плиз место в доках.что это за режим загрузки с SD карты (GPIO15 = "H").
Может быть загрузчик затаскивает в память все целиком или оверлеями, можно ли так сделать на esp не могу точно сказать.Там прошивка лежит на 4Гб T-Flash и все работает, в проце только загрузчик.
https://github.com/esp8266/esp8266-wiki/wiki/Boot-ProcessТо же интересно, подскажите плиз место в доках.
Большое спасибо. К сожалению негусто Надо ковырять загрузчик, а тут у меня уже мозга не хватаетESP8266_Module Application Design Guide стр.8,16