Ako posunut adresy ws2812 adresovatelnych led?

Všetko čo súvisí so svetlom

Moderátori: mirosne, Moderátori

jordiksvk
Stály člen
Stály člen
Príspevky: 141
Dátum registrácie: 15 Feb 2010, 00:00
Bydlisko: Kosice
Vek: 47
Kontaktovať používateľa:

Re: Ako posunut adresy ws2812 adresovatelnych led?

Príspevok od používateľa jordiksvk » 05 Jan 2023, 18:47

peterple
netreba nikde nic ukladat
staci iba pocitat a hned posielat dalej...
(alebo stopit kym nenaratam do poctu ktory nastavime)....
aspom tak by som to riesil....



balu:
mam tocite schody
najskor je to cca 19led - to su prve 4schody
potom viac cca 20-21 - 2schody
potom menej cca 18led - 2schod
potom viac 20-21led - 2schody
zase menej tak uz iba cca 18led - 6schodov
dokopy 16schodov
ale to uz by sa v tom programe dala slucka kolko....
lediek dokopy bude cez 300
co je dlasi problem asi ked ten procesor je 8bit....? neni problem ak je 16bitovy
0

Používateľov profilový obrázok
balu
Pokročilý člen
Pokročilý člen
Príspevky: 540
Dátum registrácie: 21 Feb 2022, 12:06

Re: Ako posunut adresy ws2812 adresovatelnych led?

Príspevok od používateľa balu » 05 Jan 2023, 19:13

A v tom je právě ten problém. Nejkratší puls je 3 instrukce dlouhý a nesmíš to prošvihnout. Počítání pulzů a přepínání stavu kopírovat/zahazovat je v pohodě a víceméně bez účasti jádra procesoru, ale kopie stavu jednoho pinu na druhý je 4 instrukce + skok na první, takže 5 instrukcí dlouhý. Tohle nepůjde.

Koukám na ty nový AVRka, jestli by to nešlo přes ten jejich EVENT systém. Tam by šance byla.

Jenže - máš programátor na ten debilní UPDI interface ?
0

jordiksvk
Stály člen
Stály člen
Príspevky: 141
Dátum registrácie: 15 Feb 2010, 00:00
Bydlisko: Kosice
Vek: 47
Kontaktovať používateľa:

Re: Ako posunut adresy ws2812 adresovatelnych led?

Príspevok od používateľa jordiksvk » 05 Jan 2023, 19:21

a to uz nove nejdu cez mosi miso sck (CEZ SPI) ?
dajako to uz nahram do chipu, len aby bolo co nahravat :)

skus dajaky nastrel v asm spravit ako to myslis?
0
Naposledy upravil/-a jordiksvk v 05 Jan 2023, 19:41, upravené celkom 1 krát.

Používateľov profilový obrázok
balu
Pokročilý člen
Pokročilý člen
Príspevky: 540
Dátum registrácie: 21 Feb 2022, 12:06

Re: Ako posunut adresy ws2812 adresovatelnych led?

Príspevok od používateľa balu » 05 Jan 2023, 19:40

jordiksvk napísal:
05 Jan 2023, 18:47
balu:
mam tocite schody
najskor je to cca 19led - to su prve 4schody
potom viac cca 20-21 - 2schody
potom menej cca 18led - 2schod
potom viac 20-21led - 2schody
zase menej tak uz iba cca 18led - 6schodov
dokopy 16schodov
ale to uz by sa v tom programe dala slucka kolko....
lediek dokopy bude cez 300
co je dlasi problem asi ked ten procesor je 8bit....? neni problem ak je 16bitovy
Sorry - já to nedočetl do konce.

300 LEDek problém není, ale musel bys před odesláním dat spočítat VŠECHNY schody a pak odeslat těch 900 a víc bytů. ATmega328 (Arduino) má 2kB RAM, v tom problém nevidím. Jenže obzvlášť v tomhle případě bych to udělal tak, jak jsem Ti psal s tím naprogramováním efektů a z hlavního procesoru (a podle toho, cos psal bych tipoval, že chceš použít Arduino) posílat jen instrukce "schod, efekt, cílový jas".

