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