ESP32 Hardver SPI

Van egy Wemos D1 R32 ESP32 lapom. Ezen a hardwer SPI csatlakozói ki vannak vezetve az alaplapra, ezeket szeretném használni.

Az általam eddig talált kapcsolási rajzok alapján, ezek a kivezetések közvetlenül az ESP32 hardver SPI portjaira vannak kötve (SD2 - IO9, SD3 - IO10, CMD - IO11, CLK - IO6, SD0 - IO7, SD1 - IO8).

Azonban akárhogyan is akarom használni ezen keresztül az SPI eszközöket (pl.: display), nem megy. Szoftveres SPI-vel gond nélkül működik, de a hardver SPI számomra használhatatlan. Hardver SPI esetén resetel, hibaüzeneteket dob, nem megy.

Bár több helyen írták, hogy a szoftver SPI jobb (gyorsabb) mint a hardver, mivel porthiányban szenvedek, jó lenne, ha tudnám használni ezeket a portokat is.

Használta már bárki, bárhogyan is az ESP32 hardver SPI portjait? Lehetséges ez egyáltalán? És ha nem, akkor miért van kivezetve az ESP32-n?

Hozzászólások

Nem néztem rá az általad citált modulra.

WROOM-oknál a fém sapka alatt lakik egy SPI-os NOR flash, arra 'lövi el' az ESP32 az SPI-t.

Ha jól látom, a fém sapka az ESP32 lapkán van, ami a wroom-ba bele van forrasztva. Wemos esetén is ugyanez az ESP lapka van betéve. De ha az ESP32-ben lévő 4MB flash kezeléséhez kell ez az SPI, akkor miért vannak kivezetve ennek a lapkának a szélére az SPI pinek, ha úgysem használhatóak?

Hm, ezek a signal elnevezesek vagy SD-kartyanak, vagy QSPI-nek tunnek. Amit keresel az az NSS, SCK, MOSI, MISO. Azt nezd meg hogy ezek melyik i/o labra vannak lekepezve. 

STP kolleganak: igen,,az lehet, de ugyanarra az SCK/MOSI/MISO-ra tehetsz mas SPI slave-t is. Csak egy plusz output lab kell ami a masik NSS-t kihajtja. 

Nem, az nagyon jo kerdes hogy jonnan jott az az info de a szoftveres SPI az megleehetosen lassu a hw-eshez kepest. A hw SPI az egyik legbitanggyorsabb periferia. :)

Szerkesztve: 2021. 05. 17., h – 11:55

Én nem foglalkoztam vele, de az Andreas' blogon van egy cikk (https://blog.bachi.net/?p=10562), ami erről szól, s a cikk végén van egy link erre az Arduino környezetet használó  mintapéldásra: https://github.com/espressif/arduino-esp32/blob/master/libraries/SPI/examples/SPI_Multiple_Buses/SPI_Multiple_Buses.ino

Röviden: az ESP32 négy SPI csatornával rendelkezik, ebből SPI2 és SPI3 szabad a felhasználó számára. Szokás ezeket HSPI, ill. VSPI csatornának is hívni.