<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>Těch 5 V je ve skutečnosti značná výhoda. Dnes má každej doma hromadu 5 V adaptérů, takže stačí připojit. Nebo připojit Li-ionku. Těch mají 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 řešit, zda je to dobrý nápad a co to obnáší. Takže ano, MOSFET přes Rg rovnou na pin procesoru. Ale ještě předtím najít takový MOSFET, aby ho šlo 5V spolehlivě otvírat a proud, který si dle DS od MCU lze dovolit stačil na dostatečně rychlé nabíjení a vybíjení jeho kapacity. Při tom se hned dá ukázat, jak do toho kecá kapacita zpětnovazební. No a samozřejmě jsou věci, kde se hodí, aby MCU jen ovládal nějakej zdrojovej šváb a řešit, do jaký míry mu do toho kecat. Takových 300 kHz se sice dá vytáhnout z AVR i z STM32, ale obojí bude mít nepoužitelně malé rozlišení na regulaci. Ovšem 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 společné konce spínat tranzistorama. Dá se moc hezky ukázat, co se děje, když se to udělá špatně a jak to udělat správně, takže pak hodiny jdou přesně a ADC měří normálně. A že to je jednodušší, pokud se na port segmentů dají odpory, ale za cenu nutnosti použít různá 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 ekosystém s hromadou .h souborů a udělat něco bez toho je dost složitý. Zajímavý je, že třeba na LPC to je celkem hezký a dá se v tom snadno zorientovat, podobně je na tom o hodně mohutnější AM335, ale na STM32 mají všechno na můj vkus hodně komplikovaný, takže 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é displeje. Když na 100nohej LPC připojím displej tak, že má na jednom portu 0-17 paralelní data a na dalších bitech i řídící signály, lze přenášet řádově desítky MPx/s (reálně míň, protože ty data taky nějak vznikaj, což zabere většinu času). Na 8bitu se lze dohadovat, zda je rychlejší SPI, nebo paralel 8bit. Jelikož jsem na obojím zkoušel osciloskop 320x240, vím o čem píšu:-)</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:mrazik@volny.cz">Miroslav Mraz</a><o:p></o:p></p></div><p class=MsoNormal>Těch 5V je asi jediná výhoda. Co se týče hodin, když procesor spustíte, </p><p class=MsoNormal>má nějaké hodiny nastaveny - musí minimálně umět spustit kód z flash. </p><p class=MsoNormal>Když se s tím spokojíte, můžete se na clock tree v zásadě vykašlat. </p><p class=MsoNormal>Periferie mají zdánlivě hodně bitů k nastavení, ale většinou stačí </p><p class=MsoNormal>nastavit jich jen minimum, aby to fungovalo.</p><p class=MsoNormal>Co se týká návrhu desky a její realizace, začátečníci stejně použijí </p><p class=MsoNormal>nějaký modul a pokročilí s tím nemají zase takový problém. SWD/USB </p><p class=MsoNormal>adaptér seženete za pár šupů nebo si můžete udělat klon Blackmagic a </p><p class=MsoNormal>velká výhoda je, že debug s ním vám přímo ukáže, co se v CPU děje. </p><p class=MsoNormal>Prostě setrvávat u 8-bitů už nemá moc velký smysl.</p><p class=MsoNormal>Ostatně učit děti, že MOSFET jde budit přímo pinem procesoru asi také </p><p class=MsoNormal>není úplně nejlepší nápad. Měly by si zvykat, že svět elektroniky je </p><p class=MsoNormal>poměrně složitý a součástky nají bohužel i vlastnosti, které se moc </p><p class=MsoNormal>nehodí, ale je nutné s nimi počítat.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Mrazík</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Dne 05. 02. 21 v 3:27 Pavel Hudecek napsal(a):</p><p class=MsoNormal>> Konkrétně AVRka mají výhodu, že mají silné výstupy a 5 V. Pokud to někdo </p><p class=MsoNormal>> nezkazí tak jako zde v tématu s Arduinem a motorem, není problém z AVR </p><p class=MsoNormal>> řídit MOSFET a to i třeba na pár desítek kHz.</p><p class=MsoNormal>> </p><p class=MsoNormal>> Menší náročnost na návrh desky.</p><p class=MsoNormal>> </p><p class=MsoNormal>> Žádné složitosti u generování hodin. Nerad bych vysvětloval dětem clock </p><p class=MsoNormal>> controller v STM32:-)</p><p class=MsoNormal>> </p><p class=MsoNormal>> Další věc jsou dražší programovací prostředky na 32bity.</p><p class=MsoNormal>> </p><p class=MsoNormal>> A teda abych pravdu řek, na AVR jsem schopen jen podle koukání do </p><p class=MsoNormal>> „register description“ napsat prakticky všechno, na ARM zpravidla začnu </p><p class=MsoNormal>> od předgenerovaného projektu, kde je mnoho věcí, které všechny </p><p class=MsoNormal>> prozkoumat by zabralo moc času.</p></div></body></html>