2 www.ebeddedoroecs.ne ,our own oroecs [EDITCRAL] NO IDEAS ? Neue Proee .u nacnbauen und weierenwicen [PRCJECTS] RFID TrmoduI SimpIeCPU Ein SeIbstbau-Mini-Prozessor SD-KartenIeser am Grasshopper {AVR32) Open-Source MikrocontroIIer Kurs JTAGICE-mkII-KIon 15 Ton MeIodiegenerator USB-Stacks fr MicrocontroIIer Ansteuerung Touchscreen mit einem AVR CapSense-Anwendungen mit dem CapTooIKit 2 [ FLTOF/ ] BehedkL SauLer WELCOME Ausgabe 2 von Embedded-Projects JournaI Mil dieser zveilen Ausgabe isl der eveis erbracll: Wir sind eine LinlagsfIiege! Die LinlagsfIiege (gr. Lplemeroplera) bIickl vie ilr Name bereils vermulen Iassl - einer selr kurzen Lebenservarlung enlgegen. Im beslen IaII lal sie Iaul VoIksmund insge- saml eine Wocle zu Ieben, da sie befIugeIl bereils nacl ein paar Slunden oder spa- leslens nacl einem Tag slirbl. Docl nacl dem Mollo, aIIes lal Sinn isl es bei der LinlagsfIiege ganz genauso. Muller Nalur sorgl vie immer dafur, dass ein CIeiclge- vicll zvisclen aII der VieIfaIl an Leben auf der WeIl lerrscll und die eslen und Slarkslen uberIeben. Aucl die LinlagsfIiege, die es sclon seil uber 2OO MiIIionen }alren gibl, gelorl dazu: Die kIeine so bekannle und docl ansclei- nend so unbekannle LinlagsfIiege fulrl ein voIIslandig anderes Leben, vie so ofl angenommen. elracllel man den Werde- gang einer Lplemeroplera, so beginnl er mil dem SclIupfen aIs Larve aus dem Li. Dies gescliell in einem Zeilraum von 1O Tagen bis zu einigen Monalen. Dass aucl vir bereils erfoIgreicl gesclIupfl sind, laben vir mil der erslen Ausgabe im }uni beviesen. Im AnsclIuss daran beginnl die Teenager-Zeil der kIeinen Larven - veIcle aucl ganz eIeganl aIs Nymplen bezeiclnel verden. In dieser Zeil gibl es verscliedene Arlen von LinlagsfIiegen, die sicl enlve- der sclvimmend, grabend oder krieclend forlbevegen. Nur durcl diese VieIfaIl kann gesiclerl verden, dass das CIeiclgevicll in der Nalur erlaIlen bIeibl. So loffen aucl vir, ein gules Speklrum an VieIfaIl anbielen zu konnen. UngIaubIicle ein bis vier }alre fur Inseklen geradezu eine Lvigkeil - kann diese Hauplplase des Lebens andauern. In dieser Zeil laulel sicl die Nymple bis zu 5O maI, denn durcl das Waclslum vird regeImaig ilr Cevand zu eng und aucl vir konnen sloIz verkunden, unsere ersle Haulung voIIzogen zu laben, da die Sei- lenanzalI der erslen Ausgabe bereils jelzl gesprengl vurde. Lrsl zum Lebensende lin enlslell durcl Melamorplose die uns bekannle Linlags- fIiege. Die Ierfeklion der Lplemeroplera isl soveil ausgepragl, dass sie sicl inslinkliv kurz vor ilrer VervandIung gegen IIussricllung des Cevassers bevegl. Und jeder, der elvas gro- es erreiclen viII, muss sclon seil Urzeilen gegen den Slrom ,sclvimmen. Durcl die Melamorplose in ein Wesen mil IIugeIn isl es der kIeinen IIiege endIicl mog- Iicl, zum OIymp der Ireileil aufzusleigen. Tausende Tiere slarlen synclron mil ilrer VervandIung und biIden gemeinsam mil vieIen anderen IIiegen Sclaren und gan- ze WoIken, um ilren Hoclzeilslanz vor- zufulren und ilre Weibclen zu begallen. Sie geben in diesem Akl der Vermelrung ilren genelisclen aupIan mil ALLLN Informalionen verpackl in einem kIeinem Li veiler an die NaclveIl, so vie vir an Lucl mil unserem Hefl - frei, offen und einfacl zugangIicl. Isl die Lnergie verbraucll, faIIen die Lin- lagsfIiegen lol zu oden. Und genau dieser Irozess, die VoIIendung des Lebens, der e- ginn einer neuen Ceneralion, isl es, der den meislen Mensclen bekannl sein durfle. Dass vir uns nun sclvimmend, grabend oder krieclend der naclslen Ausgabe enl- gegen bevegen konnen, verdanken vir vor aIIem Lulz VoIIbracll, dem Cesclaflsfulrer der Iirma ,IV - Lcllzeil- und Lmbedded CmbH & Co. KC der aIs Hauplsponsor die HaIfle der Koslen fur Druck und Iorlo ubernommen lal! An dieser SleIIe bedanken vir uns ebenso bei den anderen Sponsoren. Wir freuen uns auf die naclsle Ausgabe und vunsclen vieI Spa beim Lesen. und die slelig vaclsende Communi- ly rund um dieses Open-Source Irojekl Zeilsclrifl Wir sind eine EintagsfIiege !?! |1j hLLp://de.wkpeda.org/wk/EhLagsIegeh |2j hLLp://de.wkpeda.org/wk/CpehSource |3j hLLp://www.bv-augsburg.heL/ %HQHGLNW6DXWHU sauler_embedded-projecls.nel 4 AbbiIdung 1: Aufgebauter RFID-Reader mit diversen Tags Abb. 2: RFID TrmoduI Oberseite ' / 'OO8 .OLFN/ FMEFLLFLPFO.FCTo.NFT [ PFO.FCTo ] RFID Turnodu | SLeIah Seege EinIeitung RFID TrmoduI Stefan SeegeI <post@seegeI-systeme.de> |||D (|cic |rcqucncq |cntijiccticn) ist cin Vcrjchrcn, un rcht- un ocrhrungs|cs z. 8. Gcgcnstcnc ccr Ticrc zu icntijizicrcn ccr zu crtcn. |inc Vcricntc cr |||D Tcchni| ist ic I|-usjhrung (Icu |rcqucncq). Dicsc ist schr prcisgnstig un ic I|-Trcnspcncr ocn5tigcn |cinc cigcnc Strcntcrscrgung, c icsc ocr cs |c| cs Icscrs nit |ncrgic tcrscrgt ucrcn. Dcrcus crgiot sich cin orcitcs nucnungsgcoict, z. 8. Zutrittssqstcnc, Zcitcrjcssung, Icgisti|, u. t. n.. |n jc|gcncn rti|c| uir cin |||D Icscr jr pcssitc 125 |Hz Trcnspcncr tcrgcstc||t. Das RIID TurmoduI (Abb. 1) eignel sicl aufgrund seiner Abmessung (Durclmesser 52 mm) fur den direklen Linbau in eine Unlerpulzdose. Die Unlerpulzdose soIIle am beslen an der inneren Seile der Tur angebracll verden. An der Auenseile kann z. . eine AcryIpIalle, veIcle die Anlenne und oplionaI eine (Duo-) LLD belerbergl, befesligl verden. Das ModuI kann z. . direkl an einem KIingeIlrafo 8 V- belrieben verden, veIcler aucl gIeicl einen eIeklrisclen Turoffner versorgen kann. Lin ReIais um den eIeklrisclen Turoffner zu sleuern befindel sicl mil auf der IIaline. OplionaI kann die IIaline mil einem RS485 IC besluckl verden, um z. . eine Vernelzung oder erveilerle Sleuerung zu ermogIiclen. Weilerlin isl auf der IIaline IIalz fur ein I2C LLIROM, um aucl eine groere AnzalI an Transpondern speiclern zu konnen. SclaIlpIan und Soflvare slelen unler |1j zur Verfugung. Projekt Ausstattung im berbIick C ATMega8 ruckengIeiclricller und SpannungsregIer 78MO5 on board RIID Reader IC LM4O95 WagokIemme fur den AnsclIuss von Slromversorgung, RIID Anlenne, (Duo-) LLD und DalenIeilung (RS485) WagokIemme fur den ReIaiskonlakl, um z. . einen Turoffner zu sclaIlen (ReIais on board) Kurzlublasler, z. . zum Iosclen von LLIROM 2 Iins des C (ID3, ID4) mil SliflIeisle abgreifbar, um z. . zusammen mil dem ISI Sleckverbinder ein RIM12 IunkmoduI anbinden zu konnen Funktionsbeschreibung Die Slandardfirmvare (DovnIoadIink unlen) uberprufl bei Lrkennung eines Tags zunaclsl, ob bereils ein Tag im LLIROM abgespeiclerl isl. IaIIs nicll (LLIROM Ieer / Lrslinbelriebnalme) vird dieser Tag im LLIROM abgeIegl und giIl von nun an aIs ,Adminislralor-Tag. Wird ein guIliger Tag erkannl, ziell das ReIais fur ca. 2 s an, bevor es vieder abfaIIl um z. . einen eIeklrisclen Turoffner anzusleuern. HandeIl es sicl bei diesem Tag um den Adminislralor Tag, konnen veilere guIlige Tags angeIernl verden, venn diese an die Anlenne gefulrl verden soIange das ReIais Abb. 3: RFID TrmoduI Unterseite Abb. 4: Manchester-Codierung 5 Abb. 5: SchaItpIan SLeIah Seege | RFID Turnodu [ PFO.FCT ] SchaItungsbeschreibung Softwarebeschreibung angezogen isl. Wird der Kurzlublasler auf der IIaline Ianger aIs zvei Sekunden gedruckl, verden aIIe gespeiclerlen Tags geIoscll. Der nacl einem Losclvorgang aIs naclsles erkannle Tag vird vieder aIs Adminislralorlag gespeiclerl. Uber die RS485 SclnillsleIIe verden beim Lesen eines Tags dessen Dalen nacl foIgendem Iormal ausgegeben: <STX>R<+/-><5 yles Tag lexadezimaI><LOT>. Das ,+' oder ,-' gibl an, ob der Tag im LLIROM gefunden vurde und somil das ReIais aklivierl vurde. Der RIID IC LM4O95 |2j gibl konlinuierIicl ein 125 kHz SignaI auf die SpuIenanlenne aus. Wird ein Tag in das IeId der Anlenne gebracll, versorgl sicl der auszuIesende Tag daruber mil Lnergie. CIeiclzeilig sendel der Tag seine Dalen in dem er dem Leser unler- scliedIicl slark Lnergie enlziell, so dass eine AmpIiludenmoduIalion enlslell. Das RIID IC LM4O95 gibl das demoduIierle und gefiI- lerle SignaI auf einen inlerruplfaligen Lingang des Mega8. ei diesem SignaI landeIl es sicl um ein Manclesler- codierles (siele AbbiIdung 4) SignaI mil einer ilrale von einem 64leI der Tragerfrequenz. Ausgelend von 125 kHz Tragerfrequenz sind das knapp 2OOO bil/s. ei jedem IegeIveclseI des manclesler-codierlen SignaIs vird nun eine Inlerruplrouline im C aufgerufen. Trolz des kIeinen C vurde aIs Irogrammierspracle C++ vervendel, da sicl damil eine selr kompakle und ubersicllIicle Slruklur erreiclen Iassl. Kernsluck der Iirmvare biIdel die KIasse ,Rfid. ei jedem Aufruf der INTO-Inlerruplrouline durcl das SignaI des RIID-ICs vird die vergangene Zeil zum vorlerigen IIankenveclseI uberprufl, isl die Zeil kurzer aIs 3/4 der ilzeil, vird die IIanke ausgebIendel und die Rouline verIassen. AndernfaIIs vird eine 16-bil VariabIe um ein il nacl Iinks gescloben und, faIIs der IegeI auf O Iiegl, mil 1 veroderl. Nacl jedem eingeIesenen il vird nun dieses IIIO-Regisler auf das Vorlandensein eines Tagleaders (9x 1-ils) uberprufl, und gegebenfaIIs ein ilzalIer auf O geselzl. Isl ein ganzes yle voII, vird dieses der RIID KIasse ubergeben. Nacldem 64 il eingeIesen vurden, verden zunaclsl die SpaIlen- und ZeiIenparilalsbils uberprufl. Sind aIIe Iarilalsbils korrekl, verden seIbige ausgebIendel, so dass 4O ,Nellodalenbils verbIeiben. Diese Transponderdalen verden nun der KIasse ,Tagmanager ubergeben. Dorl verden aus dem LLIROM immer 5 yle ausgeIesen und mil den dekodierlen Dalen vergIiclen, soIange bis die Dalen ubereinslimmen oder das Speiclerende (OxIIIIIIIIII) erreicll vurde. HandeIl es sicl beim dekodierlen Transponder um den erslen SpeiclerpIalz im LLIROM, vird nocl ein AdminislralorfIag geselzl, so dass veilere Transponder linzugefugl verden konnen. Das 64 kbil groe I2C-LLIROM kann bis zu 1638 Transponder speiclern. HEADER {9 x 1) DO D1 D2 D8 ZP D4 Db D6 D1 ZP D8 D9 D1O D11 ZP D12 D18 D14 D1b ZP D16 D11 D18 D19 ZP D2O D21 D22 D28 ZP D24 D2b D26 D21 ZP D28 D29 D8O D81 ZP D82 D88 D84 D8b ZP D86 D81 D88 D89 ZP SP SP SP SP STOP 6 Abb. 6: BestckungsmoduI unten Abb. 7: BestckungsmoduI oben [ PFO.FCTo ] RFID Turnodu | SLeIah Seege Datenaufbau der Transponder Links Die vervendelen RIID-Transponder enllaIlen eine eindeulige, 64-il Iange ilfoIge, die foIgendermaen aufgebaul isl: die erslen neun ils sind aIIe auf 1 geselzl und sleIIen den Header dar. Dieses ilmusler kann aufgrund der eingesclobenen Iarilalsbils nirgendvo sonsl in den Dalen auflauclen, und kann so zur Synclronisalion auf den Dalenanfang benulzl verden. Nacl dem Header foIgen 1O x 4 Dalenbils, jeveiIs gefoIgl von einem Iarilalsbil das aus den jeveiIs Ielzlen 4 ils erreclnel vird (ZeiIenparilal, ZI). Nacl diesen zeln Cruppen sclIieen sicl nocl 4 veilere Iarilalsbils an, veIcle aus den 4 SpaIlen der Dalenbils erreclnel verden (SpaIlenparilalen, SI). Das Ielzle il isl das Slopbil und isl fesl auf O geselzl. Die Antenne Line passende Leseanlenne fur das ModuI kann selr einfacl seIbsl lergesleIIl verden. Man nelme z. . O,2 mm KupferIackdrall, von dem ca. 1OO Windungen auf einen runden Korper mil ca. 45 mm Durclmesser gevickeIl verden. Die Induklivilal der SpuIe Iassl sicl dann mil HiIfe eines L-Melers oder aIlernaliv mil einem Iunklionsgeneralor und einem OsziIIoskop lerausfinden. Wer keine Anlenne seIber vickeIn moclle, kann nalurIicl aucl auf ferlige SpuIen zuruckgreifen |3j. In jedem IaII mussen in der SclaIlung C1-C4 und R9 diese an die Anlenne angepassl verden. C3 und C4 biIden zusammen mil der AnlennenspuIe einen Seriensclvingkreis, so dass sicl eine Resonanzfrequenz von ca. 125 kHz ergibl. C1 und C2 dienen aIs kapaziliver SpannungsleiIer, um das reIaliv groe AnlennensignaI auf ein fur das IC verlragIicle Ma zu verkIeinern. R9 dienl dazu, bei selr niederolmigen Anlennen, die Cule kunslIicl zu verkIeinern. Auf der HersleIIerseile des RIID ICs findel sicl eine LxceI-TabeIIe, die die ereclnung der auleiIe elvas vereinfacll. Die Anlenne kann in gevissen Crenzen mil einem KabeI vom ModuI abgeselzl verden, olne dass sicl die Resonanzfrequenz dramaliscl anderl. In einem Versucl mil 7O cm O,5 mm DoppeIIilze zvisclen Anlenne und ModuI ging die Resonanzfrequenz um ca. 1 kHz nacl unlen. 1. ArlikeI, SclaIlpIan und Soflvare bei mikroconlroIIer.nel hLLp://www.nkrocohLroer.heL/arLces/RFID_T%C8%BCrnodu 2. DalenbIaller zum RIID IC 4O95 und den Transpondern hLLp://www.enncroeecLrohc.con 3. Menling MikroeIeklrik CmbH & Co KC hLLp://www.spueh.con 4. Diskussion zum ArlikeI bei mikroconlroIIer.nel hLLp://www.nkrocohLroer.heL/Lopc/1O6299 7 Abb. 1: CPLD Baustein - PLCC-Gehuse AbbiIdung 2: SRAM - DIP-Gehuse EinIeitung SimpIeCPU Ein SeIbstbau-Mini-Prozessor aus der BasteIstube MichaeI SchferIing <m.schaeferIing@t-onIine.de> | Benedikt Sauter <sauter@ixbat.de> LinmaI seIbsl einen kIeinen Irozessor bauen, veIcler sclIieIicl aucl in Iorm reaIer Hardvare exislieren soII und anland dessen der Aufbau und die Iunklionsveise eines minimaIen Reclner-Syslems veransclauIicll vird dies var die iniliaIe Idee zu diesem kIeinen Irojekl. Zunaclsl soII der Leser kurz in den Aufbau und die Iunklionsveise eines minimaIen Reclnersyslems eingefulrl verden. Hierbei verden die benoliglen Komponenlen vorgesleIIl und deren enl- spreclende ReaIisierung in unserem Irojekl. Im zveilen Sclrill soII fur unser Syslem eine IIallform in Iorm eines Demo-oards gesclaffen verden. Das lieraus resuIlierende Design soIIle ubersicllIicl und einfacl aufgebaul sein, damil es mil mogIiclsl venig Aufvand und aucl gunslig naclgebaul ve r de n kann. Mchae SchaIerhg & BehedkL SauLer | SnpeCPU [ PFO.FCT ] Theorie: Was wird bentigt? CIUs verricllen seil jeler ilre Arbeil aIs zenlraIer eslandleiI eines jeden IC, vobei die Leislungsfaligkeil eines Syslems meisl am (bzv. an den) vervendelen Irozessor(en) gemessen vird. Canz aIIgemein isl eine CIU ein auleiI, veIcles Irogramme ausfulren kann. Um ein Irogramm ausfulren zu konnen, verden von der CIU Informalionen in Iorm von Dalen und den darauf auszufulrenden efelIen benoligl. Diese sind in einem Dalenspeicler permanenl oder lemporar gespeiclerl, in einem IC isl dieser Speicler durcl die Speiclerlierarclie reaIisierl: IeslpIalle, Arbeilsspeicler und Cacle Iiefern lier die benoliglen Dalen. Um vernunflig mil einem Compuler arbeilen zu konnen, finden nalurIicl aucl Lin- und Ausgabegerale vie Taslalur, Maus und Monilor ilren Linsalz bei gangigen Syslemen. Docl veIcle der soeben vorgesleIIlen Komponenlen verden fur unser minimaIes Syslem lalsaclIicl benoligl` Der zenlraIe eslandleiI isl seIbslverslandIicl eine CIU. Zudem benoligen vir elvas Speicler, um efelIe und Dalen laIlen zu konnen. Man konnle, sofern das Syslem IedigIicl ein Irogramm ausfulren soII und valrend des elriebs keine enulzerinleraklion erforderl, auf Lin- und Ausgabegerale verzicllen. Vorausselzung lierfur isl, dass vor dem Slarl des Syslems die noligen Informalionen im Speicler bereilslelen. Hierfur isl eine SclnillsleIIe vom IC aIs Debug- und IrogrammiersclnillsleIIe direkl zum Speicler des neuen Irozessors lin vunsclensverl, da somil zu eginn die efelIe und Dalen gesclrieben und nacl eendigung des Irogramms, die Lrgebnisse aus dem Speicler geIesen verden konnen. Umsetzung Lin ZieI unseres Irojekles isl es, einen LinbIick in die Teclnik zu erfalren, die linler den einzeInen Komponenlen sleckl. Ls bielel sicl aIso an, keine ferlige CIU (vie z.. einen AVR, ARM & Co.), sondern eine freie, offene (und vomogIicl in VHDL besclriebene) CIU zu vervenden, die evenlueII aucl nocl erveilerl verden kann. Iur ein soIcles Vorlaben bielel sicl konfigurierbare Logik aIs ,Trager der CIU an. IaIIs der Leser nocl keine Lrfalrung mil CILDs oder IICAs sammeIn konnle, mocllen vir an dieser SleIIe auf den ArlikeI ,XSVI IIayer vill USprog der Ielzlen Ausgabe dieses }ournaIs verveisen. Auf die Irage, veIcle CIU genau vir denn nun in unserem Design arbeilen Iassen, voIIen vir in einem spaleren Absclnill dieses ArlikeIs eingelen. Lin veileres AnIiegen beim Design des oards isl es, dass die Hardvare mil venig Aufvand seIbsl lerzusleIIen isl. Aus diesem Crund enlsclieden vir uns fur die Vervendung eines XC9572-CILDs von XiIinx, da diese ausleine in ILCC-auform er- laIlIicl sind. Diese ermogIicll einfacles Lolen der IC- Iassung und Ieiclles Tausclen des CILDs, faIIs docl maI elvas sclief gelen soIIle. Weilerlin enlsclieden vir uns lier fur die 5VoIl-Varianle, da dies die Slromversorgung und die Inleraklion mil dem vervendelen RAM-auslein vereinfacll. IreisIicl sclIagl diese Komponenle mil elva funf Luro zu ucle. Somil sind vir sclon an der zveilen viclligen Komponenle angeIangl, dem Speicler. Iur Designs dieser Croe isl SRAM eine gule WalI, da die Ansleuerung dieser Speiclerarl mil selr venig Aufvand verbunden isl. }edocl Iiegl der Ireis lier im VergIeicl zu anderen Speiclervarianlen vesenlIicl loler. Iur unsere Zvecke genugen jedocl 32Kyle RAM, veIcles zur Zeil in DIL-auform elvas knapp uber einen Luro koslel. FMEFLLFLPFO.FCTo.NFT .OLFN/ ' / 'OO8 Bezeichnung Wert C1, C2, C8, C4, Cb, C6, C8 1OOhF C1 1OuF D1 Dode 1N4OO1 IC1 Xhx XC9b12-PC44 (bV) IC2 Spahhuhgsreger 18LOb LED1, LED2, LED8, LED4 LeuchLdodeh CC1 Cuarz 1.OOO_MHz R1, R2, R8, R4 21O_Chn Rb 41O_Chn R6 1OK_Chn S1 TasLer U1 SRAM 82Kx8 DIL28 X1 HohsLecker-Buchse X2 WahhehsLecker 1O-Po. X8 WahhehsLecker 84-Po. 8 BestckungsIiste ,simpIeCPU" AbbiIdung 3: SchaItpIan ProzessorpIatine [ PFO.FCT ] SnpeCPU | Mchae SchaIerhg & BehedkL SauLer Die WahI der CPU Nacldem vir nun vusslen, dass vir eine CIU bauen mocllen, die aucl nocl in einen CILD passl, macllen vir uns zunaclsl einmaI auf die Sucle. Aufgrund der venigen Logikgaller, die der gevalIle CILD zur Verfugung sleIIl (72 MakrozeIIen mil 16OO Callern), isl die AusvalI, an bereils im QueIIcode vorlandenen CIUs, Ieider nicll selr gro. Wir slieen jedocl auf ein Irojekl, das uns direkl begeislern konnle: ei opencores.org vurde von Tim osclke eine minimaIe CIU (,MCIU A minimaI CIU for a CILD) veroffenlIicll, die in einem CILD mil 32 MakrozeIIen IIalz findel |1j. Somil vurde mil dieser ReaIisierung nocl ausrei- clend IIalz fur den Speicler- Irogrammer bIeiben, veIcler ja ebenfaIIs im CILD reaIisierl verden soIIle. Des Weileren isl die MCIU bereils ausfulrIicl geleslel (slell unler der CIL), isl sovolI aIs VeriIog-, aIs aucl aIs VHDL-Varianle erlaIlIicl und zudem isl das Irojekl selr gul dokumenlierl. Die SchaItung Nacldem nun aIIe Anforderungen de- finierl sind, felIl nur nocl die passende SclaIlung fur den Versuclsaufbau. Der CILD- und SRAM-auslein biIden die zenlraIen Komponenlen des Syslems. Wie bereils ervalnl, verzicllen vir nicll auf den Komforl einer Lin- und Ausgabeeinleil und spendieren daler dem oard drei Leuclldioden fur spalere Ausgaben. Celaklel vird unser Irozessor von einem einfaclen QuarzosziIIalor, vobei dieser sleckbar monlierl vird, um den Irozessor sclneIIer oder Iangsamer Iaufen Iassen zu konnen. Die MaximaIgesclvindigkeil vird spaler zum einem vom Design des Irozessors und zum anderen von der Leislungsfaligkeil des CILDs ab- langig sein. Iur das Irogrammieren des CILD-ausleins und das spa- lere Laden der Irogramme befindel sicl ein 1O-poIiger AnsclIuss auf der SclaIlung. Die Irogrammierung des CILD- ausleins kann auf diese Weise, vie im ArlikeI ,XSVI IIayer vill USprog besclrieben, durclgefulrl verden. Iur das Laden von eigenen Irogrammen in die neue CIU vird es eine eigene Iirmvare fur den freien UniversaIprogrammierer USprog geben. Neben ei- nem 1O-poIigen AnsclIuss befindel sicl auerdem ein 34- poIiger Wannenslecker auf dem oard. Hier konnen bequem aIIe Adress- und DalenIeilungen abgegriffen verden. Der Tasler S1 isl aIs ReselmogIiclkeil fur den Irozessor gedacll. 9 Abb. 4: PIatine 3D BiIder Ober- und Unterseite FMEFLLFLPFO.FCTo.NFT .OLFN/ ' / 'OO8 AusbIick Mchae SchaIerhg & BehedkL SauLer | SnpeCPU [ PFO.FCT ] ZieI dieses ArlikeIs isl es, die Idee und aIIe viclligen Komponenlen des Irojekls simpIeCIU - die CIU, den AssembIer und das Irogrammierinlerface - vorzusleIIen. is zur naclslen Ausgabe gibl es fur uns zvar nocl eine Menge zu lun, aber vir sind nocl ganz guler Dinge. Iur Anregungen, Ideen oder sonslige Kommenlare konnl Ilr eucl gerne bei uns meIden. Links 1. MCIU A minimaI CIU for a CILD hLLp://opehcores.org/pro|ecLs.cg/web/ ncpu/overvew 2. USprog Irogrammer hLLp://www.enbedded-pro|ecLs.heL/ usbprog Zu guler Lelzl felIl nocl die Slromversorgung der SclaIlung, veIcle mil einem einfaclen SpannungsregIer vom Typ 78O5 reaIisierl vorden isl. Die voIIendele IIaline soII in elva derarl ausselen, vie in AbbiIdung 4 dargesleIIl. 10 ${GRASSHOPPER}/build_avr32/linux-2.6.24-icnova/arch/avr32/boards/ icnova/icnova_base.c Abb. 1: SchaItpIan Grasshopper SD/MMC- Karte at32_add_device_mci(0, &mci0_data); static struct mci_platform_data __initdata mci0_data = { .detect_pin = GPIO_PIN_NONE, .wp_pin = GPIO_PIN_NONE, }; ${GRASSHOPPER}/build_avr32/ linux-2.6.23-icnova/ make menuconh g EinIeitung SD-KartenIeser am Grasshopper {AVR32) Wie man einen SD-KartenIeser anschIiet MarceI BeItz <marceI@beItz.info> [ PFO.FCT ] SD-KarLeheser an Crasshopper (AVR82) | Marce BeLz AIs icl in der Ielzlen Ausgabe des ,Lmbedded Irojecls }ournaI ein iId mil dem dazugelorigen ArlikeI uber das TIT-DispIay am Crasslopper (AVR32) geselen labe, sland eindeulig fesl, dass icl dies aucl naclbauen muss. Da jedocl der AnsclIuss der SD-Karle nur im Iolo sicllbar, jedocl nicll besclrieben var maclle icl micl an die Arbeil um dies lerauszusuclen und naclzubauen. Hardware-ImpIementierung Treiber aktivieren Die Aklivierung der nolvendigen Treiber im KerneI isl kein Hexenverk. In der foIgenden Dalei... ...muss nur die Slruklur vor der ,selup_board Iunklion eingefugl verden: Der ,.delecl_pin und ,.vp_pin sind in dieser Varianle nicll angesclIossen, und deslaIb auf CIIO_IIN_NONL geIegl. AnsclIieend muss nur nocl der Aufruf der Iunklion innerlaIb der HaupliniliaIisierungsfunklion icnova_inil eingefugl verden. }elzl isl aIIes nolvendige im KerneI aklivierl, damil dieser eine Kommunikalion mil der Karle im KarlenlaIler aufbauen kann. Um eine SD-Karle am Crasslopper anzu- sclIieen (siele AbbiIdung 1), isl dabei das Sclvierigsle, sicl einen SD-KarlenlaIler zu besorgen. Daneben sind nur nocl ein paar Widerslande nolig. Die Werle fur diese Widerslande unlerscleiden sicl, je nacldem, vo man im Inlernel danacl sucll. Icl labe micl daler an den SclaIlpIan des NCW1OO zu laIlen. StckIiste b x R1, R2, R8, R4, Rb 41 KChn 1 x J1 SD- KarLehhaLer KerneI bersetzen und starten Vorausselzungen zum Slarlen und fur die erslen Lxperimenle des KerneIs sind in diesem IaII ein funklionierender TITI- und NIS-Server zum Uberlragen des KerneIs und der ModuIe. Im Inlernel findel man genug QueIIen in denen besclrieben isl vie man sicl soIcl Server inslaIIierl. Nacldem die QueIIen angepassl vurden, sind an der KerneI-Konfiguralion nur nocl zvei kIeine Anderungen durclzufulren. Dazu muss in das Verzeiclnis geveclseIl und dorl ausfulrl verden. An dieser SleIIe vird der Supporl fur VIAT aklivierl, vas den Zugriff auf SD-Karlen mil dem IAT-Daleisyslem erIaubl. Die Sclrille im KerneImenu Iaulen vie foIgl: ,IiIe Syslems --->, ,DOS/IAT,NT IiIesyslems ---> veclseIn und das nolige ModuI aklivieren (siele AbbiIdung 2). ' / 'OO8 .OLFN/ FMEFLLFLPFO.FCTo.NFT 11 AbbiIdung 2: VFAT AbbiIdung 3: MMC/SD Treiber make ARCH=avr32 CROSS_COMPILE=avr32-linux- INSTALL_MOD_PATH=${NFS}/module modules_install cp arch/avr32/boot/images/uImage /tftpboot FMEFLLFLPFO.FCTo.NFT .OLFN/ ' / 'OO8 make ARCH=avr32 CROSS_COMPILE=avr32-linux- uImage Marce BeLz | SD-KarLeheser an Crasshopper (AVR82) [ PFO.FCT ] SclIieIicl muss nocl das ModuI fur die SD-Karlen aklivierl verden: ,Device Drivers --->, ,MMC/SD card supporl ---> (siele AbbiIdung 3).
Nun mil ,Lxil voIIslandig aus der Konfiguralion lerausgelen und vor dem eenden speiclern. Der uiId-Vorgang vird mil geslarlel. Da aIIe aIs ModuIe ausgevalIl vorden sind, bIeibl niclls anderes ubrig, aIs nocl die ModuIe zu kompiIieren: Dabei verden die ModuIe in das - durcl das NIS - freigegebene Verzeiclnis kopierl. Der KerneI muss nocl in das TITI-Verzeiclnis kopierl verden, mil: 12 Thank you for using In-Circuit ICNova icnova login: root BusyBox v1.5.0 (2008-04-24 11:31:03 CEST) Built-in shell (ash) Enter ,help` for a list of built-in commands. # portmap # mount -t nfs 192.168.x.x/${NFS} /mnt # cp -a /mnt/module/* / # modprobe atmel-mci # modprobe mmc_block # modprobe vfat ICnova> setenv serverip 192.168.x.x #die IP Adresse des Servers ICnova> setenv ipaddr 192.168.x.y #die IP Adresse des grasshoppers ICnova> tftpboot 11000000 uImage ICnova> bootm AbbiIdung 4: BeispieIsession }elzl den Crasslopper ansclIieen und boolen. Im u-bool den Vorgang mil ,SIACL abbreclen und foIgende Kommandos eingeben: Wenn das Syslem geboolel isl und man sicl angemeIdel lal, isl es erforderIicl, die neuen ModuIe - via NIS - in das Syslem zu kopieren. Dazu: (Der porlmap-efelI isl dazu da, um sicl auf den NIS-Server verbinden zu konnen) }elzl soIIle eigenlIicl aIIes funklionieren und man kann die SD-Karle mounlen (siele AbbiIdung 4). ' / 'OO8 .OLFN/ FMEFLLFLPFO.FCTo.NFT [ PFO.FCT ] SD-KarLeheser an Crasshopper (AVR82) | Marce BeLz
/e /rie in diese .ourna senen uner
der reien Creaiv Coons i.en.. Lie Tee duren wie beann von Ooenoource o dii.ier und in die eiene /rbei i aue noen werden. Lie ein.ie Eedinun is. dass der neue Te ebenas wieder uner der eicnen i.en.. uner der dieses He sen. veroenicn werden uss. und .u sa.icn au den oriinaen /uor verwiesen werden uss. /usenoen Firen und Fienwerbun. Fceo wnere onerwise noed. nis wor is icensed under no.//creaivecoons.or/icenses/b,/o.O/ /usenoen Firen und Fienwerbun. Enbedded Pro|ecLs: Dp.-IhI. (FH) BehedkL SauLer AuI den Kreuz 2O D-861b2 Augsburg TeeIoh: +49 821 81946-28 TeeIax: +49 821 81946-24 Ma: |ourha@enbedded-pro|ecLs.heL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AhzegengchkeLeh uhd PressLe auI AhIrage va Ma. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Herausgeber: BehedkL SauLer CesLaLuhg/LayouL/SaLz: Das-MedehkoekLv.de ArLkeIoLos: Cauda LehhdorIer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . VerIIehLchuhg: 4x / Jahr AusgabeIornaLe: PDF / PrhL AuIage PrhL: 2bOO SLk. EhzeverkauIspres: 1,OO EUR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Des sL eh Cpeh-Source Pro|ekL. We deses Magazh abohherL werdeh kahh sL auI der IhLerheLseLe beschrebeh. www.enbedded-pro|ecLs.heL/|ourha . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FP. Foonacnweise Tie. endi naa. sooinsudios /n.eie. Faona Hei.Niceone,. dio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . [ MPFFooLM ] 13 Das Vorhaben und die Idee AIIer Anfang ist schwer AktueIIer Stand des Projektes BauteiIe Wert Beschreibung Bauform C1,C2 22p KohdehsaLor SMD C12O6 C8,C4,Cb 1OOh KohdehsaLor SMD C12O6 IC1 AVR ATMECA16 ALne AVR TCFP44 JP2-JP9 - PINHEAD 1XO8 JP11 - PINHEAD 1XO2 JP12-JP14 - PINHEAD 1XO1 JP1 - AVR-JTAC-1O Ph 2XOb JP1O - AVR-ISP-1O Ph 2XO4 L1 1OuH Spue 22OO-1b.24 C1 16 Mhz CRYSTAL HC49U-V R1 1OK WdersLahd SMD R12O6 S1 - TasLer - Im Ralmen des Lmbedded-Irojecls }our- naIs soII ein freier MikroconlroIIerkurs saml UnlerIagen vie eispieIqueIIlexle, ScluIungsunlerIagen und einem passenden HardvarepooI enslelen. Der Kurs vird von der MikroconlroIIer Irojeklgruppe (mcIC) des Augsburger Compulerforums geIeilel und loffenlIicl finden sicl beim Lesen des ArlikeIs nocl vieIe Inleressenlen, die dieses Irojekl in irgendeiner Arl und Weise unlerslulzen und daran milvir- ken voIIen. In den foIgenden Ausgaben des }ournaIs vird uber das Irojekl und die Lrgebnisse veilerlin bericllel. ZieI isl IelzlendIicl, dass eine gule SammIung saml passendem ,Handbucl fur den Linslieg in die MikroconroIIer-WeIl, frei zum DovnIoad angebolen verden kann. eleimalel isl das Irojekl lier: hLLp://www.nkrocoh- Lroerkurs.de Open-Source MikrocontroIIer Kurs ArtikeIreihe MikrocontroIIer Projektgruppe {mcPG) des Augsburger Computerforums MkrocohLroer Pro|ekLgruppe (ncPC) | Cpeh-Source MkrocohLroer Kurs [ PFO.FCT ] Ofl isl der Zugang in die WeIl der kIeinen HeIfer sclvierig. AIIein die groe Aus- valI an Anbielern und deren Lnlvick- Iungsboards isl fur den Anfanger sclver zu durclsclauen. So bielen nicll nur die HersleIIer |1,2j ilre eigenen Losungen an. Linige HersleIIer laben sicl spezieII auf LnlvickIungsboards speziaIisierl |3j. Aucl vieIe LIeklroniklandIer |4j laben eigene SclaIlungen im Irogramm. Die meisl pro- prielaren Losungen bielen ofl kompIexe oards an. SinnvoIIe augruppen auf ei- nem LnlvickIungsboard, die fur zukunflige Ausbauslufen vorgeselen sind, konnen am Anfang eler vervirrend sein. Crade der Linsleiger vei aber gar nicll, vas er genau braucll. Die ricllige Aus- valI im DsclungeI der Angebole zu lref- fen, isl deslaIb fur iln sclver. ei seiner AusvalI kann man aIs Linsleiger kaum beurleiIen, vas virkIicl sinnvoII isl. Ls vare aIso vunsclensverl, dass man mil einem selr einfaclen Linslieg beginnl. Die nolvendige Hardvare soIIle aber spaler aucl zu groeren SclaIlungen ausgebaul verden konnen. Line Losung versucll die Mikrocon- lroIIer Irojeklgruppe (mcIC) des Augs- burger Compulerforums (ACI) |5j nun zu enlvickeIn. ZieI der LnlvickIung sind slan- dardisierle Iunklionseinleilen aIs ModuIe fur Sleckbreller |6j. Dabei vird zu jedem Hardvare-ModuI aucl das passende Sofl- vare-ModuI enlvickeIl. Die Kombinalion erIaubl es dem enulzer, seine SclaIlung vie bei einem Lego-Syslem sclneII auf- zubauen und milleIs der Soflvare Sclrill- fur-Sclrill zu leslen. ei diesem ileraliven Vorgelen konnen IelIer in der Hardvare sclneII isoIierl und beloben verden. In diesem ArlikeI soII zunaclsl das Mi- kroconlroIIer-ModuI naler vorgesleIIl verden. Die veileren ModuIe foIgen in den naclslen Ausgaben des ,Lmbedded- Irojecls }ournaIs. Das CIU ModuI vurde mogIiclsl einfacl aufgebaul (s. auleiIeIisle). Um IIalz zu sparen, vird ein AVR Almega16 im TQII44 Celause vervendel. is zur endguIligen Verabscliedung des ModuIs vird er unler Umslanden gegen einen IIN-kompalibIen Almega32 ausgelauscll. Die VCC und CND Iins sind mil einem AbbIockkondensalor (1OOnI) slabiIisierl. Der exlerne Quarz laklel mil 16 MHz. SamlIicle Iorls (IO Ausgange) sind jeveiIs fur das Sleckbrell nacl unlen milleIs SliflIeislen ausgefulrl. Damil isl die Konlaklierung sicler gesleIIl und das Mo- duI slell fesl auf dem Unlergrund. Um die Messung und VerkabeIung der I/ O-Iins zu erIeicllern, sind auf der Ober- seile uclsenIeislen angebracll. Lin Resel FMEFLLFLPFO.FCTo.NFT .OLFN/ ' / 'OO8 Open-Source OnIine-MikrocontroIIer-Kurs / 'OO8 .OLFN/ FMEFLLFLPFO.FCTo.NFT [ PFO.FCT ] Cpeh-Source MkrocohLroer Kurs | MkrocohLroer Pro|ekLgruppe (ncPC) SclaIler ermogIicll den Neuslarl der AlmeI CIU. Die Lnlslorung des ADC (AnaIog DigilaI WandIer) vurde mil einer koslen- gunsligen SpuIe reaIisierl. Zur Irogram- mierung (IIaslen) isl eine ISI- und }TAC SclnillsleIIe vorlanden. KIeinleiIe vie Wi- derslande und Kondensaloren kompIellie- ren den Aufbau. Melr isl auf dem ModuI nicll vorlanden. is zur naclslen Ausgabe des ,Lmbedded- Irojecls }ournaI im Dezember 2OO8 vird das Design nocl veiler verfeinerl. Iur VerbesserungsvorsclIage isl die Mikrocon- lroIIer-Cruppe immer dankbar. Wie bereils ervalnl vird in Zusammenarbeil mil dem ,Lmbedded-Irojecls }ournaI und dem ACI vird dieser OnIine-Kurs fur den Linslieg in die MikroconlroIIer-WeIl enlvi- ckeIl. Inleressierle TeiInelmer und Leule die den Kurs mil geslaIlen voIIen, konnen sicl unler hLLp://www.nkrocohLroerkurs.de meIden. Arbeil gibl es genug :-). Die nolvendige Hardvare vird spaler ebenfaIIs uber die Inlernelseile angebolen. Durcl den einfaclen Aufbau kann der Ireis niedrig gelaIlen verden, um aucl ScluIern und Sludenlen den Zugang nicll zu verbauen. QueIIen: 1 - hLLp://www.ncrochp.con/ 2 - hLLp://www.aLne.con/producLs/AVR/ 3 - hLLp://www.onex.con/ 4 - hLLp://www.poh.de/ ATMEL EvauaLohs- Board Versoh 2.O.1 BausaLz 5 - hLLp://www.augusLa.de/AC/ncro/ 6 - hLLp://de.wkpeda.org/wk/Breadboard 7 - hLLp://www.nkrocohLroerkurs.de 15 JTAGICE-mkII-KIon Zwischenbericht zur aktueIIen EntwickIung Martin Lang <martin.Iang@rwth-aachen.de> MarLh Lahg | JTACICE-nkII-Koh [ PFO.FCT ] Die }TACICL-mkII-KIon Iirmvare fur den USprog Adapler ermogIicll den Zugriff auf MikroconlroIIer der AVR IamiIie uber deren }TAC SclnillsleIIe. Walrend die meislen anderen Naclbaulen der AlmeI }TAC Adapler einen Naclbau der Hard- vare darsleIIen, der mil der originaI AlmeI Iirmvare belrieben vird, isl dieser Ansalz fur den USprog nicll mogIicl. Die enlvickeIle Iirmvare sleIIl somil eine kompIelle LigenenlvickIung dar. Da durcl AlmeI IedigIicl das Irogram- mierinlerface und nicll das Debugginginlerface dokumenlierl isl, slulzl sicl die LnlvickIung der Debuggingfunklionen auf Reverse Lngineering und die venigen OnIine verfugbaren Informali- onen. Von der Seile des IC aus geselen, beslell das ZieI darin, das VerlaIlen eines }TACICL-mkII naclzu- bauen, so dass IelzlIicl eine enulzung mil aIIen verbreilelen Werkzeugen fur AVR MikroconlroIIer mogIicl isl. Die Iirmvare befindel sicl derzeil nocl in einem LnlvickIungs- zusland und vird volI nocl einige Zeil bis zu ilrer IerligsleIIung be- noligen. Wir laben uns lrolzdem enlsclieden ein venig daruber zu bericllen, um elvas In- leresse an dem Irojekl zu vecken. Zum jelzigen Zeilpunkl verden im e- lasladium das Irogrammieren via }TAC, sovie grundIegende Debugfunklionen unlerslulzl. Dies umfassl das Slarlen und Sloppen des ConlroIIers, die Nulzung der vier inlegrierlen Hardvarebreakpoinls aIs Irogramm- oder DalenlaIlepunkl, sovie das AusIesen und esclreiben von Regislern, RAM und LLIROM. Daruber linaus sind das AusIesen des Irogramm- speiclers valrend des elriebs und die Ausfulrung von einzeInen Inslruklionen (SingIe-Slep) impIemenlierl. Die MogIicl- keil zum esclreiben des IIasl valrend des IrogrammabIaufs befindel sicl nocl in der LnlvickIung. Somil sind nocl keine Soflvarebreakpoinls mogIicl. Die aklueIIe Tesl- und LnlvickIungs- umgebung beslell aus einem einfaclen LnlvickIungsboard mil einem ATMega16 ConlroIIer. Die Verbindung des 1OpoI-Sle- ckers am USprog mil einem Mega16/32 vird in obiger Crafik gezeigl. Auf dem IC vervende icl Linux, sovie avrdude zum Tesl der Iro- grammierfunklionaIilalen und avarice zusammen mil avr-gdb zum Tesl der Debuggingfunkli- onen. Hierbei fungierl avarice aIs Remole-CD, der die CD- efelIe in das IrolokoII des }TACICL umselzl. In der enulzung mil avrdude unlerscleidel sicl der }TA- CICL-KIon kaum von anderen bekannlen Irogrammierad- aplern. Ls isl IedigIicl im ,- c-Iarameler ,jlag2 aIs Iro- grammiergeral anzugeben. Lin eispieIaufruf von avrdude zum IIaslen des Mega16 in meiner Teslumgebung isl in Code 2 zu finden. Leider sind in der momenlanen LnlvickIungs- plase nocl keine MogIiclkeilen gesclaffen, die }TAC-Taklrale durcl Iarameler zu verringern, so dass ein fabrikneuer Mikro- conlroIIer vorler auf andere Arl und Weise auf einen exlernen Quarz mil lolerer Irequenz umgesclaIlel verden muss. Iunklionieren soIIle es ab einer Taklrale des Irozessors von 8MHz - der Teslaufbau nulzl 16MHz. #include <avr/io.h> unsigned char var; const unsigned char __attribute__((__progmem__)) evar = 5; void Testfunktion() { var++; var++; var++; var++; var++; } int main() { uint16_t test; uint8_t counter = 0;
while (1) { // delay for (test = 0; test < 0xFFFF; ++test); for (test = 0; test < 0xFFFF; ++test); // led togglen PORTD ^= (1<<5); PORTD ^= (1<<6);
Testfunktion(); ++counter; } return 0; } $ avrdude -c jtag2 -P usb -p m16 -U H ash:w:testprog.bin avrdude: usb_open(): cannot read serial number ,No error avrdude: usb_open(): cannot read product name ,No error avrdude: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.16s avrdude: Device signature = 0x1e9403 avrdude: NOTE: FLASH memory has been specih ed, an erase cycle will be per- formed To disable this feature, specify the -D option. avrdude: erasing chip avrdude: reading input h le ,testprog.bin avrdude: input h le testprog.bin auto detected as raw binary avrdude: writing H ash (272 bytes): Writing | ################################################## | 100% 0.60s avrdude: 272 bytes of H ash written avrdude: verifying H ash memory against testprog.bin: avrdude: load data H ash data from input h le testprog.bin: avrdude: input h le testprog.bin auto detected as raw binary avrdude: input h le testprog.bin contains 272 bytes avrdude: reading on-chip H ash data: Reading | ################################################## | 100% 0.33s avrdude: verifying ... avrdude: 272 bytes of H ash verih ed avrdude: safemode: Fuses OK avrdude done. Thank you. 16 Code 2: avrdude fIasht unter Nutzung des JTAGICE Code 1: Programmausschnitt eines Testprogramms ' / 'OO8 .OLFN/ FMEFLLFLPFO.FCTo.NFT [ PFO.FCT ] JTACICE-nkII-Koh | MarLh Lahg FIashen Soveil sleIIl das jedocl keine Uberra- sclung dar - immerlin konnen vir die gIeicle IunklionaIilal bei der Nulzung der ISI SclnillsleIIe mil dem AVRISImkII- KIon erreiclen. Der VorleiI bei der Nulzung von }TAC im VergIeicl zur ISI SclnillsleIIe Iiegl im OnClipDebug-Modus der AVR-MCUs. Um einen kIeinen AusbIick zum ZieI der Iirmvare zu ermogIiclen, moclle icl an 17 $ ./avarice -2 --jtag usb :4242 AVaRICE version 2.7.20071102, Mar 21 2008 15:51:47 Defaulting JTAG bitrate to 1 MHz. Make sure that the target frequency is at least 4 MHz or you will likely encounter failures controlling the target. JTAG conh g starting. Found a device: JTAGICEmkII Serial number: 00:a0:00:00:0d:3f Reported JTAG device ID: 0x9403 Conh gured for device ID: 0x9403 atmega16 JTAG conh g complete. Preparing the target device for On Chip Debugging. Disabling lock bits: LockBits -> 0xff Enabling on-chip debugging: Extended Fuse byte -> 0xff High Fuse byte -> 0x19 Low Fuse byte -> 0xff Waiting for connection on port 4242. Connection opened by host 127.0.0.1, port 58441. $ avr-gdb testprog.elf GNU gdb 6.7.1 Copyright (C) 2007 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type ,show copying and ,show warranty for details. This GDB was conh gured as ,--host=i686-pc-linux-gnu --target=avr... (gdb) target remote :4242 Remote debugging using :4242 0x00000000 in __vectors () (gdb) break test.c:28 Breakpoint 1 at 0x126: h le test.c, line 28. (gdb) break test.c:7 Breakpoint 2 at 0x9c: h le test.c, line 7. (gdb) c Continuing. Breakpoint 1, main () at test.c:28 28 PORTD ^= (1<<5); (gdb) c Continuing. Breakpoint 2, Testfunktion () at test.c:7 7 var++; (gdb) c Continuing. Breakpoint 1, main () at test.c:28 28 PORTD ^= (1<<5); (gdb) c Continuing. Breakpoint 2, Testfunktion () at test.c:7 7 var++; (gdb) print var $1 = 191 ,` (gdb) c Continuing. Breakpoint 1, main () at test.c:28 28 PORTD ^= (1<<5); (gdb) print counter $2 = 2 ,\002` (gdb) c Continuing. Breakpoint 2, Testfunktion () at test.c:7 7 var++; (gdb) c Continuing. Breakpoint 1, main () at test.c:28 28 PORTD ^= (1<<5); (gdb) print counter $3 = 3 ,\003` (gdb) delete breakpoints Delete all breakpoints? (y or n) y (gdb) c Continuing. Program received signal SIGINT, Interrupt. 0x000000fa in main () at test.c:25 25 for (test = 0; test < 0xFFFF; ++test); (gdb) MarLh Lahg | JTACICE-nkII-Koh [ PFO.FCT ] dieser SleIIe bereils einige grundIe- gende IunklionaIilalen vorsleIIen, die icl erfoIgreicl leslen konnle. AIs erslen viclligen Sclrill muss man dazu das OCD-Iuse im MikroconlroIIer selzen. AnsclIieend kann man mil avarice eine Verbindung zum }TACICL aufbauen. Hierbei ubergibl man avarice den Iorl, auf veIclem es auf eingelende CD Verbindungen varlen soII, durcl z. . ,:4242. Nacl dem Slarl von avarice laIl der }TACICL das Iaufende Irogramm an und resellel den ConlroIIer. Debuggen An diesem Iunkl angeIangl kann man nun den avr-gdb slarlen und das LLI-inary mil Debuginformalionen zum Irogramm Iaden. Durcl Lingabe des efelIs ,largel remole :4242 verbindel man nun den Debugger mil avarice, vorauflin sicl diese synclronisieren. Der Debugger zeigl nun an, dass sicl das Irogramm am Slarlveklor (Adresse O) befindel. Zur Demonslralion der Anvendung nulze icl die CeIegenleil und Iege einen HaIlepunkl innerlaIb der Irogramm- sclIeife sovie in der Teslfunklion fesl. Slarlel man nun das Irogramm, so zeigl der Debugger kurz darauf vieder an, dass es am HaIlepunkl angelaIlen lal. Nun isl es mogIicl, sicl die Werle der VariabIen anzusclauen und im LinzeIsclrillmodus durcl das Irogramm zu gelen. Lin kIeiner Aussclnill der MogIiclkeilen isl lier abge- druckl. SoIIle dies euer Inleresse geveckl laben und ilr Lusl bekommen labl, die veilere LnlvickIung zu unlerslulzen oder venn einfacl nur Iragen sleIIen voIIl, dann konnl ilr micl gerne konlaklieren. Links 1. SVN Reposilory hLLp://svh.beros.de/svhrooL/repos/us- bprog/Lruhk/|Lagcenk2koh/ 2. Iirmvare inary hLLp://svh.beros.de/svhrooL/repos/us- bprog/Lruhk/|Lagcenk2koh/ |Lagce2.bh 3. oolIoader fur USprog hLLp://svh.beros.de/svhrooL/repos/us- bprog/Lruhk/usbprog_base/ Irnware/usbprog_base.hex 4. Infos Rund um die Iirmvare hLLp://www.enbedded-pro|ecLs.heL/ hdex.php?page_d=168 18 AbbiIdung 1: SchaItpIan Cuee, aus der de Idee uhd Tee der SchaLuhg ehLhonneh wurdeh: KIaus SchIenzig und WoIfgang StammIer ,EIektronikbasteIn im Wohnbereich" MLar- verag der DDR 1984 ' / 'OO8 .OLFN/ FMEFLLFLPFO.FCTo.NFT [ PFO.FCT ] MeodegeheraLor | Juus Weber EinIeitung 15 Ton MeIodiegenerator JuIius Weber Icl moclle in diesem ArlikeI eine SclaIlung vorsleIIen, die besonders gul fur Anfanger geeignel isl, da sie olne MicroconlroIIer auskomml. Der MeIodiegeneralor kann z.. aIs HauslurkIingeI eingeselzl verden, vobei jedocl beacllel verden muss, dass die Leilung zum ,KIingeIknopf gesclirml sein soIIle, um mogIicle SloreinfIusse bei Iangeren Slrecken zu vermeiden. Wer sclon einmaI einen einfaclen Tongeneralor oder eine Sirene gebaul lal vei, dass eine lorbare Irequenz erzeugl vird, die verslarkl und durcl einen Laulsprecler aus- gegeben vird. Die Irequenz isl durcl einen Kondensalor oder einen Widersland veranderbar. In unserem IaII sind es Widerslande, die die Irequenz beslimmen. Lin einfacler Tongeneralor mil einer feslen Irequenz kann Iogisclerveise nur einen Ton viedergeben. Wir voIIen aber 15 Tone nacleinander viedergeben, aIso brauclen vir aucl 15 Irequenzen. Um die Irequenzen zu andern, vurde man bei einem einfaclen Tongeneralor den Widersland oder das Ioli ausveclseIn, veIcles die Irequenz beslimml. Wir nelmen aIso 15 Iolis, damil vir die Irequenzen spaler bequem fur jeden Ton einzeIn einsleIIen konnen. Der Tongeneralor seIbsl muss nicll veiler erkIarl verden. Was man vissen muss, isl, dass er aus einem 74OO beslell und dass eine Sinus-Irequenz erzeugl vird. Der vervendele Tongeneralor verfugl nur uber einen Transislor der aIs Verslarker dienl. Line LaulslarkeregeIung isl nicll vorgeselen. Sie isl aber fur den forlgesclrillenen Anfanger Ieicll mil einem regeIbaren OIV mogIicl. Da dies nun gekIarl isl, sleIIl sicl nun die Irage, vie die Tone nacleinander abgespieIl verden bzv. die Iolis ausgeveclseIl verden. Iur dieses IrobIem komml ein ZalIer zum Linsalz. Da ein inarzalIer benulzl vird, mussen seine Ausgange dekodierl verden. Iur diese Aufgabe isl der 1 aus 16 Decoder 74154 angedacll. An seine Ausgange sind die Iolis angesclIossen. Ls isl nun mogIicl verscliedene Tone auszugeben, da die Widerslandsverle durcl den ZalIer umgesclaIlel verden und so verscliedene Irequenzen im Tongeneralor enlslelen. Docl voler komml die Irequenz, die der ZalIer zalIl` Sie komml von einem Taklgeneralor, der nacl elaligen des Taslers beginnl, ein RecllecksignaI abzugeben und nacl Abgeben des SlopsignaIs vom Decoder verslumml. Wie locl die Irequenz des Taklgeneralors isl, beslimml spaler vie sclneII die MeIodie abgespieIl vird. Die Cesclvindigkeil kann mil dem 1kU Ioli eingesleIIl verden. Wer die SclaIlung belracllel lal vird feslsleIIen, dass der Decoder 74154 16 Ausgange lal, vir aber nur 15 verscliedene Tone erzeugen. Wir konnlen nalurIicl 16 Tone erzeugen, aber vir brauclen einen Ausgang, der das SlopsignaI selzl, veIcles den Taklgeneralor deaklivierl und somil den Irozess des AbspieIens der MeIodie beendel. Man viII ja sclIieIicl nicll, dass die MeIodie unendIicl Iange abgespieIl vird, sondern nur einmaI durcl- Iaufl und dann verslumml. Wer melr Tone laben moclle, kann nalurIicl den ZalIer erveilern und einen 2 (oder melr) ZalIer vom Typ 74193 mil dem gIeiclen Decoder linzufugen. Der Uberlrag vom 1. 74193 vird lierzu einfacl an den Takleingang des 2. ZalIers geIegl. Das Irinzip isl immer dasseIbe. AIs Slromversorgung kann eine allerie oder ein Transformalor mil slabi- Iisierler CIeiclspannung benulzl verden. AbsclIieend isl nocl zu sagen, dass um reIaliv gul kIingende Tone zu erzeugen die Croe vom Kondensalor C3 von 1-3f zu variieren isl. SchaItungs- und Funktionsbeschreibung 19 Baustein Projekt Funktionsweise LPC2148 Lpcusb hLLp://wk.skkeh.h/ hdex.php?LLe=LPCUSB MkrocohLroer hk. USB-SchhLLsLee (ARM1) USBN96O4 Usbh2nc hLLp://usbh2nc.beros.de USB-Brdge (ahsLeuerbar per SPI, Parae-Bus uhd DMA) AT9OUSB1281 AT9OUSB_Irnware hLLp://www.ssaewsk.de/ Msc.hLn.de MkrocohLroer hk. USB-SchhLLsLee (AVR) ATnega8 AVR-USB hLLp://www.obdev.aL/producLs/ avrusb/hdex-de.hLn USB-SLack baserehd auI zwe IC-PorLs des ATMega8 BehedkL SauLer | USB n prakLscheh EhsaLz [ PFO.FCT ] EinIeitung USB im praktischen Einsatz Benedikt Sauter <sauter@ixbat.de> In der erslen Augsgabe des Lmbedded- Irojecls }ournaIs (Ausgabe 1/2OO8) gab es bereils einen US-Crundkurs. Darauflin fraglen einige Leser nacl, ob es vieIIeicll im naclslen Hefl einen ArlikeI geben konnle, in dem konkrel gezeigl vird, vie man sicl eine US-SclnillsleIIe programmierl. Aus diesem Crund moclle icl lier eine kIeine Linfulrung in US-Slacks fur MicroconlroIIer geben. Was ist ein USB-Stack? Iur die Kommunikalion zvisclen Compuler und US-Ceral mussen diverse Zuslande, Anfragen und Anlvorlen vervaIlel ver- den. Da die US-Kommunikalion vesenl- Iicl aufvandiger, aIs beispieIsveise eine einfacle UART Verbindung isl, verden daler auf der Treiberseile im Compuler und in der Iirmvare auf einem US-Ceral vesenlIicl melr VervaIlungsaufgaben erIedigl verden mussen. Im Compuler isl dafur das US-Subsyslem zuslandig und im US-Ceral ein fur die US-SclnillsleIIe passender Slack. Walrend der Lnumeralion mussen Anfragen im US-Ceral abgearbeilel und Dalenslrukluren fur die IIusskonlroIIe sovie Dalenuberlragung vervaIlel verden. }edes US-Ceral muss auf diese Weise die Aufgaben eines nacl der US-Spezifikalion definierlen Cerales ordnungsgema erfuI- Ien. Ablangig vom eingeselzlen auslein Iieferl dieser melr oder veniger die US- InleIIigenz mil. Meislens isl es jedocl so, dass die US- ausleine nur die unlersle IrolokoIIebene von US bearbeilen konnen. AIIes andere muss in einer SoflvarebibIiollek von einem MikroconlroIIer erIedigl verden. Diese SoflvarebibIiollek nennl man im AIIgemeinen US-Slack. VorsteIIung der einzeInen Stacks Zuersl muss ein passender auslein aus- gevalIl verden, der die US-SclnillsleIIe anbielel. Im WesenlIiclen gibl es lier zvei grundsalzIicle Cesclvindigkeilsunlerscliede: Der auslein kann mil Lov- (1,5Mbil/s) und IuIIspeed (12 Mbil/s) Cesclvindigkeil arbeilen, oder er kann sogar zusalzIicl Higlspeed (48OMbil/s) Dalen ververlen. Die zuIelzl genannlen sind jedocl fur einfacle MikroconlroIIersysleme veniger inleressanl und eler seIlen verfugbar, da bei 48O Mbil/s jeder einfacle MikroconlroIIer keine Clance lalle, mil dem Verarbeilen der Dalen linlerler zu kommen. Isl der auslein ausgevalIl, vird vie bereils ervalnl, ein passender US-Slack beno- ligl. Ofl Iiefern HersleIIer seIbsl passende ibIiolleken. Iur Open-Source Irojekle faIIen soIcle jedocl aus, da sicl die Lizenzen meislens nicll sinnvoII mil freien Lizenzen verbinden Iassen. An dieser SleIIe isl nocl kurz zu ervalnen, dass es daruber linaus ein paar Iirmen gibl, die aussclIieIicl von der LnlvickIung und Vermarklung von US-Slacks fur MikroconlroIIer Ieben. Im veileren VerIauf verden vir aber nur offene und freie Slacks belracllen. Nun verden Slacks, die icl am inleressan- leslen finde (siele TabeIIe 1), vorgesleIIl. Die Slacks soIIen nicll direkl mileinander vergIiclen verden, sondern es soIIen Slarken und Sclvaclen gezeigl verden. Um dennocl ein einleilIicles Lrgebnis zu erlaIlen, verden zu jedem Slack die foIgenden Iunkle belracllel: enoligle Daleien (bzv. Daleislruklur) Konfiguralion eines eigenen Cerales Linbindung in eine beslelende Soflvare und Iorlierbarkeil auf andere Sysleme Wie bekommt man USB in das eigene Projekt? FMEFLLFLPFO.FCTo.NFT .OLFN/ ' / 'OO8 20 static const U8 abDescriptors [] = { // Device descriptor 0x12, DESC_DEVICE, LE_WORD(0x0200), // bcdUSB 0x00, // bDeviceClass 0x00, // bDeviceSubClass 0x00, // bDeviceProtocol MAX_PACKET_SIZE0, // bMaxPacketSize LE_WORD(0xFFFF), // idVendor LE_WORD(0x0005), // idProduct LE_WORD(0x0100), // bcdDevice 0x01, // iManufacturer 0x02, // iProduct 0x03, // iSerialNumber 0x01, // bNumConh gurations
0x04, DESC_STRING, LE_WORD(0x0409), 0x10, DESC_STRING, ,O`, 0, ,t`, 0, ,o`, 0, , ,, 0, ,U`, 0, ,S`, 0, ,B`, 0, 0x16, DESC_STRING, ,U`, 0, ,S`, 0, ,B`, 0,` ,,0, ,G`, 0, ,e`, 0, ,r`, 0, ,a`, 0, ,e`, 0, ,t`, 0 0x12, DESC_STRING, ,2`, 0, ,0`, 0, ,0`, 0, ,8`, 0, ,0`, 0, ,8`, 0, ,0`, 0, ,6`, 0, // Terminating zero 0 }; Datei Beschreibung Lype.h DaLehLypeh usbcohLro.c TrahsIer Iur EhdpuhkL O / CeraLe Erkehhuhg, eLc. usbhL.c IhLaseruhg USB-Hard- ware uhd -SLack usbhw_pc.c / usbhw_pc.h Hardware Layer usbsLrucL.h DeIhLoh DaLehLypeh Iur USB-SLrukLureh pc214x.h Header-DaLe Iur LPC2148 usbap.h USB-API Iur Ahwehduhg usbdebug.h Debugausgabeh Makro usbsLdreq.c SLahdardahIrageh aus KapLe 9 der USB-Spez- IkaLoh sLarLup.c / sLarLup.h IhLaseruhg Prozessor, PLL, IhLerrupLs [ PFO.FCT ] USB n prakLscheh EhsaLz | BehedkL SauLer Inlernelseile: hLLp://wk.skkeh.h/ hdex.php?LLe=LPCUSB Olne parleiiscl zu verden, kann icl gIeicl sagen, dass dieser Slack am meislen ausge- reifl und am benulzerfreundIiclslen isl. Lr isl selr sauber und ubersicllIicl program- mierl vorden, zudem gibl es eine Menge ferliger eispieIe im QueIIlexlarcliv fur verscliedensle US-Cerale (virlueIIe serieIIe SclnillsleIIe, Massenspeicler-Ceral, HID- Ceral, elc.). Der Slack kann genauso gul fur eine ,slandaIone-Anvendung sovie aIs US-Subsyslem in einem MikroconlroIIer elriebssyslem (z.. IreeRTOS & Co.) vervendel verden. Bent|gte Date|en (bzw. Date|struktur): Die benoliglen Daleien konnen einfacl in den Uberselzungsprozess inlegrierl ver- den. Die Slruklur isl selr einfacl gelaIlen und daler mussen Ablangigkeilen kaum beacllel verden. Dadurcl isl eine selr Ieiclle Inlegralion in ein beslelendes Irojekl mogIicl. In der foIgenden TabeIIe sind aIIe Daleien, veIcle fur den elrieb nolvendig sind, aufgeIislel und kurz besclrieben. LPC2148 - Der Knig unter den USB-Stacks: Ipcusb ' / 'OO8 .OLFN/ FMEFLLFLPFO.FCTo.NFT usbRegisterHandlers (); usbRegisterDescriptors (abDescriptors); usbHardwareRegisterEPIntHandler (BULK_IN_EP, usbcomBulkIn); //Callback fr ausgehende Daten usbHardwareRegisterEPIntHandler (BULK_OUT_EP, usbcomBulkOut); //Callback fr eingehende Daten usbHardwareNakIntEnable (INACK_BI); usbSetupInterruptHandler (); usbHardwareConnect (TRUE); static int usbcomBulkOut (U8 bEP, U8 bEPStatus __attribute__ ((unused))) { int i; int iLen; portBASE_TYPE xTaskWokenByPost = pdFALSE; iLen = usbHardwareEndpointRead (bEP, abBulkBuf, sizeof (abBulkBuf)); for (i = 0; i < iLen; i++) xTaskWokenByPost = xQueueSendFromISR (xUSBRXQueue, &abBulkBuf [i], xTaskWokenBy- Post); return xTaskWokenByPost; } BehedkL SauLer | USB n prakLscheh EhsaLz [ PFO.FCT ] Konf|gurat|on des e|genen Certes: Die Deskriploren verden uber einfacle Arrays angeIegl. Das isl bei der Definilon von aufvandigeren US-SclnillsleIIen von VorleiI, jedocl bedeulel dies immer, dass man sicl elvas in die US- Spezifikalion einarbeilen muss, um die Dalenslrukluren (siele Lisling abDescriplor) ersleIIen zu konnen. Im erslen Absalz des foIgenden Lislings verden die geralespezifisclen Dalenslrukluren und die fur die inlernen US-Dalenslrukluren vicllige Informalionen und Verknupfungen angegeben. Man nennl diesen ereicl aucl Ceraledeskriplor. Direkl im AnsclIuss findel man den Konfiguralionsdeskriplor, veIcler im WesenlIiclen die Ligensclaflen bzgI. der Slromversorgung enllaIl. Die virkIicle Kommunikalion gescliell dann vie bereils im US-Crundkurs ausfulrIicl besclrieben uber die Inlerfaces mil ilren ,LndpunklbundeIn. Lin Inlerface besclreibl die AnzalI der zugelorigen Lndpunkle. Und ein Lndpunkl besclreibl, mil veIclem Uberlragungsverfalren (Inlerrupl, uIk oder Isoclron) uberlragen vird, und vie vieIe Dalen aufgenommen verden konnen. Zu guler Lelzl sind nocl die Slringdeskriploren angegeben, veIcle dem US-Ceral ein Namen im elriebssyslem geben konnen. So kann jedes elriebssyslem - olne das Ceral zu kennen - dem enulzer sagen, veIcles Ceral angesleckl vorden isl. Isl die SclnillsleIIe uber die ,abDescriplor Dalenslruklur besclrieben vorden, mussen nur nocl die passenden Iunklionsaufrufe fur die IniliaIisierung durclgefulrl verden. E|nb|ndung |n e|ne bestehende Softwarearch|tektur: Wenn Dalen vom IC empfangen verden, vird aulomaliscl die regislrierle Iunklion aufgerufen. Hier vurde usbcomuIkOul definierl. Inlern in dieser Iunklion mussen nur die Dalen aus den US-IIIO-Speicler ausgeIesen verden. 22 static int usbcomBulkIn (U8 bEP, U8 bEPStatus __attribute__ ((unused))) { int i; portBASE_TYPE xTaskWoken = pdFALSE; for (i = 0; i < MAX_PACKET_SIZE; i++) if (!xQueueReceiveFromISR (xUSBTXQueue, &abBulkBuf [i], &xTaskWoken)) break; if (i > 0) usbHardwareEndpointWrite (bEP, abBulkBuf, i); return xTaskWoken; } Datei Beschreibung usb11spec.h USB DaLehsLrukLureh usbh96Oxreg.h RegsLer des USBN96O4 usbh96Ox.c / usbh96Ox.h SLeuerIuhkLoheh Iur USBN96O4 usbhap.c / usbhap.h USB ZugrIIs-API Iur egehe Frnware usbh2nc.c / usbh2nc.h Hardware-ZugrII auI USBN96O4 USBNDeviceVendorID(0x1234); USBNDeviceProductID(0x9876); conf = USBNAddConh guration(); USBNConh gurationName(,xyz); USBNConh gurationPower(50); // Power in mA USBNDeviceManufacture(,My little h rm); USBNDeviceProduct(,My device); USBNSerialNumber(,rev 1.0); interf = USBNAddInterface(conf,0);w USBNInterfaceName(conf,interf,usblp); USBNAddInEndpoint(conf,interf,1,1,BULK,64,&TransferReady); USBNAddOutEndpoint(conf,interf,1,2,BULK,64,&PrintOnLCD); [ PFO.FCT ] USB n prakLscheh EhsaLz | BehedkL SauLer Iur ausgelende Dalen siell der Zugriff alnIicl aus. }edesmaI, venn Dalen vom IC aus empfangen verden konnen, vird die foIgende Iunklion auf Crund der Regislrierung aIs CaIIback aufgerufen. Hierbei verden die zu versendenden Dalen aus inlernen Dalenslrukluren in die US-IIIO-Speicler uberlragen. Port|erbarke|t: Dieser Slack vurde fur den MikroconlroIIer LIC2148 gesclrieben. Line Iorlierung auf einen anderen MikroconlroIIer oder eine andere US-SclnillsleIIe isl volI nicll an einem Naclmillag erIedigl. Inlernelseile: hLLp://usbh2nc.beros.de/ Bent|gte Date|en (bzw. Date|struktur): hLLp://www.ssaewsk.de/ AT9OUSB_Irnware.hLn.de Dieser auslein isl ideaI fur kIeine 8- und 32-il Irozessoren olne eigene US-SclnillsleIIe. Angesleuerl verden kann er uber eine IaraIIeIe 8-il SclnillsleIIe per DMA oder sogar uber SII. VieI auleiIe braucll die SclaIlung Rund um den USN96O4 nicll. Lin veilerer IIuspunkl isl auerdem, dass es den auslein aIs SO Celause (Absland ca. 1 mm) gibl, veIcles die Lolarbeilen drasliscl vereinfacll. Iur den USN96O4 gibl es vieIe ibIiolleken im Inlernel. Line davon isl USN2MC. Hinler der ibIiollek sleckl die Idee, US ganz einfacl ,inlegrier- bar in eigene Anvendungen zu maclen. Von USN2MC gibl es zvei Versionen. LinmaI die sogenannle ,main-Version, veIcle ein selr bequemes Konfigurieren des US-Cerals erIaubl, jedocl mil dem Speicler enlspreclend versclvenderiscl umgell. Und die Version ,liny. Hierbei kann einiges an Speicler- und CodepIalz eingesparl verden, dafur muss man sicl aber inlensiver mil US auskennen, um ein Ceral erfoIgreicl definieren zu konnen. Leider isl seil ca. einem }alr der auslein aIs ,nicll melr LmpfolIen fur neue SclaIlungen markierl. Der US96O4 auslein vird aber dennocl produzierl. Ls vurde volI nur die LnlvickIungsableiIung fur diesen ConlroIIer aufgeIosl. Da er aber nocl selr gul verfugbar isl (ebenso bei ReicleIl & Co.) isl er meiner Meinung nacl keiner SclaIlung zu sclade. Konf|gurat|on des e|genen Certes: In der ,main-Version verden fur die US- ibIiollek ca. 6K Irogrammspeicler und 5OO yle Arbeilsspeicler benoligl. Angabe des HersleIIer- und Irodukl-ID: Definilion der Namen, mil veIclen sicl das Ceral am elriebssyslem anmeIden soII: Hinzufugen einer Konfiguralion: Hinzufulen eines Inlerfaces: Und zuIelzl - Definilon der Lndpunkle: Der Ielzle Iarameler gibl den CaIIback an, veIcler aufgerufen vird, venn Dalen vom IC empfangen bzv. versendel verden. E|nb|ndung |n e|ne bestehende Softwarearch|tektur: Die Inlegralion in eine beslelende Soflvarearclileklur kann enlveder per Inlerrupl oder IoIIingbelrieb gesclelen. Isl die InlerruplIeilung des USN96O4 mil dem ZieIprozessor, auf dem der Slack Iaufl, verbunden, so kann in der Inlerruplrouline einfacl die Iunklion USNInlerrupl() auf- gerufen verden. AIIes veilere vird dann vom Slack erIedigl. Isl keine InlerruplIeilung verbunden, kann die Iunklion ebenso in einer LndIossclIeife regeImaig aufgerufen verden. Port|erbarke|t: Der US-Slack USN2MC isl in reinem C gesclrieben. Da die Anbindung enl- veder uber einfacle CIIO-Iorls oder SII erfoIgl, kann US an eine groe AnzalI von MikroconlroIIern angebracll verden. ' / 'OO8 .OLFN/ FMEFLLFLPFO.FCTo.NFT USBN9604 - Die Ieider abgekndigte universeIIe USB-Bridge 23 Abb. 1: SchaItpIan Low-Speed USB FMEFLLFLPFO.FCTo.NFT .OLFN/ ' / 'OO8 BehedkL SauLer | USB n prakLscheh EhsaLz [ PFO.FCT ] AT90USB1287 - Die Zukunft fr AVR-Fans Inlernelseile: hLLp://www.ssaewsk.de/ AT9OUSB_Irnware.hLn.de Dieser Clip gelorl zu einer kIeinen neuen IroduklfamiIie von AlmeI. Hier isl US direkl aIs Linleil in den Irozessor inlegrierl. Zvar bielel AlmeI ebenso C-eispieIe fur den Zugriff auf US an, aber lier felIl die freie Lizenz. Die AT9OUS Iirmvare von Slefan SaIevski lingegen isl dank CIL frei fur jeden verfugbar und einselzbar. Im Cesamlen benoligl die US-Logik ca. 13O K IIalz im IIaslspeicler. Auf der Inlernelseile findel man ein ferliges funkli- onsfaliges eispieI saml eigener SclaIlung und Teslprogramm fur den IC. AVR-USB - USB fr Arme {SoftwareimpIentierung) Inlernelseile: hLLp:// www.obdev.aL/ producLs/avrusb/ hdex-de.hLn An dieser SleIIe isl foIgende Losung ebenfaIIs nocl zu ervalnen. Ls vird ein US-Lov- Speed Ceral mil einem einfaclen AVR erzeugl. Dabei verden die Leilungen von US direkl ausgeverlel, vas aucl erkIarl, vieso eine maximaIe Uberlragungsgesclvindigkeil von 1,5 Mbil/s mogIicl isl. In AbbiIdung 1 siell man, vie einfacl die SclaIlung isl. Iur ersle US Tesls isl dies siclerIicl eine feine SclaIlung. Ob man dieses Konslrukl jedocl fur viclligere Saclen einselzen soIIle, muss jeder seIbsl enlscleiden. Dies var nur ein selr kIeiner UberbIick uber mogIicle freie US-SclnillsleIIen. Dennocl loffe icl, dass der eine oder andere eine nulzIicle Informalion daraus zielen kann. Fazit Links 1. LICUS1 hLLp://wk.skkeh.h/hdex.php?LLe=LPCUSB 2. USN2MC hLLp://usbh2nc.beros.de/ 3. AT9OUS1278 hLLp://www.ssaewsk.de/AT9OUSB_Irnware.hLn.de 4 AVR-US hLLp://www.obdev.aL/producLs/avrusb/hdex-de.hLn 24 Abb.1:Schematischer Aufbau eines anaIog resistiven Touchscreens Abb.2: RechenbeispieI: Abb.3 die schneII zusammen- geschusterte SchaItung Abb.2: RechenbeispieI: [ PFO.FCT ] Toucnscreensanseuerun i /\F | Micnae Harann Motivation Touclscreens verden sclon seil vieIen }alren fur die Sleuerung von Ceralen vie Karlen- oder SpieIeaulomalen vervendel. Aucl in IDAs und TabIel-ICs verden sie seil geraumer Zeil eingeselzl. Ilren groen Durclbrucl verdanken sie aber AppIes iIod Toucl und dem iIlone. Touclscreens bielen im VergIeicl zu konven- lioneIIen Lingabegeralen deulIicle VorleiIe. Iur den enulzer isl die Sleuerung per Iinger inluiliver und einfacler aIs per Taslen. Aber aucl der LnlvickIer profilierl von der IIexibiIilal eines Touclscreens. WiII er nacllragIicl die edienung des Cerals veran- dern, so muss er nur die Soflvare anpassen. Line Anpas- sung der Hardvare, vie sie z.. beim Hinzufugen einer veileren Tasle nol- vendig vare, enlfaIIl. Zudem sind Touclscreens pIalzsparend, selr slabiI und besilzen je nacl QuaIilal eine Le- bensdauer von bis zu drei MiIIionen erulrungen. Ansteuerung Touchscreen mit einem AVR MichaeI Hartmann <michaeI@speicherIeck.de> Prinzip Cunslige Touclscreens sind in der RegeI anaIog resislive Touclscreens mil 4-Wire-Syslem. Diese Touclscreens beslelen aus zvei gegenuberIiegenden, Ieilfaligen Sclicllen zvisclen denen sicl vieIe kIeine Abslands- laIler, so genannle Spacer-Dols befinden. Durcl erulrung enlslell beim Druckpunkl ein Konlakl zvisclen den beiden Sclicllen. Um eine Koordinale des Druckpunkles zu bereclnen, verden an den beiden Lnden einer Sclicll zvei (un- lerscliedIicle) bekannle Spannungen angeIegl und an einem beIiebigen Lnde der anderen S c l i c l l loclolmig die resuI- lierende Spannung gemessen. Aus der gemes- senen Spannung Iassl sicl das VerlaIlnis der Widerslande und damil die Iosi- lion der Koordinale bereclnen (siele AbbiIdung 2 ReclenbeispieI). LegL nah ah ehe Spahhuhg voh uhd ah ehe Spahhuhg voh ah, so ergbL sch Iur das VerhaLhs der WdersLahde: MssL nah huh Iur eheh WerL voh ,ergbL sch daraus: Das VerhaLhs gbL de PosLoh h [-RchLuhg ah. Be der Messuhg Iur de PosLoh h \-RchLuhg wrd ah uhd Spahhuhgeh ahgeegL uhd ah oder hochohng genesseh. Durch das VerhaLhs der WdersLahde ehLsLehL ah |eden PuhkL ehe uhLer- schedche Spahhuhg, de nah zur Berechhuhg der [- uhd \-KoordhaLe huLzeh kahh. Aufbau der SchaItung Zur Sleuerung vird ein Almega32 vervendel. Die vier KabeI des Touclscreens verden mil den Iins ADCO bis ADC3 verbunden. Dabei sind die IINs ADCO und ADC1 mil der Sclicll fur die x-Koordinale, ADC2 und ADC3 mil der Sclicll fur die y-Koor- dinale verbunden. Im DalenbIall soIIlen sicl fur die vier Dralle des Touclscreens enlspreclende ezeiclnungen vie YU (Y-Koordinale, oben), YD (Y-Koordinale, unlen), XL (X-Koordinale, Iinks) und XR (X-Koordinale, reclls) finden. Cemessen vird an ADCO und ADC2. Um einen definierlen Werl zu messen, venn keine erulrung vorIiegl und daler keine Spannung anIiegl, mussen diese beiden Iins nocl loclolmig mil Masse verbunden verden. Lin Wider- sland von je soIIle ausreiclen, um in diesem IaII die Spannung auf zu zielen. [...] while(1) { double Ux, Uy; /* x */ DDRA |= (1 << PA1); // PA0: +5V DDRA |= (1 << PA0); // PA1: 0V PORTA |= (1 << PA0); _delay_ms(16); // adc(PORT) liefert gemessene Spannung in V Uy = adc(PA2); PORTA &= ~(1 << PA0); // PA0 und DDRA &= ~(1 << PA0); // PA1 wieder DDRA &= ~(1 << PA1); // Eingang /* y */ DDRA |= (1 << PA3); // PA2: +5V DDRA |= (1 << PA2); // PA3: 0V PORTA |= (1 << PA2); _delay_ms(16); Ux = adc(PA0); PORTA &= ~(1 << PA2); // PA1 und DDRA &= ~(1 << PA2); // PA2 wieder DDRA &= ~(1 << PA3); // Eingang _delay_ms(500); } [...] #deh ne HEIGHT 160 #deh ne WIDTH 220 #deh ne Uy1 0.78 #deh ne Uy2 4.15 #deh ne Ux1 0.27 #deh ne Ux2 4.71 while(1) { double Ux, Uy; int x,y; // Ux und Uy messen [...] x = (Ux-Ux1)/(Ux2-Ux1) * WIDTH ; y = (Uy-Uy1)/(Uy2-Uy1) * HEIGHT; _delay_ms(500); } Die Spannung ist direkt proportionaIo zum Abstand des Druckpunktes. Mit ein bisschen Rechnen kommt man dann auch auf die richtige Koordinate. QueIItext 2: QueIItext 1: Abb.4 SchaItpIan eines Touchscreencont- roIIers mit einem Atmega32. 25 Micnae Harann | Toucnscreensanseuerun i /\F [ PFO.FCT ] Ier Soflvare Iegl man nun an IDO und ID1 Spannung an und missl an ID2. Lrveilerl man QueIIlexl 1 nocl um eine Debugging-Ausgabe und lragl die beiden Spannungen in Ablangigkeil von der Iosilion an, erlaIl man fur die x- und y-Koordinale je einen Crapl (z.. Crapl 1 fur die x-Koordinale). Wie sclon aus der eispieIreclnung, kann man aus den Craplen erkennen, dass die Spannung Iinear zum Absland zunimml. Aus den Craplen erkennl man nun aucl die Lxlremverle, demnacl die maximaIe und minimaIe Spannung, die man fur einen x-Werl (Iinker und recller Rand, Ux1 und Ux2) und y-Werl (oberer und unlerer Rand, Uy1 und Uy2) bekomml. Der Quolienl aus dem Unlersclied zvisclen der gemessenen Spannung und der Mini- maIspannung, und der Differenz zvisclen MaximaIspannung und MinimaIspannung, enlspricll dem VerlaIlnis vom Anfang zum Druckpunkl (a) und vom Anfang zum Lnde des Touclpads (b). Dalinler verbirgl sicl der zveile SlralIensalz. MuIlipIizierl mil der Hole bzv. reile des Touclpads ergibl sicl daraus die enlspreclende Koordinale. Ansteuerung per Software AusbIick Die MogIiclkeilen sind lier nalurIicl Iangsl nicll ausgesclopfl. Zum einen Iassl sicl die Soflvare von IoIIing nocl auf Inlerrupls umsleIIen, zum anderen kann man aufbauend auf der Lrkennung einfacler Taslendrucke eine ibIiollek mil Iunklionen fur ullons, ScroIIbars, Drag `n Drop ... aufbauen. Den VorsleIIungen sind kaum Crenzen geselzl, nur melrere erulrungen, vie sie AppIes iIlone verarbeilen kann, unlerslulzen anaIog resislive Touclscreens Ieider nicll. Damil durfle dem eigenen asleIvergnugen niclls melr im Wege slelen. VieI Spa! 26 AbbiIdung 1: CapBoard AbbiIdung 2: Sensor Am IlysikaIiscl-Teclnisclen Inslilul Sl.Ielersburg sleIIle der russiscle Ilysik- professor Leon Tleremin im }alre 192O ein merkvurdiges Musikinslrumenl vor - einen Kaslen aus dem zvei Anlennen raglen. Indem er seine Hande diesen bei- den Anlennen nalerle, konnle er Hole und Laulslarke des erzeuglen Tons andern. AIs Musikinslrumenl fulrl das Tleremin inzvisclen ein (selr IangIebiges) Sclallendasein. Das zugrunde Iiegende Irinzip findel sicl aber vieIfacl in leuligen kapaziliven Sensoren vieder. Lin kapaziliver Sensor missl die Kapazilal zvisclen einer Anlenne und seiner UmveIl. }e naler man ein geerdeles, Ieilendes Objekl an die Anlenne bringl, deslo loler vird die Kapazilal des so gebiIdelen Kondensalors. Auf diese Weise kann man den Absland zvisclen Sensor und Objekl messen. Dies funklionierl mil melaIIenen Objeklen, IIussig- keilen und vieIen anderen Maleri- aIien. Aucl mensclIicle Korper oder Hande konnen mil kapaziliven Sensoren gelrackl verden. ObvolI das zugrunde Iiegende Irinzip selr einfacl isl, sind kaum brauclbare Sensoren verfugbar. Wenn nur erulrung erkannl verden soII, sind evenlueII die QIrox- Sensoren nulzIicl. Sensoren fur groere Abslande sind aber nicll verfugbar bzv. laben eine selr niedrige LmpfindIiclkeil. Aus diesem Crund labe icl im Ralmen meiner DipIomarbeil ein TooIkil enlvickeIl, das es ermogIicll, einfacl und sclneII kapa- zilive Sensoren in eigene Irololypen zu inlegrieren. Dieses TooIkil - sinnigerveise CapTooIKil genannl - isl Open-Source und umfassl Hardvare, Iirmvare, Soflvare und Dokumenlalion. Icl enlvickIe es inzvisclen seil zvei }alren veiler und vervende es fur eigene Irojekle. Kernsluck des CapTooIKils isl das Cap- oard (siele AbbiIdung 1). Dieses dienl aIs ConlroIIer fur bis zu 8 Sensoren. Lin IIC 18f255O sleuerl die Sensoren (siele AbbiIdung 2) an und Iiesl deren Werle (freuqenz-enkodierl). Die Werle verden im IIC gefiIlerl und aufbereilel. Auerdem sleuerl er aucl die 8 frei vervendbaren I/O-Iins an. Die Kommunikalion mil dem Hosl-IC erfoIgl uber RS-232 (TTL) und ein KIarlexl-IrolokoII. Die Sensoren basieren auf dem ,Tleremin Vision II-Design von Terry Irilz |1j. Kernsluck des Sensors isl ein LMC555 Timer-IC. Dessen Irequenz langl ab von der Kapazilal, die die Anlenne Iieferl. Der LMC555 vurde gevalIl, veiI die ubrigen 555-Varianlen nur bis 5OO kHz gelen. }e loler aber die Irequenz, deslo loler die AufIosung. Sie bevegl sicl (je nacl Absland) zvisclen einigen 1OO kHz und 1,8 MHz. Die Irequenz vird durcl einen Hardvare-Counler im IIC gemessen. Lin genereIIes IrobIem von kapaziliven Sensoren isl ilre LmpfindIiclkeil gegenuber Slorungen. Kapazilive Sensoren sind slark lemperalurablangig. Lin groeres IrobIem sind aber unervunsclle Kapazilalen, ler- vorgerufen z. . durcl vorbeigelende Ier- sonen oder groe melaIIene Objekle. Hier isl eine Absclirmung des Sensors und der Anlenne vicllig. Diese Absclirmung muss aber immer auf dem gIeiclen Spannungs- niveau gelaIlen verden vie die Anlenne, olne dass diese eIeklriscl mileinander ver- bunden sind. Zu diesem Zveck vervendel man einen SpannungsfoIger |2j. Da die Irequenz des SignaIs reIaliv locl isl, muss aucl der Operalionsverslarker, der den SpannungsfoIger impIemenlierl, eine lole Irequenz durclIeilen. Um die Dampfung des SignaIs mogIiclsl niedrig zu laIlen vurde ein MAX4453 vervendel. Dieser lal sicl in umfangreiclen Tesls bevalrl. Liner der beiden inle- grierlen Operalionsverslarker lreibl die Absclirmung der Anlenne. Der andere Opera- lionsverslarker sclirml die SignaIIeilung ab. WeIcle Reiclveile lal nun so ein Sensor` Dies isl sclver zu sagen, da diese von der Anlen- nengroe, UmveIlbedingungen und Mess- dauer ablangl. Slandardmaig missl das CapTooIKil die Irequenz jedes Sensors 15 ms Iang. Mil einer Anlenne aus WeibIecl von 4Ox4O mm Iassen sicl dann evegun- gen im MiIIimeler-ereicl auf ca. 2O cm Lnlfernung sicler erkennen. Aber aucl ganz olne zusalzIicle Anlenne Iassen sicl evegungen im Absland von venigen Zenlimelern erkennen. Das Lolpad auf dem Sensor reicll lierfur aIs Anlenne aus. Irazisere Ricllverle fur die Reiclveile der Sensoren verden in Kurze auf der CapTooI- Kil-Webseile verfugbar sein. Die 8 Sensor-Iorls des Capoard sind aIs US-A-uclsen ausgefulrl. VCC und CND sind dabei vie bei US beIegl. Die anderen beiden Konlakle dienen dazu, den Sensor zu aklivieren, bzv. um seine Messverle zu empfangen. Iur die meislen Anvendungen empfielIl es sicl, ein IIaclbandkabeI an den Sensor zu Iolen und an dessen anderen Lnde einen US-A-Slecker anzubringen. Dadurcl Iassl sicl der Sensor fIexibeI posilionieren. AIlernaliv kann man aucl einfacl ein US- VerIangerungskabeI vervenden. CapSense-Anwendungen Prototyping von CapSense-Anwendungen mit dem CapTooIKit RaphaeI Wimmer <raphaeI.wimmer@ifi.Imu.de > Kapazitive Sensoren [ PFO.FCT ] Proo,oin von CapSehse-Ahwehduhgeh nL CapTooKL | Raphae Wnner ' / 'OO8 .OLFN/ FMEFLLFLPFO.FCTo.NFT 27 #!/usr/bin/python import capboard cb = capboard.CapBoard() a = capboard.Analyzer(cb) AbbiIdung 3: AnaIyzer zeigt grafisch die Sensorwerte der einzeInen KanIe + 0 (aktiviere Sensor 0) REPLY,0,+,OK,80349 - 1 (deaktiviere Sensor 1) REPLY,0,-,OK,82037 F 3 (Filter 3, Lowpass) REPLY,0,F,OK,84766 T 20 (setze Messdauer auf 20ms pro Sen- sor) REPLY,0,T,OK,85928 A (starte Messung) REPLY,0,A,OK,0 VALUE,0,1,59705,8 VALUE,0,1,59702,23 VALUE,0,1,59701,36 VALUE,0,1,59699,49 ... Z (stoppe Messung) REPLY,0,Z,OK,2269 S (speichere Einstellungen im EEPROM) REPLY,0,S,OK,22072 ! (Reset) <device_id> <channel> <value> <timestamp> Raphae Wnner | Proo,oin von CapSehse-Ahwehduhgeh nL CapTooKL [ PFO.FCT ] Einfacher Funktionstest Zum Teslen des Capoard kann man vie foIgl vorgelen: Linen oder melrere Sensoren in beIiebige Iorls slecken. Das TTL232R-US-SerieII-KabeI an die abgevinkeIle uclsenIeisle des Capoard slecken - sclvarzer Drall (CND) Iinks. Den US-Slecker in den Reclner slecken, CegebenenfaIIs die ITDI-Treiber inslaIIieren. Nun kann man z.. die Iyllon-AII vervenden, um darauf zuzugreifen: Der AnaIyzer zeigl grafiscl die Sensorverle der einzeInen KanaIe an
KommunikationsprotokoII Capoard erkennl beim Slarl aulomaliscl die angesclIossenen Sensoren und gibl deren Messverle aus. Die Ausgabe erfoIgl im Iormal ,VALUL, <device_id>,<clanne I>,<vaIue>,<limeslamp> Die einzeInen Komponenlen: dienl dazu, melrere angesclIossene Capoards zu unlerscleiden. Slandardmaig O. gibl an, von veIclem Sensor der Messverl komml isl der Messverl (16 bil). isl die verslriclene Zeil in MiIIisekunden seil eginn der Messung. Das Capoard verslell aucl einige einfacle efelIe. Die kompIelle Dokumenlalion fin- den Sie auf der CTK-Websile. }eder efelI vird durcl eine kurze SlalusmeIdung beslaligl. Hier ein eispieI: 28 #!/usr/bin/python # simple proximity sensor using CapBoard # see capsense.org # Public Domain import capboard, time THRESHOLD = 5 # some value > 0 acb.reset() # auto-detects sensors, starts CapBoard baseline = cb.vals[0] # the current sensor value for channel 0 while True: if cb.vals[0] - baseline > THRESHOLD: print ,sensor triggered! else: print , time.sleep(0.1) [ PFO.FCT ] Proo,oin von CapSehse-Ahwehduhgeh nL CapTooKL | Raphae Wnner APIs und TooIs IrinzipieII kann man auf das Capoard mil jeder beIiebigen Irogrammierspracle zugreifen - sofern diese von der serieIIen SclnillsleIIe Iesen kann. Wenn man nur sclneII maI eine einfacle Anvendung sclreiben viII, isl eine AII aber ziemIicl liIfreicl. Iur das CapTooIKil gibl es eine Iyllon-AII und eine }ava-/Irocessing- AII. Diese kapseIn die Kommunikalion mil dem Capoard und bielen einige HiIfs- funklionen. Mil der Iyllon-AII kann man selr sclneII z.. einen Nalerungssensor impIemenlieren. ZusalzIicl gibl es z.. TooI, das die Dalen vom Capoard uber TCI/II ver- sclickl. Damil kann man aucl von beIiebigen Reclnern auf das Capoard zugreifen. Links & Bezug SclaIlpIane, Soflvare, Dokumenlalion und veilere Informalionen zum CapTooIKil finden Sie auf CapSense.de |3j. Weilerfulrende Informalionen zu den Crundprinzipien und Anvendungsmog- Iiclkeilen von kapaziliven Sensoren finden Sie auf den Webseilen von Larry K. axler |4j und }oslua R. Smill |5j. Da sclon bei den Vorgangerversionen des CapTooIKil regeImaig Anfragen kamen, ob icl denn aucl ferlige Hardvare verkaufen vurde, labe icl micl fur CTK 2.O mil enedikl Sauler von Lmbedded-Irojecls.nel zusam- mengelan. Lin ausalz fur das CapTooIKil isl im OnIine-Slop von Lmbedded-Irojecls. nel verfugbar. RaplaeI Wimmer |6j besclafligl sicl seil 2OO5 mil kapaziliven Sensoren. Lr promo- vierl am LelrslulI fur Medieninformalik an der Ludvig-MaximiIians-Universilal Munclen. In seinem Iog |7j sclreibl er ab und zu aucl uber Lmbedded-Irojekle. 1. TlereminVision II Design von Terry Irilz hLLp://Lherenhvsoh.con/ versoh-2/TV-II-hdex.hLn 2. SpannungsfoIger hLLp://de.wkpeda. org/wk/SpahhuhgsIoger 3. Informalionen zum CapTooIKil hLLp://capsehse.de 4. Larry K. axler hLLp://www.capsehse.con/ 5. }oslua R. Smill hLLp://web.neda.nL.edu/-|rs/ 6. RaplaeI Wimmer hLLp://www.nedeh. I.nu.de/Lean/raphae.wnner/ 7. Iog von RaplaeI Wimmer hLLp://ny.opera.con/raphnah/bog/ 29 FMEFLLFLPFO.FCTo.NFT .OLFN/ ' / 'OO8 ArtikeIwettbewerb MikrocontroIIer.net ArtikeIwettbewerb - die Ergebnisse Andreas Schwarz <wettbewerb@mikrocontroIIer.net> www.nrkrocohLroer.heL | ArLkeweLLbewerb [ /LFFLF ] InderlelzlenAusgabedesImbedded Iro|ecls}ournalvurdederMikrocon lrollernelArlikelvebeverbangekn digl|elzlislerbeendelAbschlieend kannmansagenesvareinvollerIrfolg ferligeArlikelvurdeneingereichl IrdieGevinnerslandenIreiseimGe samlverlvonberzurVerfgung DieIrgebnissedesWebeverbsunddie ArlikelsindberhLLp://www.nkrocoh- Lroer.heL/weLLbewerberreichbarDie HaulgevinnerverdenimIolgenden kurzvorgeslelll DerGevinnerdeserslenIlalzes undeinesHighIndMullimelers vonVollcraimWerlvon islMichaeI Wittmannmilseiner eschreibungeinesIOIxanders frdenUSIorlDasGerl basierlaufeinemITDIChi undeinemAVRundbesilzl eineVielzahlvonanalogenund digilalenIinundAusgngen DazugibleseineinQTC geschriebeneICibliolhekund GUIAnvendungDerArlikel virdindernchslenAusgabe desImbeddedIro|ecls}ournal abgedruckl VonAndr F.slammldieserelek lronischerNachbaudesbekannlen RubiksCubeMilaufvendiger HolzkonslruklionICSovare undzurAbvechslungmaleinem HCSMikroconlrollerbelegl diesesausgefalleneIro|eklden zveilenIlalzundgevinnlein AVRGrasshoeroard DerdrieIlalzgehlanAxeI Jerominfrdieeschreibung derAnsleuerungeinesDreh slromAsynchronmolorsVon derWellenformerzeugunger AVRbiszurLeislungseleklro nikislallesIigenbauundaus fhrlichbeschriebenAuchfr diesenIlalzgibleseinAVR Grasshoeroard MileinemAVRbasierlenRIID TrnerbeleglStefan SeegeI dendrienIlalzunderhlleinen IlalinengulscheinvonLeilonim WerlvonIininleressanler IunklbeidiesemIro|eklisl dassdieAVRSovareinC geschriebenvurde [ sehe ArLke SeLe 4 - 6 ] PIatz 1: USB IO-Expander PIatz 4: RFID TrmoduI PIatz 2: EIektronischer ZauberwrfeI PIatz 3: Frequenzumrichter mit Raumzeiger- moduIation NebendenHaulgevinnernvurden nochvieleveilereArlikeleingereichlvon deneneinenIreisgevonnenhabenDa diesderersleArlikelvebeverbvarhaben auchalleNichlGevinneralsDankeschn frdieTeilnahmeeinenIlalinen gulscheinerhallenDankeanallefrdie TeilnahmeundanalleNichlTeilnehmer oderNichlGevinnervielleichlklals|a beimnchslenMaldenneinesislsicher dasvarnichlderlelzleWebeverb Und der Rest? Der Wettbewerb Sie suchen? Hier werden Sie gefunden! SteIIenanzeigen n Enbedded Pro|ecLs Jourha Werbuhg - zegerchLeL IhIos: www.enbedded-pro|ecLs.heL Das Motto: Von der Community fr die Community! Das Magazin ist ein Open-Source Projekt. FaIIs Du Lust hast, Dich an der Zeitschrift durch einen Beitrag zu beteiIigen, wrden wir uns darber sehr freu- en. Schreibe Deine Idee an: sauter@embedded-projects.net Wir werden dann gemeinsam sehen, was wir daraus ma- chen knnen. Werdet aktiv! RegeImig Iesen! Die Zeitschrift wird ber mehrere KanIe verteiIt. Der erste KanaI ist der DownIoad aIs PDF-Datei. AIIe Ausga- ben sind auf der Internetseite {1] verfgbar. Diejenigen, die Iieber eine Papierversion erhaIten mchten, knnen den zweiten KanaI whIen. Man kann sich dort auf einer Internetseite {1] in eine Liste fr die gesponserten Abos eintragen. Beim Erscheinen einer neuen Ausgabe wird dank SponsorengeIdern an jeden auf der Liste eine Aus- gabe des aktueIIen JournaI versendet. FaIIs man den Ver- sandtermin verpasst hat, kann man das Heft auch zum Preis von einem Euro ber einen OnIine-Shop {2] bezie- hen. 1. Internetseite {AnmeIdeformuIar gesponserte Abos) http://www.embedded-projects.net/journaI 2. OnIine-Shop fr JournaI {Preis 1 EUR + Versand) http://www.eproo.de/journaI Damit wir weiterhin diese Zeitschrift fr jeden frei be- reitsteIIen knnen, suchen wir dringend Sponsoren fr Werbe- und SteIIenanzeigen. Bei Interesse meIdet Euch bitte unter foIgender TeIefonnummer: 0821/5081581 oder sendet eine E-MaiI an die oben genannte Adresse. Sponsoren gesucht!
Token Economy: Wie das Web3 das Internet revolutioniert (German Edition): Wie das Web3 das Internet revolutioniert (German Edition): Wie das Web3 das Internet revolutioniert (German Edition)