Těch 900 bytů musíš mít v paměti, protože během odesílání toho moc neuděláš. Log. 0 Low pulse je 400ns, tam mezi shozením pinu do log. 0 a jeho nahozením zpět moc času nemáš. Mezi bity asi čas máš, ale zase potřebuješ, odeslat data tak rychle, aby změny nebyly trhané. Jenom odeslání dat pro 300 LEDek trvá cca 72ms, tj. cca 13,5 Hz "refresh" celého pásu + výpočty. A s tím nic neudělá ani rychlejší procesor ani víc paměti. To je maximální rychlost změny "obrazu" (i zhasnutí jedné LEDky).
0

jordiksvk
Stály člen
Stály člen
Príspevky: 141
Dátum registrácie: 15 Feb 2010, 00:00
Bydlisko: Kosice
Vek: 47
Kontaktovať používateľa:

Re: Ako posunut adresy ws2812 adresovatelnych led?

Príspevok od používateľa jordiksvk » 05 Jan 2023, 19:46

chcem pouzivat esp32
alebo arduino, to je uz jedno co tam bude...
wled pre esp32 je super,

chapem ze len posielat je jednoduchsie nez chytat a vyhodnotit a nasledne poslat
je to vyzva

teoriu podla mna mame uz do detailov zmaknutu :)
sicko zname, co vcul?
0

Používateľov profilový obrázok
balu
Pokročilý člen
Pokročilý člen
Príspevky: 540
Dátum registrácie: 21 Feb 2022, 12:06

Re: Ako posunut adresy ws2812 adresovatelnych led?

Príspevok od používateľa balu » 05 Jan 2023, 20:03

jordiksvk napísal:
05 Jan 2023, 19:21
a to uz nove nejdu cez mosi miso sck ?
dajako to uz nahram do chipu, len aby bolo co nahravat :)

skus dajaky nastrel v asm spravit ako to myslis?
SPI (ISP) interface : MISO, MOSI, SCK, RESET - to jsou staré dobré AVR
TPI interface : DATA, SCK, RESET - to jsou staré dobré AVR ATtiny10 apod.
UPDI : pouze RESET pin - Tohle vymyslel Mikrochcíp.

Naštěstí se to dalo vyřešit tímhle : ATTINY416-XNANO

Má to na sobě ATtiny416 i programovací interface, odstraněním 3 odporů se z toho dá udělat programátor pro procesory s UPDI rozhraním (přes ATMEL Studio)

Jo - myslím, že jsi psal, že se Ti nedaří stáhnout ATMEL Studio - tady máš odkaz. Sroluj dolů na Download a máš tam všechny verze. Používám poslední verzi ATMEL Studia 7 (NE Microchip studio)

Předávání hodnoty z pinu A0 na pin B5 :

Kód: Vybrať všetko

1	Loop:
2		SBIS PINA, 0	// 1 cyklus při splnění podmínky, 2 cykly při nesplnění
3		CBI PORTB, 5	// 1 cyklus
4		SBIC PINA, 0	// 1 cyklus při splnění podmínky, 2 cykly při nesplnění
5		SBI PORTB, 5	// 1 cyklus
6	RJMP Loop		// 2 cykly
S tímhle 3 cykly dlouhý LOW pulz prošvihneš, jak nic. Když přijde během vykonávání instrukce na řádku 2. Než se sem program dostane zpět, uplyne 6 cyklů :
(2) nesplněná - 2 cykly (přeskočení 3) - pin v log. 1, dochází je změně na log. 0
(4) nesplněná - 2 cykly (přeskočení 5) - došlo mezitím ke změně pinu na log. 0
(6) 2 cykly - během této doby se již mění pin zpět na log. 1

A to v tom není nic jiného - pouze kopírování z pinu na pin. Tohle je slepá ulička.
0

peterple
Ultimate člen
Ultimate člen
Príspevky: 2328
Dátum registrácie: 25 Jún 2013, 21:06
Bydlisko: Krajné
Vek: 57
Kontaktovať používateľa:

Re: Ako posunut adresy ws2812 adresovatelnych led?

