Mikrocontroller-Architektur erklärt am ATmega328 (Arduino) FearlessEngineers - Elektrotechnik & Programmieren https://www.youtube.com/watch?v=0MqvMGObPSY Transkript (automatisch erstellt) 0:00 ja endlich mal wieder zeit für einen gepflegten kaffee und ein bisschen theorie aus der welt der elektronik wir reden heute über microcontroller und 0:08 deren architektur und das ganze machen wir am beispiel das a-team mega 328 das ist hier dieser längliche ic auf dem board des albino uno ich erkläre dir 0:17 hier in dem video was es auf sich hat mit den begriffen risk & risk wir reden über architektur varianten speziell von neumann und hamburgs dann reden wir über 0:26 cpu speicher und schnittstellen bei mathe mega 328 und wie viel man davon jeweils hat und was man beim entwickeln beachten muss und das video hier das ist 0:35 das erste in einer ganzen reihe rund um den arduino und je mehr du weißt über aufbau und hardware desto besser wirst du ihn auch programmieren können 0:42 deswegen dranbleiben lohnt sich auf jeden fall und jetzt ganz viel spaß beim video ich bin andreas von der für das endturnier und los geht's 0:52 bevor wir jetzt einfach und hier in die welt der microcontroller reden wir erst mal über ein paar begriffe die in der praxis ganz oft verwechselt werden und 0:59 die wir deswegen brauchen damit wir uns abgrenzen können von dem worum es hier geht vor allen dingen eben der microcontroller legen wir los mit dem 1:06 personal computer den pc das ist ein sogenannter micro computer und das kommt aus einer zeit als es noch großrechner gab die teilweise raumfüllend war auf 1:15 jeden fall schrank groß und die standen in unternehmen und die waren für den hausgebrauch gar nichts und dann hat man den personal computer eingeführt einen 1:23 kleineren rechner deswegen mikro und der führende platz beispielsweise auf dem schreibtisch als desktop oder auf dem schoß als laptop bzw ein notebook also 1:32 personal computer die erste große kategorie dann kommt microcontroller mikroprozessor fangen wir hiermit man mit dem microcontroller das ist im 1:40 grunde ein einzelner chip und auf diesem chip da ist ein prozessor drauf die cpu da werden alle rechenoperationen durchgeführt und es gibt 1:48 peripheriefunktionen das heißt speicher bussysteme schnittstellen und so weiter alles auf einem chip und man drückt eben mit diesem begriff microcontroller aus 1:57 das ist ein kleiner wenig performant rechner ist vor allen dingen für steuerungsaufgaben wie beispielsweise er hier derart mega 328 auf dem domino uno 2:06 und dann gibt es noch diesen begriff mikroprozessor und der gehört eigentlich gar nicht hier unten hin zum microcontroller der gehört hier oben hin 2:13 zum personal computer das ist nämlich die cpu eines pcs also ein mikroprozessor ist ein einschnitt und der chip ist teil des personal computer 2:22 und der hat nicht die peripherie funktionen die der microcontroller mitbringt das ist ein performant meistens performant prozessor der im pc 2:30 arbeitet und ganz zum schluss gibt es noch das system on chip des ioc und im grunde ist ein microcontroller auch ein system on chip also ein ganzes system 2:38 auf einem einzelnen chip man drückt aber mit diesem separaten begriff hier etwas anderes aus wie gesagt microcontroller wenig performant gedacht für steuer 2:47 aufgaben und ein system on chip das hat zwar auch alles an bord ist aber in der regel deutlich performanter und deswegen hat das noch einen eigenen namen 2:55 bekommen system on chip und da verwendet man das auch in der praxis in den kontext zb der raspberry pi da läuft einem system und chip drauf 3:05 ja zwischendurch auf keinen fall vergessen genügend kaffee zu trinken ohne kaffee läuft hier überhaupt nichts in der welt der ingenieurinnen und 3:11 ingenieure also reden wir jetzt über den arduino insbesondere über den microcontroller auf dem dyno das ist der artega 328 das ist dieses längliche 3:21 dieser längliche er mit den vielen pins und das blaue bord drumherum ein beispiel dass adriano das stellt im grunde die die schnittstellen nach außen 3:31 hin geleitet zur verfügung das heißt ich kann hier auf die ganzen digitalen pins zu greifen auf die analogen input fans ich kann verschiedene spannungen 3:39 abnehmen ich kann das ganze mit usb an einen rechner anschließen ich kann das ganze mit strom versorgen das hier ist der oszillator der 16 megahertz takt 3:46 generiert also das blaue board hier der eigentliche arduino der schafft ein sehr komfortables umfeld für das herz des ganzen nämlich diesen mega 328 3:56 microcontroller und wir werden heute hier vor allen dingen über den microcontroller reden und nicht so sehr über den arduino legen wir los mit einer 4:04 allgemeinen klassifizierung von rechnerarchitekturen bzw befehls setzen das ist wichtig um zu verstehen was den arduino beziehungsweise at mega 4:14 unterscheidet von beispielsweise einem intel core i7 oder so fahren wir an mit dem oberen dem reduced instruction set computer risk und das ist ein 4:22 befehlssatz der ist reduziert im gegensatz zu einem komplex instruction set computer reden wir gleich darüber wo es viele befehle gibt hier gibt es 4:30 weniger befehle und befehl heißt eine anweisung die von von der cpu von der ästhetik logical unit in dem microcontroller ausgeführt werden kann 4:40 und bei risk da gibt es eben weniger befehle und die sind auch noch in hardware sehr sehr stark integriert dh sie können direkt gerechnet werden da 4:49 gibt es ein ganz ganz ganz ein ganz hohen performance vorteil gegenüber anderen maschinen geht zum beispiel ist es vor allen dingen weil ich keinen 4:56 zwischen code erzeugen muss kein mikro code das heißt maschinen die sind sehr schnell und deswegen werden die auch hier in microcontroller meistens 5:05 verwendet und der artega 328 das hier ist auch eine rizk maschine dann gibt es eben diese maschinen komplex instruction set computer und da zeigt der name ja 5:14 schon dass das ein befehlssatz ist der deutlich größer ist als hier oben der die bei der iss maschine und der wird im grunde in normalen pcs verwendet 5:22 meistens gibt es aber misch varianten heutzutage wo man beides vermischt aber um das hier klarer zu machen kann ich das jetzt einfach nach ansage hier oben 5:29 er microcontroller hier unten er pcs und so einen zipfel satz der ist deutlich größer als beim risk befehlssatz heißt aber auch dass der dass eine so genannte 5:39 deko die reinheit diesen komplexen befehl runterbrechen muss in kleinere fehler in sogenannte mikro code befehle und die müssen dann zum einen decodiert 5:49 werden dann auch als ausgeführt werden das kostet performance und wenn ich sowieso eine schwache maschine habe dann ist das keine gute architektur deswegen 5:57 ist es befehle da kann man deutlich mehr machen wird aber die brauchen eben auch die performance daher sei um das auszuführen deswegen in normalen pcs ja 6:05 das ist eine allgemeine klassifizierung und wie gesagt die meisten microcontroller das sind eben risk maschinen und jetzt gucken wir uns noch 6:11 einen weiteren punkt an der ganz wichtig ist das ist eine architektur gegenüberstellung von von neumann und herbert von neumann versus harvard 6:20 architektur und das ist deswegen wichtig zu wissen und zu verstehen wie ein rechner aufgebaut ist das hier oben das sind so komponenten in einem typischen 6:30 mikroprozessor hier ist diese r is magic logical unit daneben berechnungen durchführt dann gibt es ja noch so ein bisschen speicher gibt es ein paar 6:37 register aber darum geht es gar nicht so sehr die dicken pfeile das ist schon wichtiger das sind die bus komponenten der data bass und darüber werden dann 6:45 programm befehle und daten geschickt und das ist ganz ganz wichtig bei der von neumann architektur was man hier sehen kann hier gibt es nämlich nur einen 6:53 einzigen speicher und in diesem speicher darlegen befehle und daten das bedeutet wenn ich hier oben in meinem prozessor in der eu irgendwas ausrechnen will 7:02 wofür ich beispielsweise daten brauche und ich muss noch den befehl wir holen den nicht ausführen will dann muss beides nacheinander aus dem speicher 7:10 ausgelesen werden und das kostet zeit und dieses nacheinander das nennt man auch den sogenannten von neumann flaschenhals weil ich eben das nicht 7:18 parallelisieren kann ich muss es sequenziell machen und das kostet performance vorteil ist ich habe weniger hardware aufwand ich habe nur einen 7:25 speicher der bus ist effizienter aus diesem grund aber ist es auch ein kostenvorteil aber es ist eben langsamer und deswegen findet man auch im 7:33 mikroprozessor bereich die von neumann architektur eher selten da findet man meistens das hier nämlich die architektur von neumann das wiederum 7:43 meistens in pcs häufig ist auch heute mischform aber in unserer klar getrennten welt hier in diesem video da sagen wir von neumann er pc und 7:52 microcontroller er architektur und dass wir sie jetzt ähnlich aus wir haben ja auch solche spyder eingezeichnet über die die daten 8:00 fließen hier ist auch wieder die awo gerechnet wird dass es mir steht für mikrocontroller und hier da kann man sehen dass der speicher getrennt worden 8:08 ist links der programmspeicher rechts der datenspeicher und hier kann ich jetzt gleichzeitig parallel die befehle aus lesen die in der eu gerechnet werden 8:17 sollen und mir gleichzeitig die daten holen die dafür benötigt werden und das macht das ganze deutlich schneller deutlich effizienter aber ich brauche 8:26 eben auch zwei speicher die muss badi müssen beide an den bus angebunden werden und das verursacht eben kostensteigerung in diesem prozessor und 8:33 das führt dazu dass man dann eben nicht per se immer einsetzen kann sondern manchmal da versucht man auch dann mischform zu generieren wo die vorteile 8:41 der architektur kombiniert werden mit den vorteilen der von neumann architektur aber grundsätzlich wenn man sich den artega sich hier mal wieder 8:49 anschaut der ist in harvard architektur aufgebaut gucken wir mal weiter das nächst da ist jetzt hier so ein umfangreiches bild das wollen wir gar 8:57 nicht im detail verstehen das ist aus dem datenblatt des atm mega 328 und das sind die einzelnen komponenten die da so miteinander verbunden sind dass hier das 9:06 rot markierte das ist die cpu und an die cpu angebunden da sind diese orangefarbenen blöcke hier das ist der speicher es gibt drei typen die gucken 9:14 wir uns gleich noch im detail an flash speicher essraum und e tron und diese grauen dicken pfeiler hier das sind die bus leitungen über die dann eben die 9:23 informationen zwischen den komponenten ausgetauscht werden dann gibt es ja noch diese gelben module und das sind timer und counter das heißt das sind meine 9:33 zeitgeber die ich nutzen kann und damit kann man auch wunderbar zählen im autokino also in der hardware zählen das sind die gelben module dann gibt es ja 9:41 noch diese grau markierten das sind a d wandler module mit denen bin ich in der lage analoge spannung umzuwandeln in digitale signale und ich will jetzt 9:51 nicht im detail darauf eingehen dann mache ich noch mal ein eigenes video irgendwann dazu dieser ins ferne band gap das ist eine referenz spannung mit 9:58 der ich in der lage bin die werte die von außen anlegen beispielsweise einen sensor wert zumessen an einer referenz spannung und dann eben diese wandlung 10:06 von analog auf digital vorzunehmen kurzer insider-tipps sozusagen die ist spezifiziert 1,1 volt im datenblatt im mittel die kann aber schwankungen und 10:14 zwar zwischen 1,0 und 1,2 das heißt wer ganz genau wandeln möchte von analog nach digital der muss hier vielleicht noch ein bisschen was tun und sich genau 10:24 anschauen wie diese interne bernd gehabt aussieht in dem jeweiligen albino der verwendet werden sollte ist unter anderem auch temperaturabhängig also da 10:32 muss man so ein bisschen aufpassen aber wie gesagt da mache ich noch mein eigenes video dazu dann gibt es hier die schnittstellen die nach draußen führen 10:40 ich gehe da jetzt auch nicht auf details groß ein das sind kommunikations interfaces mit der außenwelt um beispielsweise andere alois hier 10:47 anzuschließen oder du ihn mit komponenten kommunizieren zu lassen überleitung meistens 2 draht leitung die eben dann zu anderen komponenten in 10:56 einem elektronischen gerät führen dass hier unten das sind die digitalen ports für eingänge und ausgänge und wir gucken uns jetzt hier im folgenden in diesem 11:04 die in diesen kästchen markierten komponenten noch ein bisschen genauer an prozessor speicher und eben aber auch die ein und die ausgänge vorher aber 11:13 unbedingt noch den schluck kaffee deren her wir fangen wir an mit der cpu wir wollen hier vor allen dingen auf zwei 11:20 komponenten fokussieren einmal den takt und die bus breite klappt noch die information die zentrale prozessoreinheit die cpu eben das ist 11:28 das herzstück von einem rechner und auch von einem mikrocontroller von deck von von dieser von dieser komponente da werden alle befehle ausgeführt alles 11:37 wird ausgerechnet von der cpu und je nach befehlssatz risko das ist haben wir schon gehört dass das eben einfache befehle oder komplexere befehle der cpu 11:46 typ der legt auch fest wie breit der interne daten bus ist eine 8 bit cpu dh ich habe acht parallelen leitungen das kann zum beispiel hier diese information 11:57 für arbeiten die hier steht und eine 64 bit cpu dicker neben acht mal diese information hier verarbeiten also 8 mal 1 8 bit blog und das heißt auch ich kann 12:09 zu einem gleichen zeitpunkt mit einer 64 bit cpu deutlich mehr informationen prozessen als beispielsweise mit zu einer 8 bit cpu und die cpu die legt 12:18 auch fest wie schnell der microcontroller arbeitet im fall des artega 328 da ist die taktung eben bei 16 megahertz und im fall des intel core 12:27 i7 da liegt die so um die 4 gigahertz kommen je nach ausstattungsvariante hier in dem beispiel da und da sind es dann eben 3,7 ghz bei 64 bit breite am preis 12:38 das erst 2021 ungefährer preis da kann man auch sehen dass das kein günstiger prozessor ist und der mega 328 der liegt irgendwo hier 12:48 nach variante so um die fünf euro rum der das natürlich deutlich günstiger kann aber auch deutlich weniger mit 16 megahertz in acht bewusst breit und man 12:56 kann die beiden auch nicht eins zu eins vergleichen weil das hier ist ein mikroprozessor das heißt im grunde die cpu eines pc und das hier ist ein 13:03 microcontroller und der enthält eine cpu also das hier ist nicht die cpu das ist das komplette system im artega 328 und so kann man sich auch dann verschiedene 13:13 cpu s angucken kann die vergleichen im hinblick auf solche performance kenngrößen hier gibt aber natürlich noch andere kennen grüßen dann gucken wir mal 13:21 auf die speicherkarten es gibt da mehrere man kann generell unterscheiden zwischen read only memory und access memory hier oben zwei typische varianten 13:31 heraus gepickt vom speicher einmal baum und flash rom steht für electric label program that only memory und das ist also elektronisch lösch und 13:42 beschreibbaren speicher und den kann man wunderbar nutzen um zum beispiel programmcode abzulegen wobei der er im flash-speicher legt die unterscheiden 13:50 sich noch mal so ein kleines bisschen vom vom aufbau her aber im flash-speicher da liegt der programmcode und im raum das könnten wir uns gleich 13:57 noch mal etwas genauer an da kann man dann aus dem programm heraus dass man geschrieben hat informationen permanent ablegen auf einem auf einem 14:05 speicherbereich hier im mega 328 und da kann ich zum beispiel passwörter speichern oder irgendwelche messwerte und die bleiben eben auch dann erhalten 14:13 wenn die stromversorgung schon lange abgerissen ist dann gibt es noch das einem access memory und da ist es so dass ist flüchtiger speicher und das 14:21 bedeutet wenn der strom weg ist ist die information auch weg hier gibt es zwei varianten einmal statisches rahmen das hat man auf älteren rechnern ganz häufig 14:28 noch und das ist deutlich schneller als flash speicher aber die daten sind eben weg wenn der strom weg bricht und dann irgendwann vor vielen jahren schon kam 14:38 dann das dynamic raum das drm auf dass das statische an vielen stellen abgelöst hat das hat eine deutlich höhere integrationsdichte als rahmen da ist 14:47 dann neben einem transistor noch einen kondensator verbaut und kondensatoren wäre das schon mal gehört hat das sind ja kleine speicher verladung die 14:54 verlieren eben irgendwann ihre ladung und die ladung ist eben die information und das heißt ich muss in diesem 3 oder der rechner muss dann ständige refresh 15:02 machen damit eben die information erhalten bleibt und der m & s drum das sind speicher arten die wir in den rechnern ganz häufig verwenden auch hier 15:11 auf dem mega 23 28 und zwar als arbeitsspeicher kommen wir uns einmal an wie viel von welchem speichertyp hier dann so drauf ist also wir haben hier 15:20 unten kann man das bild noch mal sehen flash ist ramon und wir haben 32 gb flash speicher der ist nicht flüchtig das heißt er bleibt auch ohne strom 15:30 erhalten 16 bit breit und der enthält unter anderem den sogenannten boot das ist wenn man will ein einfaches betriebssystem das alu uno und den 15:39 auszuführenden programmcode das heißt jedes mal wenn ich hier über die usb-schnittstelle das ganze kopplung mit meiner entwicklungsumgebung und dann 15:46 neues programm drauf lade dann landet das hier im flash-speicher und der ist irgendwann aber auch folgt er ist nämlich nur 32 kilobyte groß und man 15:54 muss beachten der hat eine obergrenze was die wiederbeschreibbare kite angeht lesen so oft wie man möchte aber wieder beschreiben nur circa 10.000 mal ich 16:03 glaube dass in den meisten fällen wenn man jetzt 10.000 mal sein programm hier drauf geschrieben hat das würde ja wahrscheinlich dann doch ein paar jahre 16:10 dauern dass das keine wirkliche grenze ist aber man muss trotzdem das im hinterkopf behalten die anzahl der schreibzyklen für den flash speicher die 16:18 ist eben endlich dann gibt's noch dass esra davon auch wirklich sehr sehr wenig 2,25 kilobyte nur das ist auch ein flüchtiger speicher und das ist der 16:26 eigentliche arbeitsspeicher das at mega 328 der 8 bit breit das heißt eine folge von nullen und einsen jeweils acht stück die gleichzeitig bearbeitet werden 16:35 können der ist ja schnell im vergleich zum flash aber wie gesagt er ist eben flüchtig und wer das schon mal gehört hat steck und hieb dass das so dass 16:43 speicher modell dahinter da kann man dann informationen auf eine bestimmte art und weise ablegen hierzu habe ich schon mal in anderen kontexten video 16:50 gemacht dass linke ich hier mal rein und da kommt auch im kontext also in oder demnächst noch ein video dazu wie man diesen speicher hier sinnvoll verwalten 16:57 kann und dann gibt es noch das ein kilobyte de kommen auch 8 bit breit nicht flüchtig er ist ja langsam aber großer vorteil der bleibt eben auch 17:05 erhalten wenn spannungs verlust aufgetreten ist und ich kann ihnen aus meinem eigenen programmcode heraus beschreiben wie das geht dann mache ich 17:12 auch noch mal ein beispiel dazu und er kann ungefähr 100000 mal neu beschrieben werden und das ist eben auch einer der gründe warum man hier im raum nimmt und 17:21 nicht beispielsweise flash weil er eben eine deutlich höhere wiederbeschreibbare hat trotzdem muss man aufpassen wenn man das hier in der schleife immer und immer 17:29 und immer obst immer und immer wieder beschreibt dann kann das auch sein dass das irgendwann nicht mehr richtig funktioniert ja das war einmal eine 17:38 übersicht zu den speicherkarten auf dem martina 328 gucken wir mal weiter jetzt ganz schnell auch zum schluss die schnittstellen drei grundsätzliche typen 17:47 haben wir hier einmal analoge inputs digitale inputs und serielle input output gucken wir uns einmal hier auf dem auf dem eigentlichen chip das ganze 17:56 an hier unten das ist der analoge input damit kann ich analoge spannungssignale messen hier drin ist ein sogenannter adc ein analog digital converter 10 bit 18:05 breit das bedeutet ich kann die bandbreite von 0 bis 5 volt in 1024 schritten rastern weil 1024 eben 218 ist und das ist eben die auflösung die 18:16 spannungs auflösung des a d wandlers hier ich habe zwar sechs eingänge insgesamt aber nur einen adac und das wird von einem sogenannten multiplexer 18:24 verteilt auf den einen adc und zwar nacheinander das heißt wenn ich jetzt hier gleichzeitig sechs eingänge ab frage wann ist die verarbeitung diamanti 18:34 mega 328 nacheinander und wird herr umgeschaltet umgeschaltet von einem internen multiplexen meisten anwendungen ist das kein problem aber wenn es 18:43 wirklich gleichzeitig sein muss dann geht das hier eben nicht mit diesen mit diesem microcontroller dann gibt es noch den digitalen ein ausgangsbereich hier 18:50 oben das sind diese vielen fans und da wird im grunde einer unterscheidung gemacht zwischen high pegel 5 volt und lob hegel 0 volt und ich kann auch noch 18:59 sachen machen wie software pull up widerstände was das ist wie gesagt eigenes oder dann mache ich noch mal ein eigenes video dazu damit kann man 19:06 konstante spannungs pegel garantieren so viel ganz kurz gesagt und es gibt auch noch die möglichkeit einer puls weiten modulation auch das ist ein thema für 19:15 ein anderes video aber das ist hier so in diesem bereich digitaler input und output dann gibt es noch serieller input und output das ist habe ich schon kurz 19:23 erwähnt vorher für die kommunikation mit anderen komponenten gedacht ich kann beispielsweise wenn ich ein display anschließen an den arduino das ganz 19:31 komfortabel machen über die iquadrat c schnittstelle hier oben und ich kann auch dass das gerät in aluminium mit anderen komponenten kommunizieren lassen 19:40 beispielsweise an albinos oder irgendwas ganz anderem über diese standardschnittstellen sp und johann und kommunikation mit alu uno und der umwelt 19:49 das gibt ein ganz eigenes ausführliches video in den nächsten wochen so viele nur gesagt es gibt hier drei möglichkeiten das zu tun 19:57 ja das war es auch schon zu diesem theorielastigen video im nächsten video gucken wir uns was ganz praktisches an da wollen wir nämlich den domino hier 20:05 benutzen um die ganze kette eingabe verarbeitung ausgabe mal zu erproben und zwar hier mit dieser mit dieser schaltung hier die habe ich auf tinker 20:14 grad mal vorab schon simuliert hier gibt es eine temperatur sensor drei leds zwei knöpfe und ein display und daraus baue ich ein digitales fieberthermometer dass 20:23 wir eben anzeigt ob ich spiele oder nicht und hier auch dann so ein paar informationen auf dem display dazu ausgibt aber wie gesagt das dann im 20:30 nächsten video jetzt erstmal vielen dank fürs zuschauen und wie immer gilt bei fragen einfach rein schreiben und die kommen sich helft da echt gerne weiter 20:37 hat mich gefreut dass du dabei geblieben wirst bis zum nächsten mal hier auch für viele ingenieure 20:44 [Musik]