{"id":22,"date":"2014-12-17T20:06:13","date_gmt":"2014-12-17T20:06:13","guid":{"rendered":"http:\/\/techblog.auchmonoabspielbar.de\/?p=22"},"modified":"2014-12-17T20:06:13","modified_gmt":"2014-12-17T20:06:13","slug":"mbed-st-nucleo-f401re","status":"publish","type":"post","link":"http:\/\/techblog.auchmonoabspielbar.de\/?p=22","title":{"rendered":"mbed ST Nucleo F401RE"},"content":{"rendered":"<p>Ich habe vor einiger Zeit mal mit einem &#8222;Netduino&#8220; herumgespielt. F\u00fcr ein embedded System ist das eine ungew\u00f6hnlich komfortable Sache.Es handelt sich dabei um ein ARM System mit dem Anspruch, \u00e4hnlich einfach wie ein Arduino zu sein.<\/p>\n<p>Auf des Desktop bin ich kein gro\u00dfer Freund vom Visual Studio. Im ebedded Bereich ist das aber mit weitem Abstand die komfortabelste und problemloseste Umgebung die ich kenne. Software installieren, Netduino an den USB Port anschlie\u00dfen und los geht&#8217;s. Inclusive eines komfortablen deployments und debuggers.<\/p>\n<p>Mich pers\u00f6nlich hat jedoch der Overhead der .Net Umgebung gest\u00f6rt. Zu diesem Zeitpunkt gab es noch keinen JIT Compiler f\u00fcr die ebedded Variante (hat sich das ge\u00e4ndert?). Ein einfaches Port-Bit setzen hat etwa 5,5 Mikrosekunden gedauert. Zugegeben, es waren ausgesprochen komfortable logische Port-Pins mit vielen M\u00f6glichkeiten. Aber es war einfach zu langsam. \u00dcber 350 Takte nur um einen Port zu setzen, das ist als w\u00fcrde man seine Pommes Frittes mit dem Lastwagen abholen. Damit konnte ich noch nicht mal einen einfachen <a href=\"http:\/\/forums.netduino.com\/index.php?\/topic\/576-my-first-netduino-project\/?hl=%2Brotary+%2Bencoder\" target=\"_blank\">digitalen Dreh-Encoder<\/a> ohne Schrittverluste abfragen. Deshalb habe ich dieses sch\u00f6ne Projekt nicht weiter verfolgt.<\/p>\n<p>Vor einem Jahr bin ich auf die mbed Umgebung gesto\u00dfen. Sie erlaubt ebenfalls einen extrem einfachen Einstieg. Einfach ein online Konto einrichten und die einfache aber ausreichende Entwicklungsumgebung l\u00e4uft im Browser. Der Compile Button l\u00f6st einen Browser Download der Bin\u00e4rdatei aus, welche man direkt in dem Controller speichern kann, der sich \u00fcber den USB Port als Massenspeicher anmeldet.<\/p>\n<p><a title=\"ST Nucleo F401RE\" href=\"http:\/\/developer.mbed.org\/platforms\/ST-Nucleo-F401RE\/\" target=\"_blank\">http:\/\/developer.mbed.org\/platforms\/ST-Nucleo-F401RE\/<\/a><\/p>\n<p>Der Source Code wird in C++ erstellt &#8211; kein Problem, ich habe \u00fcber 20 Jahre mit C und C++ gearbeitet. Als routinem\u00e4\u00dfiger Java Mann lag mir das C# vom Netduino aber eher. Die Hoffnung war, dass der C++ Compiler besseren Code erzeugt.<\/p>\n<p>Also einfach mal ein kleines Programm geschrieben &#8211; Port auf 1 gesetzt, zur\u00fcck auf 0 und das ganze in eine Schleife gepackt und das Oszilloskop dran gehangen. Hier komme ich nun auf Zeiten von 260 Nanosekunden zum setzen und zur\u00fccksetzen. Die Schleife selber erzeugt \u00fcbrigens keine messbare Verz\u00f6gerung.<\/p>\n<p><a href=\"http:\/\/techblog.auchmonoabspielbar.de\/wp-content\/uploads\/2014\/12\/mbedTakt.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-full wp-image-23\" src=\"http:\/\/techblog.auchmonoabspielbar.de\/wp-content\/uploads\/2014\/12\/mbedTakt.jpg\" alt=\"mbed Bit Setzen und Zur\u00fccksetzen\" width=\"800\" height=\"533\" srcset=\"http:\/\/techblog.auchmonoabspielbar.de\/wp-content\/uploads\/2014\/12\/mbedTakt.jpg 800w, http:\/\/techblog.auchmonoabspielbar.de\/wp-content\/uploads\/2014\/12\/mbedTakt-300x199.jpg 300w, http:\/\/techblog.auchmonoabspielbar.de\/wp-content\/uploads\/2014\/12\/mbedTakt-624x415.jpg 624w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/a><\/p>\n<p>Ein kurzer Blick in das Datenblatt &#8211; der F401RE hat einen Takt von 84 MHz &#8211; dann sind das ca. 22 Takte. Das ist ein sehr viel besserer Wert. Ein sch\u00f6ner Nebeneffekt: ein Board kostet gerade mal 8 Euro. Daf\u00fcr bekommt man einen 32 Bit ARM Prozessor mit 84 MHz Takt, ordentlich RAM und Flash Speicher sowie einen 12 Bit A\/D Wandler.<\/p>\n<p><a href=\"http:\/\/techblog.auchmonoabspielbar.de\/wp-content\/uploads\/2014\/12\/Nucleo-F401RE.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-full wp-image-24\" src=\"http:\/\/techblog.auchmonoabspielbar.de\/wp-content\/uploads\/2014\/12\/Nucleo-F401RE.jpg\" alt=\"Nucleo-F401RE\" width=\"800\" height=\"533\" srcset=\"http:\/\/techblog.auchmonoabspielbar.de\/wp-content\/uploads\/2014\/12\/Nucleo-F401RE.jpg 800w, http:\/\/techblog.auchmonoabspielbar.de\/wp-content\/uploads\/2014\/12\/Nucleo-F401RE-300x199.jpg 300w, http:\/\/techblog.auchmonoabspielbar.de\/wp-content\/uploads\/2014\/12\/Nucleo-F401RE-624x415.jpg 624w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/a><\/p>\n<p>Der Nachteil: der einfache Einstieg \u00fcber den Browser ist gleichzeitig die gr\u00f6\u00dfte Beschr\u00e4nkung f\u00fcr die Entwicklung. Debugging ist nicht. Ich habe verschiedene Entwicklungsumgebungen ausprobiert und habe f\u00fcr Debugging-Zwecke eine freie Version von Keil behalten. Diese ist aber in keiner Weise mit der Visual Studio Entwicklung vergleichbar. Schade &#8211; aber man kann nicht alles haben.<\/p>\n<p>Jetzt habe ich schon mal eine sch\u00f6ne L\u00f6sung, ich muss mir nur noch ein Problem daf\u00fcr suchen&#8230;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ich habe vor einiger Zeit mal mit einem &#8222;Netduino&#8220; herumgespielt. F\u00fcr ein embedded System ist das eine ungew\u00f6hnlich komfortable Sache.Es handelt sich dabei um ein ARM System mit dem Anspruch, \u00e4hnlich einfach wie ein Arduino zu sein. Auf des Desktop bin ich kein gro\u00dfer Freund vom Visual Studio. Im ebedded Bereich ist das aber mit [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"class_list":["post-22","post","type-post","status-publish","format-standard","hentry","category-embedded"],"_links":{"self":[{"href":"http:\/\/techblog.auchmonoabspielbar.de\/index.php?rest_route=\/wp\/v2\/posts\/22","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=22"}],"version-history":[{"count":1,"href":"http:\/\/techblog.auchmonoabspielbar.de\/index.php?rest_route=\/wp\/v2\/posts\/22\/revisions"}],"predecessor-version":[{"id":25,"href":"http:\/\/techblog.auchmonoabspielbar.de\/index.php?rest_route=\/wp\/v2\/posts\/22\/revisions\/25"}],"wp:attachment":[{"href":"http:\/\/techblog.auchmonoabspielbar.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=22"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/techblog.auchmonoabspielbar.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=22"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/techblog.auchmonoabspielbar.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=22"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}