ESP8266 a WS28xx

konference na vojtek.biz konference na vojtek.biz
Středa Únor 2 16:25:48 CET 2022


Zdravim 
Wifi je mrcha na obsluhu a to ESP ma jen jedno jadro.  Proto Vam to chodi
při uziti DMA - to jede separe a vytizeni procesoru ho netrapi.
Jakmile to generujete v nejakych smyckach je to spatne - taky dost zalezi co
v te obsluze wifi provádíte. Tipuju ze to proste nestiha obslouzit. At uz
preruseni, nebo nejake cykly.
J.V.

-----Original Message-----
From: Hw-list <hw-list-bounces na list.hw.cz> On Behalf Of Petr Zapadlo
Sent: středa 2. února 2022 15:37
To: hw-list na list.hw.cz
Subject: ESP8266 a WS28xx

Zdravím,

bojuju tady už několik dní s ovládáním PWM led driverů  WS2818b připojených
k ESP8266 - pin D2, GPIO4. Mám za sebou pouhé 3ks ws2818, na jednom PCB,
kousíček od sebe. Slouží jako generátor PWM pro výkonové ledky.

Schema je zde:

https://cloud.zapadlo.name/index.php/s/Ray8n93kTNKk5nK

Nejsem schopen dosáhnout uspokojivé funkce.

S knihovnou Adafruit_NeoPixel jsem se ničeho funkčního nedobral, když
zobrazuji střídavě jednotlivé barvy, tak občas se zobrazení změní, ale je to
chaotické a neodpovídá to posílaným datům. (Zkoušel jsem jak 400kHz, tak
800kHz). Na LA vidím jitter v časování impulsů - jsou takové roztřesené. Za
prvním ws2818 už data neprolezou = nerozumí jim. Na LA není vidět žádná
změna při nastavené 400KHz. Ovšem počty impulzů sedí a nejsou rozpadlé do
shluků. Zkoušeno jen bez Wifi neboť to stejně nikam nevede. Vlastní délky
impulsů jsou lehce mimo toleranci uvedenou v DS.

Dále jsem vyzkoušel knihovnu Fast_LED, zde jsem dosáhl docela úspěchu - ale
jen v situaci, kdy není inicializovaná Wifi.  Pokud není wifi - impulzy sedí
přesně s časováním a funguje to. Nicméně v okamžiku kdy zinicializuji Wifi,
tak vše končí - v řadě impulzů se objevují velké díry, které jsou ws2818
detekovány jako reset. (noInterrupt() situaci neřeší). Zajímavé je, že jsem
musel připojit na vstup ws za level shifter kondenzátor proti zemi 22p,
jinak to nechodilo. (zkoušeno i u knihovny Ada... beze změny)

Dále jsem našel knihovnu Makuna/NeoPixelBus, zde autor využívá nějaký HW,
protože jsou k dispozici různé metody - DMA, UART a bitbang. Na první dvě
jsou pouze jeden konkrétní pin, bitbang by měl chodit na každém. Mě teda
nechodil - opět na LA "roztřesené" impulzy. Při provizorním připojení na RX
pin a použití metody DMA - jsou impulzy perfektní se stabilním časováním bez
ohledu na wifi. Nicméně ta knihovna je nějaká pro mě těžkopádná a evidetně
určená k výrazně komplikovanější situaci  - nejsem schopen zjistit jak
nastavit prostou hodnotu na jednotlivých kanálech. Neznáte někdo tuhle
knihovnu?


Docela jsem z toho frustrován - knihovna Adafruit_NeoPixel má v repozitáři
statisíce stáhnutí a internet je plný návodů na  její použití a ESP8266.
Evidentně mi něco uniká a já nevím co.

Díky

Petr


_______________________________________________
HW-list mailing list  -  sponsored by www.HW.cz Hw-list na list.hw.cz
http://list.hw.cz/mailman/listinfo/hw-list



Další informace o konferenci Hw-list