<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
Na SPI se chain běžně používá u některých "chytrých" LEDek. Je jich
pak třeba několik set za sebou. Obvykle mají i clock recovery, takže
CLK a data jsou průchozí a pak je tam jeden signál strobe, nebo
reset. A každej použije data, co jsou v něm srovna nascrollovaný v
tom strobe okamžiku.<br>
<br>
PH<br>
<br>
<div class="moz-cite-prefix">Dne 12.05.2023 v 9:25 Jaroslav Buchta
napsal(a):<br>
</div>
<blockquote type="cite"
cite="mid:05f4f7c6-050f-b659-9d62-8c279254f27c@hascomp.cz">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<div class="moz-cite-prefix">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.<br>
</div>
<div class="moz-cite-prefix">S SPI by to melo jit taky, ale nevim,
jestli bych radsi pouzil 2 rozhrani nebo spolecne hodiny pro
vsechno...</div>
<div class="moz-cite-prefix"><br>
</div>
<div class="moz-cite-prefix">Dne 12.05.2023 v 9:03 Vojtěch
Petrucha napsal(a):<br>
</div>
<blockquote type="cite"
cite="mid:20230512090315.3D570A1A@volny.cz">
<meta http-equiv="content-type" content="text/html;
charset=UTF-8">
<p style="padding:0 0 0 0; margin:0 0 0 0;">mozna jako Figure 1
zde</p>
<p style="padding:0 0 0 0; margin:0 0 0 0;"><a
class="moz-txt-link-freetext"
href="https://www.ti.com/lit/an/slaa296/slaa296.pdf?ts=1683836913829"
moz-do-not-send="true">https://www.ti.com/lit/an/slaa296/slaa296.pdf?ts=1683836913829</a></p>
<p style="padding:0 0 0 0; margin:0 0 0 0;"> </p>
<p style="padding:0 0 0 0; margin:0 0 0 0;">akorat mi neni
jasne, jestli by to bylo 8 byte "prikaz" pro kazdy slave
ruznych nebo stejnych pro vsechny.., </p>
<p style="padding:0 0 0 0; margin:0 0 0 0;">kazdopadne jak to
udelat v ramci slave univerzalne, aby pruzne reagoval na sve
umisteni v chainu a tedy ruzny pruchozi pocet byte netusim...</p>
<p style="padding:0 0 0 0; margin:0 0 0 0;"> </p>
<p style="padding:0 0 0 0; margin:0 0 0 0;">v.</p>
<p style="padding:0 0 0 0; margin:0 0 0 0;"> </p>
<p style="padding:0 0 0 0; margin:0 0 0 0;"> </p>
<p style="padding:0 0 0 0; margin:0 0 0 0;"> </p>
<p style="padding:0 0 0 0; margin:0 0 0 0;"> </p>
<p style="padding:0 0 0 0; margin:0 0 0 0;">______________________________________________________________<br>
> Od: "Petr Labaj" <a class="moz-txt-link-rfc2396E"
href="mailto:labaj@volny.cz" moz-do-not-send="true"><labaj@volny.cz></a><br>
> Komu: <a class="moz-txt-link-abbreviated
moz-txt-link-freetext" href="mailto:hw-list@list.hw.cz"
moz-do-not-send="true">hw-list@list.hw.cz</a><br>
> Datum: 11.05.2023 21:23<br>
> Předmět: Re: STM32, SPI daisy chain<br>
></p>
Jak je to myšleno?<br>
SPI má z pohledu mastera 2 výstupní signály (SCK, MOSI) a 1
vstupní (MISO).<br>
Se kterým slave se mluví určuje CS.<br>
Takže všechny slave mají 3 signály společné, a pak jeden pro
každý slave <br>
zvlášť.<br>
Kde v tom je nebo by měl být nějaký chain? A v čem by byla
výhoda?<br>
<br>
Naprogramovat DMA na přenos 8 byte je snadné.<br>
Udělat přerušení od konce přenosu je taky snadné.<br>
V tom přerušení posunout ukazatel na buffer další periferie a <br>
naadresovat CS té další periferie je pár instrukcí.<br>
A z hlediska nějakého nadřízeného programu se to bude chovat,
jako by ty <br>
periferie cpaly svá data do těch bufferu samy.<br>
Ale to je obyčejné přízemní řešení, bez nějakého chainu.<br>
<br>
PL<br>
<br>
********************<br>
<br>
Dne 11.5.2023 v 20:03 Petr Stehlik napsal(a):<br>
> Chtěl bych několik STM32... zapojit do daisy chain. Jeden
master a <br>
> několik slave, vyčítal bych z každého slave 8 bajtu a 8
bajtu <br>
> zapisoval, nejlépe pomocí DMA. Že bych to prostě spustil a
až by DMA <br>
> doběhlo tak bych vyzvedl data a naplnil bafr novými daty
pro slave a <br>
> tak pořád dokola.<br>
><br>
> Je to realizovatelné? Provozujete někdo něco podobného na
STM32? Nikde <br>
> na netu jsem nenašel konkrétní aplikaci nebo náznak řešení,
většinou <br>
> jen zmínka že něco takového na SPI existuje a dál nic. Tak
bych chtěl <br>
> mít jistotu že jsem si nevymyslel něco co nepújde
zprovoznit.<br>
><br>
> Chtěl bych si udělat měřící sestavu kde by se vedle sebe
skládaly <br>
> slave, které by měřily U,I,t... a předávali to mastru,
slave by se <br>
> skládaly vedle sebe podle potřeného počtu. Původně jsem
uvažoval o <br>
> RS485 a modbusu, ale tam bych musel nastavovat adresy, u
toho daisy <br>
> chain bych to mohl skládat podle potřeby.<br>
</blockquote>
</blockquote>
</body>
</html>