Príspevok od používateľa peterple » 05 Jan 2023, 20:13

Tak to som teda zvedavý či nepotrebuješ ukladať. Na základe čoho a ako to prepošleš ďalej. Mám pocit že si vôbec neuvedomuješ čo to MCU dokáže, a ani to ako náročné bude chytiť len jeden bit.

balu:
To že to chceš posunúť na hw je pekné. Nad tým som tiež premýšlal, lenže ty potrebuješ merať periódu každého jedného pulzu aby si sa dozvedel či to bola jednotka alebo nula. Nie celkom rozumiem vyjadreniu že problém je nula lebo má krátky pulz v nule 0,4μs. Lenže jednotka má zase opačne krátky pulz v jednotke - tiež 0,4μs. Podľa mna rozoznávanie jednotky a nuly je rovnako náročné. No a potom teda čo urobíš keď príde prerušenie po 0,4μs. Štyri cykly je minimum na rozbeh a ďalšie 4cykly je inštrukcia IRET to už máme 8. Pri 10Mhz máš 12 inštrukcií na jeden bit. čo urobíš za 4 takty? Podľ mňa ti hw počítanie moc nepomôže. Tak namakané periférie to nemá aby to prijalo celý jeden byte.

Rozhodne som vysoko zvedavý na výsledný kód. Podľa mňa to je na 20Mhz jadre nereálne. Ale dnes sa takým veciam noozaj hovorí výzva. Tak sa potom nezabudnite pochváliť ako to šlape.

Ja som to IrDA na AVR zvládol nakoniec len vďaka tomu že som použil nejaký prevodník od HP ktorý to vedel previesť na UART a ten mi potom čítal hw a tak som mal 10x viacej času než sa pižlať s každým bitom.
Ale držím vám obom palce.

Aha tak už sa to začína ukazovať
0
Ukáž múdremu chybu a on sa ti poďakuje. Ukáž chybu hlupákovi a on sa urazí.

Používateľov profilový obrázok
balu
Pokročilý člen
Pokročilý člen
Príspevky: 540
Dátum registrácie: 21 Feb 2022, 12:06

Re: Ako posunut adresy ws2812 adresovatelnych led?

Príspevok od používateľa balu » 05 Jan 2023, 20:35

Stačí počítat sestupné hrany a na enable/disable je pak času dost. Otázkou je, jestli to půjde přes EVENT systém nových AVR (přecijen s ním ještě kamarád nejsem) nebo prostě nahodit/shodit ENABLE pin a přes nějaký FET tranzistor povolit/zablokovat přenos do pásku. Na to stačí prakticky cokoliv. Když tak nad tím přemýšlím, šel bych buď cestou příkazů a LEDky, ať si ovládají podřízené mikrokontrolery nebo prostě pomocí nějaké externí kombinační logiky blokovat/propuštět data do pásku. Vzhledem k tomu, že čas potřebný na odeslání dat pro 300+ LEDek nezkrátíš ničím, šel bych spíš tou první cestou.
0

jordiksvk
Stály člen
Stály člen
Príspevky: 141
Dátum registrácie: 15 Feb 2010, 00:00
Bydlisko: Kosice
Vek: 47
Kontaktovať používateľa:

Re: Ako posunut adresy ws2812 adresovatelnych led?

Príspevok od používateľa jordiksvk » 05 Jan 2023, 20:46

kod OK ako echo
a kedy vieme kolko bitov sme poslali?

attiny85 ma internych 20Mhz
0,05us na instrukciu

log1> 0,8us Hi 0,45us Lo
log0> 0,4us Lo 0,85us Hi

este start musi byt
log0> viac ako 50us

peterple, balu
mozna ze to fakt bude chciet aspon tych 50Mhz mininalne, aby to bolo stabilne....
0

peterple
Ultimate člen
Ultimate člen
Príspevky: 2328
Dátum registrácie: 25 Jún 2013, 21:06
Bydlisko: Krajné
Vek: 57
Kontaktovať používateľa:

Re: Ako posunut adresy ws2812 adresovatelnych led?

Príspevok od používateľa peterple » 05 Jan 2023, 20:49

