![Very Happy :D](./images/smilies/icon_biggrin.gif)
Arduino a já
Chlapi, hovoříte cizím jazykem. Tu první verzi jsem poupil už před lety a v porovnání as Ardu ide je v tom fakt rozdíl. Tu V2 jsem koupil po měsíčním testování. Je jasné, že těch možností jsou spousty a profi programátor se nad tím ušklíbne. Ovšem pro obyčejného člověka je kompletní program s manuálem a s upgradama docela dobrá věc, hlavně když nezvládá angličtinu.
Když chceš potrénovat bez Arduina.
https://chiptron.cz/news.php?readmore=1312
https://chiptron.cz/news.php?readmore=1312
Tak jsem se po delší době konečně přesvědčil k další činnosti. Blue pill s STM32 je zajímavá náhrada AVR328 na aplikace v reálném čase. Chce to trochu ostražitosti při používání vývodů netolerujících 5V, ale jinak dobré. V porovnáním s 328 jsou odezvy HW cca 3x rychlejší.
Kromě toho má mnohem víc paměti (u Flash teoreticky 2x ale v praxi 4x, u RAM dokonce 10x), má víc a mnohem výkonnějších periferií a má víc I/O linek.lubbez píše: ↑21. 3. 2022, 10:27 Tak jsem se po delší době konečně přesvědčil k další činnosti. Blue pill s STM32 je zajímavá náhrada AVR328 na aplikace v reálném čase. Chce to trochu ostražitosti při používání vývodů netolerujících 5V, ale jinak dobré. V porovnáním s 328 jsou odezvy HW cca 3x rychlejší.
Má úžasnou výhodu - unifikovaný přístup do paměti. Takže je možné spouštět kód v RAM.
Navíc byl v době, kdy byl svět ještě v pořádku (tak před 2 roky) dokonce levnější než nejlevnější Arduino Nano.
Má snad jedinou objektivní nevýhodu, a to, že nemá interní EEPROM.
Interní EPROM sice nemá, ale i to se dá pro určité situace obejít využitím interní FLASH.
Trochu problém pro někoho může být, že tato architektůra nemá instrukce pro bitovou manipulaci z čehož plyne neatomický přístup na porty a pod. Ona celkově je to load & store.
Ale za sebe - já už s ničím jiným nedělám pokud nemusím.
Trochu problém pro někoho může být, že tato architektůra nemá instrukce pro bitovou manipulaci z čehož plyne neatomický přístup na porty a pod. Ona celkově je to load & store.
Ale za sebe - já už s ničím jiným nedělám pokud nemusím.
Ano, do Flash to jistě jde. Ale průměrná EEPROM má minimálně 10x větší životnost než průměrná Flash.
Nerozumím té poznámce o bitových manipulacích. Pokud je tedy řeč o portech (jak plyne ze zbytku věty).
Tento procesor přece má podporu pro nastavení/shození výstupního bitu, bez nutnosti dělat read-modify-write.
To mně osobně přijde jako docela velká výhoda a s oblibou to používám. Ale tys asi myslel něco jiného.
Co mi teda u periférií chybí je FIFO u UARTu/USARTu. Sice se ledacos dá řešit přes DMA, ale FIFO by bylo lepší řešení. STM ho konečně zavedl až v řadě STM32G.
Ty desky Blue-pill zdražily snad víc než plyn. Dřív jsem je kupoval kolem 1.80 USD, teď jsou někde kolem 6 USD.
Nerozumím té poznámce o bitových manipulacích. Pokud je tedy řeč o portech (jak plyne ze zbytku věty).
Tento procesor přece má podporu pro nastavení/shození výstupního bitu, bez nutnosti dělat read-modify-write.
To mně osobně přijde jako docela velká výhoda a s oblibou to používám. Ale tys asi myslel něco jiného.
Co mi teda u periférií chybí je FIFO u UARTu/USARTu. Sice se ledacos dá řešit přes DMA, ale FIFO by bylo lepší řešení. STM ho konečně zavedl až v řadě STM32G.
Ty desky Blue-pill zdražily snad víc než plyn. Dřív jsem je kupoval kolem 1.80 USD, teď jsou někde kolem 6 USD.
Proto taky píšu, že nepřítomnost EEPROM je řešitelná skrze FLASH jen v určitých případech. Třeba pokud se "uživatelská konfigurace" nemění často nebo raději velmi sporadicky.
Nelze jednou instrukcí zapsat na port bez rizika kolize s jiným takovým zapisem v přerušení.
Lze atomicky nastavit 1 nebo 0 na vybrané skupině portů, ale né obojí najednou.
Load-Store to znamená, že nemůžeš například zapsat hodnotu do paměťi jednou instrukcí.
S tím musíš počítat, když sdílíš data mezi kódem kterej běží v přerušení a hlavním kódem.
Speciálně když ti na mcu běží nějakej RTOS nebo rozšíření na multitask, tak přístup k datům je třeba zamykat.
Nelze jednou instrukcí zapsat na port bez rizika kolize s jiným takovým zapisem v přerušení.
Lze atomicky nastavit 1 nebo 0 na vybrané skupině portů, ale né obojí najednou.
Load-Store to znamená, že nemůžeš například zapsat hodnotu do paměťi jednou instrukcí.
S tím musíš počítat, když sdílíš data mezi kódem kterej běží v přerušení a hlavním kódem.
Speciálně když ti na mcu běží nějakej RTOS nebo rozšíření na multitask, tak přístup k datům je třeba zamykat.
Jako FIFO je fain, ale zatím jsem nenarazil na situaci kde by mi chybělo. Všechno strkám do fronty v přerušení a zpracovávám až pak.
Jasně, externí v pohodě. Ostatně, ve většině projektů co jsem potřeboval něco konfigurovat a ukládat, tak by typická interní eeprom prostě kapacitou nestačila, takže stejně dávám externí ![Wink ;-)](./images/smilies/icon_wink.gif)
Někdy tak moc, že tam strkám SD kartu![Smile :-)](./images/smilies/icon_smile.gif)
![Wink ;-)](./images/smilies/icon_wink.gif)
Někdy tak moc, že tam strkám SD kartu
![Smile :-)](./images/smilies/icon_smile.gif)
Jsem za arduino děsně vděčný. Bylo mojí vstupní branou do elektroniky, docela ocěňuju, že jsem se naučil alespoň naprosté základy. Dělám teď dost fotek v ImageJ a dělám si skripty. Bez nich bych se z toho zcvoknul. Ono se asi v budoucnu bez nějakého naprostého základu programování člověk nehne. Aspoň nějaké if/else, for loop... Ale jde mi to jak psovi pastva ![Laughing :lol:](./images/smilies/icon_lol.gif)
![Laughing :lol:](./images/smilies/icon_lol.gif)
Připrav se, hrajem...
https://www.youtube.com/watch?v=HzjNAnEfvxc
https://www.youtube.com/watch?v=HzjNAnEfvxc
Tak malý technologický downgrade. Teploměr s 1820, 18B20, 18S20 - tento je modifikovaný na měření teploty kovové trubky GCC laseru. Jinak je to jeden z dílků domáci automatizace - teploměr a dva kontakty dovnitř a jeden ven. Komunikace 485.