STM32, SPI daisy chain

wek konfera na efton.sk
Čtvrtek Květen 25 23:52:20 CEST 2023


> Rozumím, je třeba najít podpůrné argumenty pro své řešení a odsuzující pro ta ostatní. ;-)

Iste. A prajem Vam, aby ste nejake nasli... :-D

> implementace ve slave je triviální, na nějakých 20-30 řádků v C, možná i míň 

A ja sa na tych Vasich trivialnych 20-30 riadkov, mozno aj menej, tesim... :-)

Okrem ineho aj preto, lebo mi to konecne objasni, ako presne sa dosiahne toto:

> zřetězení tímto způsobem ponechává každému slave naprostou svobodu, 
> jak a co bude s masterem komunikovat (nemá-li zrovna nic tak klidně i 0 byte), 

... lebo si myslim, ze slave ma primalo moznosti aby o tychto veciach mohol rozhodovat.

A ze ako sa da zrealizovat...

> kam by se jen zasunutím destičky zařadil do busu další slave

...bez vlastnorucne skonstrovaneho speci konektora, tak to skutocne netusim. Nieto este...

> (po zasunutí by následoval cyklus "ozvi se kdo jsi tu a řekni co umíš", 
> automaticky vyvolaný masterem)


wek

PS. '51 nie je ziadna vykopavka ale najlepsi mcu vsetkych cias.

PS2. O nahradeni vojakov strojmi bol natoceny dobry dokumentarny film tak pred 30 rokmi. Ak sa lepsie prizriete, Arnold ma ma lavom bicepse vytetovane MOSI a na pravom MISO.