balu:
To by samozrejme šlo, dokonca tam možno aj vygeneruješ ten úvodný 50μs pulz ktorý rozbehne prenos na tú odbočkovú vetvu. Nuž ako som písal, rád sa pozriem na finálne fungujúce riešenie. Ale ani takto to nebude úplne ľahká vec.
0
Ukáž múdremu chybu a on sa ti poďakuje. Ukáž chybu hlupákovi a on sa urazí.

Používateľov profilový obrázok
balu
Pokročilý člen
Pokročilý člen
Príspevky: 540
Dátum registrácie: 21 Feb 2022, 12:06

Re: Ako posunut adresy ws2812 adresovatelnych led?

Príspevok od používateľa balu » 05 Jan 2023, 21:23

jordiksvk napísal:
05 Jan 2023, 20:46
kod OK ako echo
a kedy vieme kolko bitov sme poslali?
Ani to echo nestíháš (8 MHz).
jordiksvk napísal:
05 Jan 2023, 20:46
attiny85 ma internych 20Mhz
0,05us na instrukciu
Jak jsi na to přišel ?
0

maskrtnik01
Ultimate člen
Ultimate člen
Príspevky: 2574
Dátum registrácie: 20 Júl 2010, 00:00
Bydlisko: okolie KE
Vek: 27

Re: Ako posunut adresy ws2812 adresovatelnych led?

Príspevok od používateľa maskrtnik01 » 05 Jan 2023, 21:28

Možno to bude jednoduchšie cez ESP32. Môže sa aj použiť WLED, a potom by som to asi riadil z raspberry pi. Alebo vlastný firmware, najjednoduchšie cez arduino(má aj esp core).
0

Používateľov profilový obrázok
balu
Pokročilý člen
Pokročilý člen
Príspevky: 540
Dátum registrácie: 21 Feb 2022, 12:06

Re: Ako posunut adresy ws2812 adresovatelnych led?

Príspevok od používateľa balu » 05 Jan 2023, 21:32

Jenže ESP32 modul pravděpodobně nenarve do LED lišty. Je na to poněkud velký.
0

Používateľov profilový obrázok
mac26
Zaslúžilý člen
Zaslúžilý člen
Príspevky: 1298
Dátum registrácie: 01 Feb 2010, 00:00
Bydlisko: Martin

Re: Ako posunut adresy ws2812 adresovatelnych led?

Príspevok od používateľa mac26 » 05 Jan 2023, 21:39

mozno blba otazka, ale musi to byt AVR?
Keby sa tam strelilo trebars nieco taketo:
https://www.tme.eu/sk/details/stm32g031 ... ectronics/
nebude problem pohrat sa s casovacmi a DMA to postihat musi.

Tak som na STM uz generoval pulzy pre tieto ledky: proste si natlacit do nejakeho array co chcem zasvietit, kopnut do DMA a to si do casovaca tlaci vzdy po dobehnuti novy cas na dalsi bit.

verim tomu ze by sa podobne dal riesit aj prijem. Po prijati si to moze v klude pozut, popremyslat a poslat von ked bude moct. RAMky na dostatocne velky buffer to hadam bude mat dost


Pripadne ak sa tu najde nejaky masochista co sa rad hra s ARM asm, pri 64MHz by sa to mohlo dat aj upocitat "live" rucne na zo vstupu rovno na vystup

edit: pulzy som generoval v rezime PWM, takze som v podstate menil duty cycle pre kazdy bit na jednu z 2 hodnot, nasledne par pulzov s 0 duty duty cycle ako reset (zapis)
0
Naposledy upravil/-a mac26 v 05 Jan 2023, 21:59, upravené celkom 1 krát.

jordiksvk
Stály člen
Stály člen
Príspevky: 141
Dátum registrácie: 15 Feb 2010, 00:00
Bydlisko: Kosice
Vek: 47
Kontaktovať používateľa:

Re: Ako posunut adresy ws2812 adresovatelnych led?

Príspevok od používateľa jordiksvk » 05 Jan 2023, 21:49

20mhz attiny85
tu: http://www.technoblogy.com/show?1ZIY

