{"id":58,"date":"2015-01-04T11:06:35","date_gmt":"2015-01-04T11:06:35","guid":{"rendered":"http:\/\/techblog.auchmonoabspielbar.de\/?p=58"},"modified":"2015-01-04T11:06:35","modified_gmt":"2015-01-04T11:06:35","slug":"ernuechterung-bei-mbed","status":"publish","type":"post","link":"http:\/\/techblog.auchmonoabspielbar.de\/?p=58","title":{"rendered":"Ern\u00fcchterung bei mbed"},"content":{"rendered":"<p>Nachdem ich mich \u00fcber die Feiertage etwas intensiver mit der mbed Umgebung besch\u00e4ftigt habe, ist meine erste Begeisterung etwas ged\u00e4mpft worden. Solange man sich innerhalb des mbed Frameworks bewegt, ist alles prima. Mit wenigen C Statements kann man sich sch\u00f6ne Sachen programmieren.<\/p>\n<p>H\u00e4sslich wird es, sobald man etwas braucht, was nicht f\u00fcr das Framework abgedeckt wird und man sich in Tiefen der ARM Hardware begeben muss. Ausl\u00f6ser bei mir war eine Anleitung im Internet zum Bau eines Frequenzz\u00e4hlers. Mein nucleo Board hat fast alles, um diesen Vorschlag, der auf AVR Microcontrollern basiert, mit minimalen Hardware Aufwand zu realisieren. Da das mbed Framework von Haus aus keine Counter mit externen Quellen unterst\u00fctzt, habe ich erforscht, wie das funktioniert. Und da bin ich als Hobby Bastler dann doch etwas \u00fcberfordert. Damit sich kein ARM Fan auf die F\u00fc\u00dfe getreten f\u00fchlt: die M\u00f6glichkeiten sind gigantisch. Aber das ist auch genau das Problem: die Dokumentation ist schlecht. Und jeder Chip Hersteller macht es anders. Deshalb ist auch das Internet keine Hilfe. Eine L\u00f6sung, die jemand f\u00fcr einen anderen Chip gefunden hat, hilft mir nicht weiter.<\/p>\n<p><a href=\"http:\/\/techblog.auchmonoabspielbar.de\/wp-content\/uploads\/2015\/01\/Targets.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-medium wp-image-59\" src=\"http:\/\/techblog.auchmonoabspielbar.de\/wp-content\/uploads\/2015\/01\/Targets-93x300.png\" alt=\"Targets\" width=\"93\" height=\"300\" srcset=\"http:\/\/techblog.auchmonoabspielbar.de\/wp-content\/uploads\/2015\/01\/Targets-93x300.png 93w, http:\/\/techblog.auchmonoabspielbar.de\/wp-content\/uploads\/2015\/01\/Targets.png 285w\" sizes=\"auto, (max-width: 93px) 100vw, 93px\" \/><\/a>Als n\u00e4chsten Anlaufpunkt habe ich mir dann das mbed Framework angesehen. Eine typische Entwickler-Strategie: Lernen durch forschen, wie es andere machen. Sobald man auf die HAL Ebene kommt (Hardware Abstraction Layer), beginnt das Elend. Die Funktionen sind f\u00fcr jeden Hersteller anders implementiert (was noch nachvollziehbar w\u00e4re &#8211; aber nicht sch\u00f6n) und noch schlimmer &#8211; innerhalb der ST Familie ist auch noch jeder Chip individuell implementiert.<\/p>\n<p>Da ich noch andere Hobbies habe, bin ich nicht bereit, jetzt wochenlang in die Niederungen der Hardwareprogrammierung f\u00fcr den F401 Chip einzusteigen. Nur um es beim Umstieg auf einen anderen Chip wieder neu anzufangen. Hier verrennt man sich in Nischen. F\u00fcr professionelle Entwickler ist es sicher sch\u00f6n, f\u00fcr jedes Problem eine L\u00f6sung zu haben. F\u00fcr mich als Bastler ist es leider eine Sackgasse.<\/p>\n<p>Da f\u00fcr mich das Entdecken und Ausprobieren ohnehin eher im Vordergrund steht als das Realisieren, habe ich \u00fcberlegt, welche anderen M\u00f6glichkeiten zur Verf\u00fcgung stehen. Es sollten g\u00fcnstige Entwicklungsboards zur Verf\u00fcgung stehen und zumindest theoretisch die M\u00f6glichkeit bestehen, auch eigene Boards zu entwickeln. Und das wichtigste: es sollte eine vern\u00fcnftige Entwicklungsumgebung verf\u00fcgbar sein.<\/p>\n<p><strong>Atmel AVR<\/strong><\/p>\n<p>Die 8 Bit Atmel-AVR Familie ist in Maker-Kreisen sehr stark verbreitet. Besonders die Arduino Entwicklung hat v\u00f6llig neue Anwender Kreise erschlossen. Vor 15 Jahren habe ich schon\u00a0 mal damit experimentiert. Auch das Frequenzz\u00e4hler Projekt ist mit einem AVR Prozessor realisiert. Allerdings wollte ich es nicht einfach nachbauen sondern auch erweitern. Daf\u00fcr habe ich in der Prozessorliste auch ein geeignetes Exemplar gefunden &#8211; kann es aber nicht in Einzelst\u00fcckzahlen kaufen. Bei den 8 Bit Prozessoren st\u00f6\u00dft man Allgemein schnell an Grenzen, vor allem der RAM Bereich ist bei den meisten (allen?) Exemplaren sehr begrenzt.<\/p>\n<p>Es gibt auch eine 32 Bit Variante &#8211; die wird aber scheinbar von Bastlern nur wenig verwendet. In Folge gibt es auch nicht so viel Hilfe und Tutorials. Und man kann auch nur begrenzt viele Modelle kaufen.<\/p>\n<p><strong>TI MSP 430<\/strong><\/p>\n<p>Dieser 16 Bit Prozessor war von Anfang an auf niedrigen Energieverbrauch optimiert. Mir gef\u00e4llt die Architektur (einfach und \u00fcberschaubar) und es gibt auch eine brauchbare Entwicklungsumgebung. Auch damit hatte ich vor 10 Jahren schon mal experimentiert und auch hier gibt das Datenblatt f\u00fcr mein geplantes Projekt geeignete Modell her. Aber auch hier hapert es mit dem Kaufen. Es gibt viele Varianten, aber gerade die interessanten Modelle sind nicht f\u00fcr den Bastler erh\u00e4ltlich.<\/p>\n<p><strong>Microchip PIC<\/strong><\/p>\n<p>Eigentlich gef\u00e4llt mir dieser Prozessor von der Architektur her nicht. Aber er hat ein gro\u00dfe Verbreitung und f\u00fcr den Bastler gibt es viele Modelle zu kaufen. Deshalb habe ich mir diese Modellreihe mal angesehen.<\/p>\n<p>Die PIC Familie besteht nicht nur aus den (h\u00e4sslichen) 8 Bit Varianten. Es gibt auch 16 Bit und 32 Bit Prozessoren. Beim Studium der Datenbl\u00e4tter ist mir aufgefallen, dass die 32 Bit Varianten PIC32 auf dem MIPS Prozessor basieren. Damit war mein Interesse geweckt. Als Bastler kann ich viele verschiedene Modelle kaufen und es gibt sie auch im DIL Geh\u00e4use, ideal f\u00fcr einen Steckbrett-Aufbau. Eine eigene Platine kann mit minimaler externer Beschaltung realisiert werden (das war auch beim AVR toll).<\/p>\n<p>Die Entwicklungsumgebung kann man sich bei Microchip herunterladen und sie kam mir gleich bekannt vor &#8211; sie basiert auf Netbeans (eine Java und C++ Entwicklungsumgebung). Praktischerweise gibt es sie auch f\u00fcr Linux. Auch wenn ich im Augenblick mit Windows 8.1 arbeite, wechsele ich hin und wieder zwischen Ubuntu und Windows. Dann ist es sch\u00f6n, wenn die Entwicklungsumgebung in beiden Systemen verf\u00fcgbar ist.<\/p>\n<p>Die Installation ist einfach und ohne \u00dcberraschungen. Es kommt auch ein Simulator mit, also habe ich gleich mal &#8222;Blinky&#8220; &#8211; das HelloWorld der Embedded Welt ausprobiert und erweitert. Alles hat auf anhieb funktioniert und man mussten sich nicht mit unerwarteten Problemen rumschlagen. Die Hardware ist bestellt, kommt aber erst in ein paar Tagen. Dann werde ich weiter berichten. Ich wollte mich schon lange mal mit der MIPS Welt auseinandersetzen.<\/p>\n<p><a href=\"http:\/\/techblog.auchmonoabspielbar.de\/wp-content\/uploads\/2015\/01\/Simulator.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-full wp-image-60\" src=\"http:\/\/techblog.auchmonoabspielbar.de\/wp-content\/uploads\/2015\/01\/Simulator.png\" alt=\"Simulator\" width=\"1073\" height=\"847\" srcset=\"http:\/\/techblog.auchmonoabspielbar.de\/wp-content\/uploads\/2015\/01\/Simulator.png 1073w, http:\/\/techblog.auchmonoabspielbar.de\/wp-content\/uploads\/2015\/01\/Simulator-300x237.png 300w, http:\/\/techblog.auchmonoabspielbar.de\/wp-content\/uploads\/2015\/01\/Simulator-624x493.png 624w\" sizes=\"auto, (max-width: 1073px) 100vw, 1073px\" \/><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Nachdem ich mich \u00fcber die Feiertage etwas intensiver mit der mbed Umgebung besch\u00e4ftigt habe, ist meine erste Begeisterung etwas ged\u00e4mpft worden. Solange man sich innerhalb des mbed Frameworks bewegt, ist alles prima. Mit wenigen C Statements kann man sich sch\u00f6ne Sachen programmieren. H\u00e4sslich wird es, sobald man etwas braucht, was nicht f\u00fcr das Framework abgedeckt [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"class_list":["post-58","post","type-post","status-publish","format-standard","hentry","category-embedded"],"_links":{"self":[{"href":"http:\/\/techblog.auchmonoabspielbar.de\/index.php?rest_route=\/wp\/v2\/posts\/58","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/techblog.auchmonoabspielbar.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/techblog.auchmonoabspielbar.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/techblog.auchmonoabspielbar.de\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/techblog.auchmonoabspielbar.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=58"}],"version-history":[{"count":1,"href":"http:\/\/techblog.auchmonoabspielbar.de\/index.php?rest_route=\/wp\/v2\/posts\/58\/revisions"}],"predecessor-version":[{"id":61,"href":"http:\/\/techblog.auchmonoabspielbar.de\/index.php?rest_route=\/wp\/v2\/posts\/58\/revisions\/61"}],"wp:attachment":[{"href":"http:\/\/techblog.auchmonoabspielbar.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=58"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/techblog.auchmonoabspielbar.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=58"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/techblog.auchmonoabspielbar.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=58"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}