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

ESP8266 + SD/MMC + FAT16/32 Demo

idnull

New member
Решил сделать и выложить пример работы с картой папяти и файловой системой fat для esp8266 (вдруг кому-нибудь пригодиться как шаблон ).
Пример просто печатает в консоль содержимое всех директорий на карте памяти ..
Примерно вот так:
test.png
Подключение:
GPIO12 - MISO
GPIO13 - MOSI
GPIO14 - CLOCK
GPIO15 - CS / SS
SPI интерфейс - аппаратный HSPI.

Выглядит как-то так (maple mini сдесь - для прошивки и с него берётся питание 3.3в )
J0uegIK2iMM.jpg

Скачать
https://www.dropbox.com/s/89zihpo18ck0van/Fat32_demo.zip?dl=0
(Проект для Espressif-ESP8266-DevKit-v2.0.6-x86)

Описание API FAT16/32 здесь: http://elm-chan.org/fsw/ff/00index_e.html
 

Meinframe

New member
Скажите пожалуйста, а чтобы использовать как шаблон для работы просто с SPI, достаточно лишь взять файлы
/driver/spi.c
/driver/uart.c
/include/driver/spi.h
/include/driver/spi_register.h
/include/driver/uart.h
/include/driver/uart_register.h
/include/user_config.h
и переделать user_main.c под задачи для соединения по SPI (init, rx, tx и т.д.) ?
 

idnull

New member
если только spi - достаточно
/driver/spi.c
/include/driver/spi.h
/include/driver/spi_register.h

в user_main.c - spi_init(); для инициализации
и spiwrite(uint8) - для передачи и приёмы (сдесь spi в дуплексном режиме )
+ в spi.h
подобрать делители
[HASHTAG]#define[/HASHTAG] SPI_CLK_PREDIV
[HASHTAG]#define[/HASHTAG] SPI_CLK_CNTDIV
для нужной вам скорости.
вроде как этого должно хватить.
 

Meinframe

New member
Подскажите пожалуйста, в spi_register.h какие переменные отвечают за SPI_SS, чтобы выставлять high или low.
 

idnull

New member
в данном примере select slave аппаратно выставляеться в low перед началом передачи и в high полсе окончания..
это можно отключить
в spi_init строчкой SET_PERI_REG_MASK(SPI_USER(HSPI), SPI_CS_SETUP|SPI_CS_HOLD);
если закоментировать - то управление SPI_SS придёться делать самому через gpio

а если подробнее то смотреть тут
 

Вложения

Elik

New member
Подключаю СД напрямую к SPI, пины 12 по 15, скорость ну очень низкая, картинку весом 1мег грузит за 46 секунд. Подскажите как с этим бороться? Нужна приемлемая скорость загрузки с СД карточки...
 
Сверху Снизу