STM32, SPI daisy chain

Jaroslav Buchta jaroslav.buchta na hascomp.cz
Pátek Květen 12 09:25:33 CEST 2023


Jestli to dobre chapu, tak mam neco podobneho s UART na BMS, kazdy 
clanek ma soji monitorovaci jednotku a par bajtu v obihajicim retezci, 
prvni byte se pak v kazde jednotce inkrementuje takze podle propojeni 
kazda vi, kde ma data bez dalsi konfigurace. Probiha to se zposzdenim 
cca 1 byte na kazdou jednotku, prubezne se aktualizuje i CRC.
S SPI by to melo jit taky, ale nevim, jestli bych radsi pouzil 2 
rozhrani nebo spolecne hodiny pro vsechno...

Dne 12.05.2023 v 9:03 Vojtěch Petrucha napsal(a):
>
> mozna jako Figure 1 zde
>
> https://www.ti.com/lit/an/slaa296/slaa296.pdf?ts=1683836913829
>
> akorat mi neni jasne, jestli by to bylo 8 byte "prikaz" pro kazdy 
> slave ruznych nebo stejnych pro vsechny..,
>
> kazdopadne jak to udelat v ramci slave univerzalne, aby pruzne 
> reagoval na sve umisteni v chainu a tedy ruzny pruchozi pocet byte 
> netusim...
>
> v.
>
> ______________________________________________________________
> > Od: "Petr Labaj" <labaj na volny.cz>
> > Komu: hw-list na list.hw.cz
> > Datum: 11.05.2023 21:23
> > Předmět: Re: STM32, SPI daisy chain
> >
>
> Jak je to myšleno?
> SPI má z pohledu mastera 2 výstupní signály (SCK, MOSI) a 1 vstupní 
> (MISO).
> Se kterým slave se mluví určuje CS.
> Takže všechny slave mají 3 signály společné, a pak jeden pro každý slave
> zvlášť.
> Kde v tom je nebo by měl být nějaký chain? A v čem by byla výhoda?
>
> Naprogramovat DMA na přenos 8 byte je snadné.
> Udělat přerušení od konce přenosu je taky snadné.
> V tom přerušení posunout ukazatel na buffer další periferie a
> naadresovat CS té další periferie je pár instrukcí.
> A z hlediska nějakého nadřízeného programu se to bude chovat, jako by ty
> periferie cpaly svá data do těch bufferu samy.
> Ale to je obyčejné přízemní řešení, bez nějakého chainu.
>
> PL
>
> ********************
>
> Dne 11.5.2023 v 20:03 Petr Stehlik napsal(a):
> > Chtěl bych několik STM32... zapojit do daisy chain. Jeden master a
> > několik slave, vyčítal bych z každého slave 8 bajtu a 8 bajtu
> > zapisoval, nejlépe pomocí DMA. Že bych to prostě spustil a až by DMA
> > doběhlo tak bych vyzvedl data a naplnil bafr novými daty pro slave a
> > tak pořád dokola.
> >
> > Je to realizovatelné? Provozujete někdo něco podobného na STM32? Nikde
> > na netu jsem nenašel konkrétní aplikaci nebo náznak řešení, většinou
> > jen zmínka že něco takového na SPI existuje a  dál nic. Tak bych chtěl
> > mít jistotu že jsem si nevymyslel něco co nepújde zprovoznit.
> >
> > Chtěl bych si udělat měřící sestavu kde by se vedle sebe skládaly
> > slave, které by měřily U,I,t... a předávali to mastru, slave by se
> > skládaly vedle sebe podle potřeného počtu. Původně jsem uvažoval o
> > RS485 a modbusu, ale tam bych musel nastavovat adresy, u toho daisy
> > chain bych to mohl skládat podle potřeby.
> >
> > Díky za každé info.
> >
> > 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 bywww.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list

------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20230512/ae26645e/attachment.htm>


Další informace o konferenci Hw-list