V článku "Co se skrývá pod komunikací označenou jako USB OTG ?" jsem stručně a více méně laicky popsal co je to USB OTG a jak to zhruba pracuje. Tento článek pak ukazuje stav využití USB OTG v mikrokontrolérech společnosti Freescale, která rozhodně patří v tomto oboru mezi špičku.
Již v současné době nabídka společnosti Freescale disponuje slušně širokou nabídkou mikrokontrolérů, jak se základním provedením USB 2.0 chovající se jako periferie (režim Device), tak i mnoho obvodů s USB OTG nebo dokonce USB pracující jako řídící HOST rozhraní. Poslední skupinu hlavně tvoří MCU u nichž se předpokládá funkce "centrály", ke které se budou připojovat další zařízení (např. senzory) za účelem zasílání získaných dat k dalšímu zpracování nebo jejich uložení nebo zobrazení na displeji (vizualizace). Proto tyto součástky často obsahují jinak nepříliš běžná rozhraní, jako je Ethernet nebo integrovaný řadič LCD displejů. Jak je možné vidět na následujících obrázcích (grafech), již v současné době v nabídce převažují obvody s USB OTG, což je přirozené, protože ty se mohou chovat jako plnohodnotné klasické "USB Device" rozhraní a proto není důvod pro výrobce verzi OTG nepoužít. Výjimkou jsou jen vysokorychlostní USB komunikace (Hi-Speed USB). U Freescale je USB OTG doménou hlavně 32bitových mikrokontrolérů s jádrem ColdFire. U 8bitových MCU pak najdete jen to nejzákladnější USB rozhraní, pokud ho vůbec mají. Zajímavý pak je fakt, že některé stejné typy MCU (provedení) jsou k dispozici jak s USB OTG, tak jako s plnohodnotným USB HOST rozhraním. Konkrétně jde MCF532x a MCF537x.
Nabídka mikrokontrolérů Freescale s integrovaným USB rozhraním (režim Device = světle modrá, Host = zelená, OTG = tmavě modrá)
Použití USB OTG
Zatímco klasické USB zařízení, včetně mikrokontrolérů a procesorů, které tvoří jejich řídící logiku, se buď chovají jako řídící systém "Host" (například klasické PC) nebo jako periferní zařízení "Device" (např. telefon, tiskárna, fotoaparát či mp3 přehrávač), zařízení obsahující USB OTG se může v omezené míře chovat jako "Host" i jako "Device", dle jeho nastavení. Například tak lze vzájemně přímo propojit dva mp3 přehrávače s USB OTG a přetáhnout písničky z jednoho přímo na druhý kdekoliv bez potřeby použít počítač, přímo připojit tiskárnu k fotoaparátu či kapesnímu PC (Pocket PC) s USB OTG. Zároveň lze například Pocket PC vybavené USB OTG připojit jak k PC pro nahrávání a synchronizaci programů a dat, tak k němu připojit úplně obyčejnou Flash paměť v podobě klíčenky nebo adaptér pro připojení různých paměťových Flash karet, které se chovají jako klasická periferie. Navíc s USB Stack softwarem lze bez práce implementovat podporu následujících USB Device a Host tříd pro připojení HID zařízení (Human-Interface Device):
- Obecné HID rozhraní
- HID rozhraní pro klávesnici
- HID rozhraní pro myš
- CDC zařízení
- HID host
- Host mass storage
Rozhraní USB OTG například v MP3 přehrávači jej umožňuje připojit jak k PC, tak k propojení s dalším přehrávačem. V případě použití v Pocket PC pak lze k němu připojit klasickou klávesnici, myš, tiskárnu nebo fotoaparát nebo jej připojit k PC.
USB OTG v MCU nízkopříkonové řady Flexis
Se zvyšováním ceny elektrické energie se stává v nabídce Freescalu stále více populární rodina nízkopříkonových MCU označená jako Flexis JM. Tu reprezentují vzájemně "kompatibilní" 8bitové mikrokontroléry řady HC9S08JM a výkonné 32bitové mikrokontroléry s jádrem V1 ColdFire označené jako MCF51JM. V obou řadách jsou zástupci obsahují integrované USB rozhraní, ale zatímco v 8bit. MCU MC9S08JM60 jde pouze o USB v "klasickém" režimu Device, tj. MCU může komunikovat jen se zařízením pracující jako USB Host, 32bitové MCF51JM128 již obsahuje plné rozhraní USB OTG, tzn. že může komunikovat prakticky s jakýmkoliv dalším USB portem. Protože USB v režimu Device je dnes již obvyklá záležitost, trošku si přiblížíme jen mikrokontrolér MCF51JM128 (viz blokové schéma vlevo).
32bit. MCU Flexis MCF51JM128 v sobě mimo USB 2.0 Full-Speed OTG integruje řízení a široké možnosti propojení s okolními mikorkontroléry, periferiemi i nadřazenými počítači:
- CPU: jádro V1 ColdFire, taktování 50 MHz
- Frekvence sběrnice: 25 MHz
- Paměť:
- až 128 kB Flash
- až 16 kB SRAM
- Komunikace: CAN, SPI, SCI, I2C, KBI, USB 2.0 OTG
- Analogové rozhraní: 12kanálový 12bitový A/D převodník, komparátory
- Ladící a programovací rozhraní: ICE, BDM
- Další: krypotografická akcelerační jednotka, obvod reálných hodin (RTC)
- Napájecí napětí: 2.7 až 5.5V
Bližší informace o MCF51JM128 na:
http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=MCF51QE&nodeId=0162468rH3YTLC00M95448
USB OTG v 32bit. MCU s jádrem ColdFire V2, V3 nebo V4
Pokud potřebujete mikrokontroléry s větším výkonem a většími funkcemi, pak je možné sáhnout po výpočetním jádru V2 ColdFire (rodina MCU MCF522xx), V3 ColdFire (rodina MCF532x) nebo poslední zatím vyráběnou verzi V4 ColdFire (rodina MCU MCF5445x). Zde je možné najít USB OTG jak v režimu Slow-speed (USB 1.1) a Full-speed (USB 2.0), tak dokonce v režimu Hi-speed (vysoká rychlost).
Mikrokontroléry MCF5221x a MCF5222x
Rodiny mikrokontrolérů MCF5221x a MCF5222x, které obsahují jádro V2 ColdFire s hardwarovou násobičkou a děličkou MAC s výkonem 76 Dhrystone 2.1 MIPS při frekvenci 80 MHz a napájení 3.3 V, mají integrovaný full-speed USB OTG, včetně tranceiveru (USB PHY), pro nasazení v běžných 32bitových USB aplikacích.
Jádro obvodů MCF5221x pak doplňuje 16 kB vnitřní SRAM paměti a až 128 kB beznapěťové Flash paměti, 4kanálový řadič DMA (Direct Memory Access) a mnoho 16bitových i 32bitových časovačů a obvod reálného času RTC. Mezi integrované periferie komunikující s okolím mikrokontroléru patří 8kanálový 12bitový A/D převodník (ADC) pro paralelní převod až 8 analogových signálů na 12bitové digitální hodnoty ukládané do vnitřní SRAM paměti a digitální sériové komunikační rozhraní a moduly UART (Universal Asynchronous Receiver/Transmitter) pro středně dlouhé a dlouhé propojení s dalšími MCU či PC, I2C a QSPI (Queued Serial Peripheral Interface) pro snadné připojení periferních obvodů a součástek (externích senzorů, pamětí apod). Pro generování výstupních analogových signálů slouží 8kanálový blok pulsně-šířkové modulace PWM a pro programování, ladění a testování programu slouží BDM a JTAG rozhraní.
Rodina MCF5222x se pak odlišuje od svých kolegů MCF5221x, hlavně integrovanou větší pamětí (až 256 kB Flash a až 32 kB SRAM), přičemž jim chybí některé prvky, které však ne všude jsou potřeba, jako například jednotka DMA. Jinak je výbava dosti podobná.
Bližší informace o MCF5221x na:
http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=MCF521XX&fsrch=1
Bližší informace o MCF5222x na:
http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=MCF5222X&fsrch=1
Mikrokontroléry MCF525x
I když mikrokontroléry MCF5253 také využívají jádro ColdFire verze 2, celá podobnost s výše uvedenými "kolegy" MCF522xx končí. Tento typ výkonného MCU (až 125 Dhrystone 2.1 MIPS při 140 MHz) byl hlavně vyvinut nejen pro potřeby multimediálních aplikací a současnou moderní spotřební elektroniku (fotoaparáty, mp3 a mp4 přehrávače, Voice-over IP (VoIP) apod.), ale je vhodný i pro průmyslové a automobilové aplikace nebo zdravotnické přístroje. To jasně ukazuje přítomnost dvou CAN modulů, vysokorychlostního USB OTG (řadič i fyzická vrstva USB PHY) i integrovaného rozhraní pro připojení slotů paměťových karet (Flash Media Card Interface pro připojení Sony Memory Stick a SD karet a SmartMedia Interface pro připojení Compact Flash karet).
Jádro vyžadující napájení 1.2 V zde je však doplněno vylepšenou jednotkou hardwarové násobičky a děličky eMAC (Enhanced Multiply and Accumulate Module and Hardware Divide), která umožňuje realizaci i náročných DSP výpočtů a aplikací, také stojí za významně vyšším výkonem mikrokontroléru. Vše dále doplňuje integrovaná SRAM paměť o velikosti 128 kB, 8kB instrukční cache paměť a SDRAM řadič (Synchronous DRAM Controller), který umožňuje připojit vnější paměť až 32 MB (32bit. adresová a 16bit. datová sběrnice).
Pro komunikaci s okolními periferními obvody (senzory, paměťmi apod.) nebo dalšími MCU či mikroprocesory lze mimo CAN a USB využít další typy sériové komunikace: UART, QSPI, I2C. Rozhraní I2S umožňuje přijímat a vysílat signály digitálního zvuku (digital audio) přes sériové rozhraní. Pro nasazení v multimediálních aplikacích nesmí chybět ATA/IDE rozhraní pro možnost připojení, harddisku, CD nebo DVD mechaniky apod.
Dnes samozřejmostí nejen u nízkopříkonové řady Flexis je řízení nízkopříkonového napájení zahrnující flexibilní smyčku fázového závěsu PLL (phase-lock-loop) s vypínacím režimem umožňující dynamické přepínání frekvence hodinového signálu pro regulaci spotřeby podle pracovního vytížení.
Bližší informace o MCF525x na:
http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=MCF525X&fsrch=1
Mikroprocesor MCF532x
Rodina MCF532x je pak již spíše výkonný vestavný RISC mikroprocesor než běžný mikrokontrolér, protože součástka obsahuje relativně malou integrovanou paměť, ale naopak má jádro V3 ColdFire s integrovanou a hardwarovou násobičkou a děličkou eMAC (enhanced Mutiply-ACcumulate) pro rychlé zpracování DSP a dohromady poskytují při taktování 240MHz výkon 211 Dhrystone 2.1 MIPS. Dalším velkým rozdílem proti předcházejícím kolegům mikrokontrolérům je v integraci kompletního LCD SVGA řadiče a přítomnost dvou USB řadičů/rozhraní, zvlášť USB OTG a USB Host. Některé verze pak mohou mít i integrovanou MAC vrstvu 10/100Base-T nebo -Tx Ethernetu (10/100 FEC) nebo CAN rozhraní, pokud je procesor určen pro automobilové aplikace. Naopak mikroprocesory této rodiny neobsahují A/D převodník ani komparátory.
Základní vlastnosti rodiny MCF532x:
- CPU: 32bitové 240 MHz jádro ColdFire V3 s eMAC
- Paměť:
- 32 kB SRAM
- 16 kB instrukční a datové cache
- 16bit. DDR / 32bit. SDR SDRAM řadič a rozhraní
- 16kanálový DMA řadič s 32bitovými čítači (eDMA)
- Komunikace: USB 2.0 OTG a USB 2.0 Host, QSPI, UART, SSI, případně 10/100 Ethernet MAC (FEC) nebo FlexCAN 2.0B
- Další: integrovaný řadič SVGA LCD displeje, 4kanálový PWM
Bližší informace o MCF532x na:
http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=MCF532X&fsrch=1
Mikroprocesory MCF5445x
Podobně jako rodina MCF532x s jádrem ColdFire V3 i součástky označené jako MCF5445x jsou více výkonné vestavné RISC mikroprocesory než běžný mikrokontrolér. Proti MCF532x mají však v sobě integrované jádro ColdFire V4, které spolu s jednotkou řízení paměti MMU (Memory Managment Unit) a hardwarovým akcelerátorem šifrování poskytuje při taktování 266 MHz výkon 410 Dhrystone 2.1 MIPS. Mimo full-speed USB OTG řadiče s full-speed/hi-speed transceiverem, najdeme na chipu i Ethernet v podobě hardwarově integrované MAC vrstvy (fyzickou vrstvu je nutné doplnit a vyšší vrstvy realizovat softwarově) nebo dokonce dvoubankový řadič SDRAM pamětí DDR / DDR2 / mobile-DDR. Protože má sám o sobě mikroprocesor malou integrovanou paměť (také je to mikroprocesor a ne mikrokontrolér), má v sobě implementovanou podporu bootování z libovolné paměti připojené na SPI rozhraní, tedy obvykle z nějaké nonvolative paměti typu Flash, EEPROM, FRAM nebo MRAM. Protože se předpokládá nasazení v náročných aplikacích, jsou na chipu implementované řadiče ATA / ATAPI a PCI.
Základní vlastnosti rodiny MCF5445x:
- CPU: 32bitové 266 MHz jádro V4 ColdFire s MMU
- Vnitřní 32bit. a 133 MHz adres. i dat. sběrnice
- Vyvedená 66 MHz externí sběrnice FlexBus
- hardwarová 32bit. DSP jednotka eMAC + 32bit. dělička
- Šifrovací akcelerační jednotka CAU (DES a AES blok, MD5, SHA-1 a HMAC akcelerátor)
- Paměť a paměťová rozhraní:
- 16 kB vnitřní instrukční a datové cache
- 32 kB vnitřní dual-port SRAM pamět
- podpora bootovaní z externích SPI Flash, EEPROM nebo FRAM pamětí
- 16bit. 133 MHz DDR / mobile-DDR / DDR2 řadič pro připojení "PC" DDR pamětí
- 16kanálový DMA řadič s 32bitovými čítači (enhanced DMA)
- Komunikace: SPI, UART, SSI, I2C, 10/100 Ethernet MAC (FEC), USB 2.0 OTG s podporou ULPI
- Připojovací řadiče: ATA/ATAPI, 32bit. PCI řadič pracující na 66 MHz
- Další: generátor náhodných čísel, obvod reálných hodin (RTC), Serial Boot (bootování z paměti připojené na SPI)
Bližší informace o MCF5445x na:
http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=MCF5445X&fsrch=1
Závěr 1.dílu
Jak lze z výše uvedeného vidět, v nabídce společnosti Freescale je mnoho obvodů s různou výbavou vhodných pro různé aplikace, ať již jde o přímo zaměřené nebo multimediální přístroje, průmyslové řídící systémy či měřící přístroje nebo jako části automobilů, robotů či zdravotnických zařízení. Zatímco v tomto 1.díle šlo hlavně o základní přehled mikrokontrolérů a mikroprocesorů s rozhraním USB OTG (USB On-The-Go) nebo USB Host, v příštím 2. díle se již konkrétně podíváme na to, jak jsou USB OTG rozhraní hardwarově realizována u různých MCU Freescale a co je potřeba navíc přidat a připojit, aby to prakticky komunikovalo. Ve třetím díle se pak trošku podíváme na zoubek softwaru pro USB OTG, konkrétně na USB stack, který Freescale poskytuje programátorům pro usnadnění jejich práce.
Jinak více informací o zde uvedených mikrokontrolérech a mikroprocesorech, včetně podrobných datasheetů popisujících vývody, princip nabíjení, výpočty externích součástek a parametrů apod. najdete stránkách Freescalu - www.freescale.com.
Antonín Vojáček
DOWNLOAD & Odkazy
- Domovská stránka firmy Freescale, výrobce 8 a 32bitových MCU a CPU - www.freescale.com
- Domovská stránka české pobočky firmy Freescale - www.freescale.com/webapp/sps/site/homepage.jsp
- Přímý odkaz na stránku popisující mikrokontroléry Freescale MCF51JM128
-
http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=MCF51QE&nodeId=0162468rH3YTLC00M95448 - Přímý odkaz na stránku popisující mikrokontroléry Freescale MCF5221x - http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=MCF521XX&fsrch=1
- Přímý odkaz na stránku popisující mikrokontroléry Freescale MCF5222x - http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=MCF5222X&fsrch=1
- Přímý odkaz na stránku popisující mikrokontroléry Freescale MCF525x - http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=MCF525X&fsrch=1
- Přímý odkaz na stránku popisující mikroprocesory Freescale MCF5445x - http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=MCF5445X&fsrch=1