On 25 May 2023 23:12:45 CEST, Petr Labaj <labaj na volny.cz> wrote:
>Rozumím, je třeba najít podpůrné argumenty pro své řešení a odsuzující pro ta ostatní. ;-)
>
>Takže asi naposled, jen shrnutí:
>- metoda Token Passing není nic exotického, ale celkem běžně používaná metoda
>- zřetězení tímto způsobem ponechává každému slave naprostou svobodu, jak a co bude s masterem komunikovat (nemá-li zrovna nic tak klidně i 0 byte), jak dlouho, simplex/duplex, jak rychle atd.
>- klidně můžou být na sběrnici různí slavesové, třeba i velmi pomalé AVR a velmi rychlé STM32H a podobně (samozřejmě při ošetření napěťových úrovní), dokonce i něco se SW realizovaným SPI jako nějaká vykopávka (třeba nějaké x51)
>- implementace ve slave je triviální, na nějakých 20-30 řádků v C, možná i míň (potřebuje jen umět povolit/zakázat SPI, testovat jednu GPIO linku a nastavit jednu GPIO linku)
>- není žádný důvod, proč by to nemělo fungovat na jakémkoli typu procesoru, starém i budoucím, tedy ochrana investic
>- snadno by se dal udělat nějaký backplane s řadou konektorů, kam by se jen zasunutím destičky zařadil do busu další slave (po zasunutí by následoval cyklus "ozvi se kdo jsi tu a řekni co umíš", automaticky vyvolaný masterem)
>
>Při implemetaci mého spolehlivého SPI pak létají mezikontinentální rakety přesně na čas podle jízdního (raketového) řádu.
>Tak na co tam živit nějaké zbytečné chlapy.
>SPI forever. ;-)
>
>PL
>
>**********************
>
>Dne 25.5.2023 v 14:18 Jan Waclawek napsal(a):
>>> Pravidlo: žádný zákazník nikdy dopředu pořádně neřekne, co všechno dříve
>>> či později bude potřebovat.
>>> Takže vždy je třeba myslet na pozdější rozšiřitelnost.
>> Premysliet mozno, ale urcite netreba robit prilis velke vylepsenia.
>> 
>> A treba zacat s proof-of-concept vecami, aby sa zasadne problemy ukazali
>> hned. Napriklad taka metoda zretazenia chipselectov... na papieri to
>> vyzera dobre, ale ak sa to zacne robit, tak sa rychlo ukaze, aka blbost to
>> bola... ;-)
>> 
>> Ako vravim, zadanie bolo, ze transakcia ma prebehnut automaticky, bez
>> nejakeho saskovania v software. Ak sa maju veci robit v software, tak to
>> pokojne mozu byt vsetci postupne master, presne tak ako sa to pri
>> odovzdavani tokenov robi, a vobec netreba riesit ziadne zretazovanie
>> chipselectov. Tie chipselecty vlastne predstavuju aj tak viacmenej len
>> metodu identifikacie poradia, to sa da riesit aj inak, pridelenim
>> poradovych cisiel v software napriklad.
>> 
>> Medzicasom som vymyslel metodu, ako so zretazenim MISO/MOSI dosiahnut
>> volitelne dlzky sprav (ano, kvoli tomu som sa nevyspal). Je to uplne
>> zbytocna komplikacia, ktoru zakaznik nechce a nikdy ani nebude chciet,
>> vymyslam to ciste len kvoli Vam; a je to na dlhsie rozpravanie, mozno sa
>> cez vikend k tomu dostanem. A tiez si to musim odskusat aj na druhom type
>> STM32 DMA (single-port), s ktorym mam menej skusenosti, a to si vyzaduje
>> robotu a cas a aj uplne sprosty fyzicky priestor...
>> 
>> Ti chlapi, co odpaluju medzikontinentalne rakety s jadrovymi hlavicami,
>> sedia v tych najlepsich protijadrovych bunkroch ktore su k dispozicii; a
>> oni to vedia. V pripade potencialneho odvetneho utoku je to to najlepsie
>> mozne miesto, kde by mohli byt, urcite odtial utekat nebudu. Navyse,
>> dostavaju slusny plat a pritom vlastne nikdy nic nerobia (okej, obcas
>> nejake smiesne cvicenie s cervenym telefonom a tymi klucami). Ziadne SPI.
>> 
>> wek
>> 
>> 
>> ----- Original Message ---------------
>> 
>> Subject: Re: STM32, SPI daisy chain
>>     From: Petr Labaj <labaj na volny.cz>
>>     Date: Thu, 25 May 2023 00:09:24 +0200
>>       To: hw-list na list.hw.cz
>> 
>>> Ad fixní délka:
>>> Pravidlo: žádný zákazník nikdy dopředu pořádně neřekne, co všechno dříve
>>> či později bude potřebovat.
>>> Takže vždy je třeba myslet na pozdější rozšiřitelnost.
>>> 
>>> Ad vstup dat:
>>> Ale jak daný slave ví, co budou poslední data? Vy počítáte s tím, že on
>>> všechno pochytá do bufferu a teprve z něho to zpětně přečte?
>>> Můj způsob je zcela dynamicky. Posílej co chceš, kolik chceš, komunikuj
>>> jednosměrně nebo obousměrně, měj jednoho nebo 20 slaves - prostě cool &
>>> free.
>>> 
>>> Ad mezikontinentální rakety:
>>> Dva týpci s klíčema je starý způsob. Nejsou lidi, chlapi utíkají před
>>> odvodní komisí. A ti, co už tam jsou, utečou strachem před protiúderem.
>>> Takže rakety je třeba startovat přes SPI.
>>> 
>>> Ad můj způsob:
>>> Timery netřeba. DMA jen tehdy, když bude komunikace rychlá. Ale to je
>>> stejné jako u Vás.
>>> Jediné, co je navíc, jeden výstupní GPIO pin.
>>> Odměnou za to je téměř neomezený systém.
>>> 
>>> PL
>>> 
>>> PS. ARCnet je (byl) moje srdeční záležitost. Psal jsem pro něho drivery
>>> ještě do komerčních Unixů, před érou Linuxu.
>>> Myslím, že jsem tehdy postavil největší ARCnetové sítě v tehdejším
>>> Československu.
>>> 
>>> **********************
>>> 
>>> Dne 24.5.2023 v 23:34 wek napsal(a):
>>>> --- moj
>>>> Uloha znela, fixna dlzka spravy.
>>>> 
>>>> Variabilnu dlzku ste si vymysleli Vy, asi by to slo u mna riesit s
>>>> nejakymi rozumnymi obmedzeniami ale naco.
>>>> 
>>>> 
>>>>> Jak daný slave pozná, že data, která mu lezou do vstupu, jsou pro něho?
>>>> Posledna sprava je pre neho.
>>>> 
>>>>> Do vstupu mu jde celý vláčik, a on neví, kolik je slaves
>>>> Nepotrebuje to vediet, "posledna" je jednoznacne.
>>>> 
>>>> 
>>>> Medzikontinentalne rakety s hlavicami sa nestartuju cez SPI, ale  tak,
>>>> ze dvaja tipkovia naraz otocia klucikom.
>>>> 
>>>> 
>>>> --- Vas
>>>> Poziadavka znela, cela transakcia prebehne v hardware. Ten Vas postup
>>>> v hardware date len za cenu pinov, timerov a DMA naviac, a mate
>>>> obmedzenie na rychlost SPI (lebo master musi robit medzery medzi
>>>> kazdym byte, kedze nevie, kedy nastava "prehodenie slave").
>>>> 
>>>> Ani verzia s fixnou dlzkou spravy nie je uplne jednoducha a asi bez
>>>> pinu a timera naviac sa neda urobit v hw.
>>>> 
>>>> Vyhodou je mensia spotreba RAM, ale podla zadania ide o 64B (teda v
>>>> mojom rieseni 72B).
>>>> 
>>>> wek
>>>> 
>>>> 
>>>> 
>>>> On 24 May 2023 22:51:46 CEST, Petr Labaj <labaj na volny.cz> wrote:
>>>> 
>>>>      Váš:
>>>>      Jak daný slave pozná, že data, která mu lezou do vstupu, jsou pro
>>>>      něho? Do vstupu mu jde celý vláčik, a on neví, kolik je slaves a
>>>>      jak dlouhé zprávy posílají.
>>>>      Takže ve výstupních datech některého předchozího slave může být
>>>>      obsah, který on vyhodnotí jako příkaz "odstartuj mezikontinentální
>>>>      střely s jadernými hlavicemi".
>>>> 
>>>>      Můj:
>>>>      - každý slave testuje, kdy mu CS_IN spadne do neaktivního stavu, v
>>>>      té chvíli shodí své CS_OUT do neaktivního stavu a zapne své SPI
>>>>      - start jednoho kola komunikace - master nahodí CS (předtím byl
>>>>      neaktivní)
>>>>      - první slave přijímá a vysílá data, libovolně dlouho, podle své
>>>>      potřeby
>>>>      - až dokončí svou komunikaci, nahodí CS_OUT a vypne své SPI
>>>>      (master má stále CS aktivní, teď už má trvale aktivní CS_OUT i
>>>>      tento první slave)
>> 
>
>_______________________________________________
>HW-list mailing list  -  sponsored by www.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/20230525/ad90e6cb/attachment.htm>


Další informace o konferenci Hw-list