mac26:
fuh ale kto to napise do toho cuda?
0

Používateľov profilový obrázok
balu
Pokročilý člen
Pokročilý člen
Príspevky: 540
Dátum registrácie: 21 Feb 2022, 12:06

Re: Ako posunut adresy ws2812 adresovatelnych led?

Príspevok od používateľa balu » 05 Jan 2023, 22:04

"Přetaktování" - tak to pak jo ...
Já to bral podle datasheetu - ostatne on to tam taky zmiňuje.
0

Atlan
Zaslúžilý člen
Zaslúžilý člen
Príspevky: 1148
Dátum registrácie: 01 Feb 2008, 00:00
Bydlisko: Kosice okolie

Re: Ako posunut adresy ws2812 adresovatelnych led?

Príspevok od používateľa Atlan » 05 Jan 2023, 22:28

A preco je nutne to ovlatat cez tu zbernicu? Nestaci program ako sa ma rozsvedcovay ledlovy pas do pocneho procesora, a tym padom hlavny procesor uz len posle jeden prikaz pre kazdy pomocnyc uP a ten uz urobicso ma v programe
0

Používateľov profilový obrázok
balu
Pokročilý člen
Pokročilý člen
Príspevky: 540
Dátum registrácie: 21 Feb 2022, 12:06

Re: Ako posunut adresy ws2812 adresovatelnych led?

Príspevok od používateľa balu » 05 Jan 2023, 22:35

To už jsem navrhoval - naprogramovat 16 malých procesorů každý na svůj pásek (ony ty pásky nejsou stejně dlouhé) a posílat jim jenom něco ve smyslu "Schod 7, Efekt 3, Konečný jas 127". I s kontrolním součtem 5 bytů. A možná i ten kontrolní součet je zbytečný, když nemáš jak dát vědět, že data dorazila poškozená - tedy stačí 3 byty.

Jenže to je prý moc složité.
0

peterple
Ultimate člen
Ultimate člen
Príspevky: 2328
Dátum registrácie: 25 Jún 2013, 21:06
Bydlisko: Krajné
Vek: 57
Kontaktovať používateľa:

Re: Ako posunut adresy ws2812 adresovatelnych led?

Príspevok od používateľa peterple » 05 Jan 2023, 22:59

Presne. To je tak keď zákazník má malé technické povedomie a drží sa zubami nechtami svojej idei. A to potom príde nakoniec studená sprcha, lebo ťahať mikrosekundové pulzy na spústy metrov na nízkom napätí bude náchylné na rušenie ako blázon. To čo si navrhol je technicky najlepšie riešenie. Ešte keby tam mal natiahnutú dvojlinku aby to bežalo na RS485 alebo na CAN, tak by to bolo super. Lenže to by si musel napísať vlastnú apku na riadenie a to je problém.

Nejak mi to pripomína tento štát. Bombastické plány, žiadne plánovanie a potom realizácia štýlom nikdy nie je čas to urobiť poriadne ale vždy je čas to urobiť znova.

pardón za OT
0
Ukáž múdremu chybu a on sa ti poďakuje. Ukáž chybu hlupákovi a on sa urazí.

Používateľov profilový obrázok
balu
Pokročilý člen
Pokročilý člen
Príspevky: 540
Dátum registrácie: 21 Feb 2022, 12:06

Re: Ako posunut adresy ws2812 adresovatelnych led?

Príspevok od používateľa balu » 05 Jan 2023, 23:07

Tak ono na napájení + komunikaci stačí i 2 dráty. Stejně, jako se přenášejí data do lokomotiv, vagonků a příslušenství u digitálních systémů modelových železnic.

A teď mi ještě dochází ... 300+ LEDek na 5V ? To bude proudově hodně náročný na napájení.
Zhasnutá LED má cca 1mA trvalý odběr - tedy celé to bude mít 300mA ve zhasnutém stavu.
Rozsvícená LED má průměrně 52,5mA - 300 rozsvícených LED bude mít cca 15750 mA => 15,75 A !!!
0

Napísať odpoveď
  • Podobné témy
    Odpovedí
    Zobrazení
    Posledný príspevok