ESP8266 a WS28xx

Petr Zapadlo zapik na email.cz
Středa Únor 2 18:05:50 CET 2022


Level shift to nedělá - zkoušel jsem ho přemostit.

Jinak WS2818b má High level 0,7Vdd, (Vdd=5V), tj 3.5V. Už jsem se setkal 
s tím, že nerespektování tohle vedlo k nefunkčnosti, proto ten level shift.

Petr


Dne 02. 02. 22 v 16:26 Jindrich Fucik napsal(a):
> Ahoj,
>
> to se docela divím, FastLED se celkem používá.
> Dokonce i s podobným level shiftem:
> https://create.arduino.cc/projecthub/electropeak/play-with-fire-over-wi-fi-esp8266-neopixels-android-app-26c4ad
>
> Po pravdě, já bych tam ten level shift nedával, nemá tam moc přidanou hodnotu. Použil bych pasivnější verzi, asi takto:
> https://www.instructables.com/ESP8266-controlling-Neopixel-LEDs-using-Arduino-ID/
>
>
> ---------- Původní e-mail ----------
> Od: Petr Zapadlo <zapik na email.cz>
> Komu: hw-list na list.hw.cz
> Datum: 2. 2. 2022 15:37:28
> Předmět: 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
>
> _______________________________________________
> 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