ESP32 Wemos mini - SPI probléma

ESP8266, ESP32 chipek és az ESP-xx modulok. Programozási nyelvek, trükkök, hardware tippek.
Avatar
aaszabo
Tranzisztorgyógyász
Hozzászólások: 179
Csatlakozott: 2012. január 22. vasárnap, 7:00

ESP32 Wemos mini - SPI probléma

Hozzászólás Szerző: aaszabo »

Kedves Pákatársak!

Van két panelem. Az egyik egy ESP32-es panel, a másik egy PT1000-t befogadni képes hőmérő (RTD) panel. A kettőnek SPI-n kellene kommunikálni, de ez nem megy.
A hőmérő panelt kipróbáltam Arduino NANO-val és akkor működött.
Van valakinek ESP32-vel SPI tapasztalata. Esetleg az ESP32 Wemos D1-gyel találkozott már valaki és használt rajta SPI-t?

Az ESP32-t is Arduino-ként programozom. Minden megy rajta (web szerver, soros port, lábak ki/be), csak az SPI-n nem tudom elérni a másik panelt.
Az SPI lábak jól vannak felkonfigurálva és összekötve - szerintem
Minden frekvencia állítási értéket próbáltam.
Még nem mértem rá szkóppal és nem próbáltam más SPI panelt, mert nincs kéznél egyelőre.
Van esetleg tapasztalata valakinek ESP32 Arduino-ként programozva, ami SPI-t használ?

Szóval:
Szert tettem egy ESP32-es panelre az aliexpressen: ESP32 Wemos mini32 v1.0.0.
https://www.aliexpress.com/item/Wemos-M ... 4c4d4VGSjj

Így néz ki a panel lábkiosztása:
http://mh.nodebb.com/assets/uploads/fil ... fe2ofo3e00
A leírás szerint a HW SPI lábkiosztás:
MISO - GPIO19
MOSI - GPIO23
SCK - GPIO18
SS - GPIO05

Ez alapján a lábkiosztás alapján próbáltam egy SPI felülettel rendelkező SEN-30202 RTD-to-Digital panelt megszólítani, amin MAX31865 RTD IC van.
https://www.playingwithfusion.com/produ ... hp?pdid=30

A példaprogramot innen szedtem le:
https://github.com/PlayingWithFusion/PWFusion_MAX31865
Ez egy Arduino könyvtár.


köszi előre is, ha van ötlet.
Ákos
Avatar
aaszabo
Tranzisztorgyógyász
Hozzászólások: 179
Csatlakozott: 2012. január 22. vasárnap, 7:00

Re: ESP32 Wemos mini - SPI probléma

Hozzászólás Szerző: aaszabo »

Egyelőre megkerültem a problémát, mert nem sikerült több hét alatt sem zöld ágra vergődni a panel és az SPI viszonyában. Szóval az SPI interfaceval rendelkező RTD panel helyet más hőmérő megoldást választottam.

Korábban próbálkoztam a DS18B20 IC-vel, ami nagyon ígéretes volt, csak kiderült, hogy az ismétlési hibája nagyon nagy. Két egymás utáni mérésben több tized fok eltérés volt és nem következetesen mindig ugyan annyi. Ez nem egyedi IC hiba, hanem sok (15db) IC tesztelésének a tapasztalata. Korábban Róberttal is konzultáltunk erről. Az volt a javaslata, hogy átlagoljak. Elvileg jó megoldás, de ez már eleve bonyolította volna a megoldást és a hibát is csak valamilyen jósággal korrigálta volna. Az volt az oka, hogy a PT1000 mellet döntöttem, hogy elég pontos és találtam hozzá egy mérőpanelt, amiről csak le kellene kérdezni digitálisan az értékeket. Elvileg a panel megoldotta önmagában az összes mérési elrendezési problémát és egy kényelmes digitális SPI felületet ad a lekérdezéshez. Csak az volt a baj, hogy nem tudtam rendesen működésre bírni az SPI interfacen keresztül.

Mindig is szerettem volna, ha egy DS18B20-hoz hasonló, de pontosabb megoldást találok, mert ez sokkal egyszerűbb, mint a többi megoldás. Egyszerűbb a HW része is és a SW része is.
Végül is találtam megoldást, ami megfelelőnek tűnik. Egyedül az ára az, ami nem túl barátságos. Szóval, ha tömeges mérésre van szükség, akkor nem ideális megoldás.

A talált IC a TSIC sorozat hőmérői. Több pontossági osztály és több kiolvasási (analóg és digitális) verziója is van. Én a TSIC506 IC-t választottam. Ez +-0.1 fokos mérési pontosságú és digitálisan olvasható ki. A kiolvasás egy saját soros protokollt használ, aminek a neve ZACWire protocol. Ehhez van példakód is, ami azonnal működik. Egyébként maga a protokoll rém egyszerű. Az a hátránya a DS18B20 1W protokollhoz képest, hogy nem fűzhetőek fel egy buszra az IC-k, de ez most nem probléma.
Két napja működik egy dugdosó panelen a teszt Arduino nano-val és négy IC-vel. A program 5 másodpercenként 4 IC-t kérdez le és nézi az egymáshoz képesti eltéréseket a mért értékekben.
A saját ismétlési pontosság nagyon jó. Az IC-k egymástól max 0.2 fokkal térnek el, de következetesen ennyi az eltérés. 20 mérésből legalább 18 esetben azonos az eltérés. Ha ez egyik változik egy tized fokkal, akkor a másik is és így megmarad köztük a távolság.

Ezeken a linkeken minden megtalálható:
TSIC606
ZACWire protocol
Na igen az ára nem olcsó, ami közel 4 szerese a DS18B20-nak.
Válasz küldése