<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0cm;
font-size:11.0pt;
font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
.MsoChpDefault
{mso-style-type:export-only;}
@page WordSection1
{size:612.0pt 792.0pt;
margin:70.85pt 70.85pt 70.85pt 70.85pt;}
div.WordSection1
{page:WordSection1;}
--></style></head><body lang=CS link=blue vlink="#954F72" style='word-wrap:break-word'><div class=WordSection1><p class=MsoNormal>Konfigurátor na STM je moc hezkej, ale zrovna mě hned u prvního projektu pěkně vypek. Zapnul jsem PWM a ona nefungovala… Když jsem se v tom vrtal, zjistil jsem, že zorientovat se v těch HAL funkcích je poněkud komplikovanější, než jsem byl zvyklý i z výrazně většího LPC. Takový LWIP na cortex A8 je docela složitý, ale dá se v tom zorientovat líp, než v HAL z banálního projektu s malým STM. To mě fakt nepříjemně překvapilo.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>PH</p><p class=MsoNormal><o:p> </o:p></p><div style='mso-element:para-border-div;border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm'><p class=MsoNormal style='border:none;padding:0cm'><b>Od: </b><a href="mailto:jaroslav.buchta@hascomp.cz">Jaroslav Buchta</a><o:p></o:p></p></div><p class=MsoNormal>Pokud nemate pupinky z grafickeho konfiguratoru, tak tento problem </p><p class=MsoNormal>myslim s STM mit nebudete. I jinak si teda myslim, ze pro zakladni </p><p class=MsoNormal>pouziti periferii ma HAL i LL jasne a pruhledne funkce.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Dne 05.02.2021 v 19:52 Miroslav Mraz napsal(a):</p><p class=MsoNormal>> STM to vzali podle mého soudu za špatný konec. Ty knihovny jsou psány </p><p class=MsoNormal>> z hlediska návrháře hardware a v konečném důsledku jsou pro </p><p class=MsoNormal>> aplikačního programátora nepoužitelné. Na druhou stranu máte periferie </p><p class=MsoNormal>> široce konfigurovatelné. Což ovšem ocení málokdo. NXP to vzali z té </p><p class=MsoNormal>> druhé strany - z pohledu aplikačního programátora. Takže když chcete </p><p class=MsoNormal>> nějaké neobvyklé chování periferie, musíte se vrtat v jejich kódu. Ale </p><p class=MsoNormal>> pokud vám stačí to co se obvykle používá, máte jasně definované </p><p class=MsoNormal>> programové rozhraní, které je snadné použít. Nakonec se dá použít i </p><p class=MsoNormal>> Arduino styl, který (alespoň co jsem kdysi zhruba zkoumal pro AVR) </p><p class=MsoNormal>> není vůbec špatně napsaný.</p><p class=MsoNormal>> Co mně na Arduinu jako takovém vadí je snaha předstírat, že použitý </p><p class=MsoNormal>> jazyk (C++) je jednoduchý a používat ho může každý. Ne, není tomu tak. </p><p class=MsoNormal>> C++ je jazyk velmi komplikovaný, protože prošel dlouhým vývojem, už </p><p class=MsoNormal>> pár desítek let ho používám a nemohu říct, že bych ho znal. Však </p><p class=MsoNormal>> Herout má tak stovku stránek, zatímco takový Eckel zhruba 10x tolik a </p><p class=MsoNormal>> ani tak v tom není zdaleka všechno.</p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>> Dne 05. 02. 21 v 17:48 Pavel Hudecek napsal(a):</p><p class=MsoNormal>>> Těch 5 V je ve skutečnosti značná výhoda. Dnes má každej doma hromadu </p><p class=MsoNormal>>> 5 V adaptérů, takže stačí připojit. Nebo připojit Li-ionku. Těch mají </p><p class=MsoNormal>>> děti taky dost, ze starých NTB, nebo telefonů.</p><p class=MsoNormal>>><o:p> </o:p></p><p class=MsoNormal>>> Jinak zásadně učím děti, že jde spoustu věcí, ale je vždy potřeba </p><p class=MsoNormal>>> řešit, zda je to dobrý nápad a co to obnáší. Takže ano, MOSFET přes </p><p class=MsoNormal>>> Rg rovnou na pin procesoru. Ale ještě předtím najít takový MOSFET, </p><p class=MsoNormal>>> aby ho šlo 5V spolehlivě otvírat a proud, který si dle DS od MCU lze </p><p class=MsoNormal>>> dovolit stačil na dostatečně rychlé nabíjení a vybíjení jeho </p><p class=MsoNormal>>> kapacity. Při tom se hned dá ukázat, jak do toho kecá kapacita </p><p class=MsoNormal>>> zpětnovazební. No a samozřejmě jsou věci, kde se hodí, aby MCU jen </p><p class=MsoNormal>>> ovládal nějakej zdrojovej šváb a řešit, do jaký míry mu do toho </p><p class=MsoNormal>>> kecat. Takových 300 kHz se sice dá vytáhnout z AVR i z STM32, ale </p><p class=MsoNormal>>> obojí bude mít nepoužitelně malé rozlišení na regulaci. Ovšem </p><p class=MsoNormal>>> v obojím případě stačí třeba na nastavení deadtime.</p><p class=MsoNormal>>><o:p> </o:p></p><p class=MsoNormal>>> Stejně tak lze třeba LED displej připojit přímo na port a jen </p><p class=MsoNormal>>> společné konce spínat tranzistorama. Dá se moc hezky ukázat, co se </p><p class=MsoNormal>>> děje, když se to udělá špatně a jak to udělat správně, takže pak </p><p class=MsoNormal>>> hodiny jdou přesně a ADC měří normálně. A že to je jednodušší, pokud </p><p class=MsoNormal>>> se na port segmentů dají odpory, ale za cenu nutnosti použít různá </p><p class=MsoNormal>>> napětí dle barvy displeje to jde i bez nich.</p><p class=MsoNormal>>><o:p> </o:p></p><p class=MsoNormal>>> Ale zpátky k rozdílům v SW: Na ARMy se normálně používá rozsáhlej </p><p class=MsoNormal>>> ekosystém s hromadou .h souborů a udělat něco bez toho je dost </p><p class=MsoNormal>>> složitý. Zajímavý je, že třeba na LPC to je celkem hezký a dá se </p><p class=MsoNormal>>> v tom snadno zorientovat, podobně je na tom o hodně mohutnější AM335, </p><p class=MsoNormal>>> ale na STM32 mají všechno na můj vkus hodně komplikovaný, takže </p><p class=MsoNormal>>> mnohem radši použiju LPC než STM.</p><p class=MsoNormal>>><o:p> </o:p></p><p class=MsoNormal>>> A jsou samozřejmě situace, kdy je 32b jasná volba, třeba grafické </p><p class=MsoNormal>>> displeje. Když na 100nohej LPC připojím displej tak, že má na jednom </p><p class=MsoNormal>>> portu 0-17 paralelní data a na dalších bitech i řídící signály, lze </p><p class=MsoNormal>>> přenášet řádově desítky MPx/s (reálně míň, protože ty data taky nějak </p><p class=MsoNormal>>> vznikaj, což zabere většinu času). Na 8bitu se lze dohadovat, zda je </p><p class=MsoNormal>>> rychlejší SPI, nebo paralel 8bit. Jelikož jsem na obojím zkoušel </p><p class=MsoNormal>>> osciloskop 320x240, vím o čem píšu:-)</p></div></body></html>