stats

ESP-01 & SD

Op Internet forums is de algemene conclusie dat een ESP-01 niet met een SD kaartje kan communiseren omdat er te weinig io beschikbaar zou zijn. Zelf had ik al wat ervaring met het gebruik van de uart RX/TX als io en ook hoe deze zelfs on-the-fly van functie te wisselen. Een SD kaartje heeft maar VIER (SPI) signalen nodig, dus waarom zou het niet kunnen?

De ESP-01 heeft 2 io pinnen plus RX/TX. Dat zijn er samen ook VIER. De RX en TX functie is vergelijkbaar met de MOSI/MISO functie. Blijven gpio2 en gpio0 over voor CLK en CS.

Omdat gpio2 na reset H wordt en gpio0 bij prog (flash) juist L, zijn deze voor SPI geschikt als CS (gpio2) en CLK (gpio0). Enkel de uitgang van de USB communicatie chip (CH430) zit nu nog in de weg. (is 5v...!)

Een R tussen USB TX en ESP RX lost dit op. Bij zowel USB verkeer als een actieve SD beschermt die R zowel de SD als het CH340 (USB) IC.

Maar het kan handig zijn om toch de print functie beschikbaar te houden voor debug. Dat kan door deze te wrappen in een functie: disable SD, set io als TX, print de teks en zet io weer als Output. Op deze wijze wordt TX dubbel gebruikt. Omdat tijdens reset/flash gpio2 H wordt, en daardoor de SD in tristate komt, kunnen op dat moment zowel USB RX als USB TX alsnog 'normaal' functioneren.

HOME