{"id":663,"date":"2013-03-16T22:36:19","date_gmt":"2013-03-16T21:36:19","guid":{"rendered":"http:\/\/www.admindu.de\/wordpress\/?p=663"},"modified":"2014-01-22T17:49:39","modified_gmt":"2014-01-22T16:49:39","slug":"mehr-arm","status":"publish","type":"post","link":"https:\/\/www.admindu.de\/wordpress\/?p=663","title":{"rendered":"Mehr ARM&#8230;.."},"content":{"rendered":"<p>Mittlerweile habe ich mir ein nettes ARM-Board zusammengel\u00f6tet und eine Firmware auf Basis der Codebase von microbuilder.eu gebaut.<\/p>\n<p><a href=\"http:\/\/www.admindu.de\/wordpress\/wp-content\/uploads\/2013\/03\/20130316_220808.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-662\" alt=\"20130316_220808\" src=\"http:\/\/www.admindu.de\/wordpress\/wp-content\/uploads\/2013\/03\/20130316_220808-300x280.jpg\" width=\"300\" height=\"280\" srcset=\"https:\/\/www.admindu.de\/wordpress\/wp-content\/uploads\/2013\/03\/20130316_220808-300x280.jpg 300w, https:\/\/www.admindu.de\/wordpress\/wp-content\/uploads\/2013\/03\/20130316_220808-1024x955.jpg 1024w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>Unten links in hellblau sieht man den DHT11 Feuchtigkeits- und Temperatur-Sensor.\u00a0 Direkt dr\u00fcber der LPC1114 im DIP28. Neben dem DHT11 ein 25Mhz Quarz, der LPC-Core l\u00e4uft dann via PLL auf 50Mhz. Der untere 8-Pin K\u00e4fer rechts ist ein i2c EEProm, dar\u00fcber eine DS1337 i2c Realtime Clock. Der 16-Pin oben rechts im Eck ist ein PCF8574 i2c IO-Extender f\u00fcr den HD44780 basierten 2&#215;16 Zeichen Display von Pollin. Unten rechts sieht man das USB2UART Breakout.<\/p>\n<p><!--more--><\/p>\n<p>Auf dem ersten Bild sieht man Datum und Uhrzeit, die von der DS1337 gelesen und entsprechend dargestellt werden. Auf dem Bild unten sieht man Feuchtigkeit und Temperatur vom DHT11.<\/p>\n<p><a href=\"http:\/\/www.admindu.de\/wordpress\/wp-content\/uploads\/2013\/03\/20130316_220800.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-661\" alt=\"20130316_220800\" src=\"http:\/\/www.admindu.de\/wordpress\/wp-content\/uploads\/2013\/03\/20130316_220800-300x281.jpg\" width=\"300\" height=\"281\" srcset=\"https:\/\/www.admindu.de\/wordpress\/wp-content\/uploads\/2013\/03\/20130316_220800-300x281.jpg 300w, https:\/\/www.admindu.de\/wordpress\/wp-content\/uploads\/2013\/03\/20130316_220800-1024x961.jpg 1024w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>Die linke Taster ist f\u00fcr den System-Reset. Beide in Kombination dienen dazu, das System in den Bootloader zu bringen, damit neue Firmware geflasht werden kann. Der Kontrast des Display wird \u00fcber ein RC-Glied am PWM des 16-Bit Timer0 geregelt. Die Stromversorgung des kompletten Boards erfolgt \u00fcber das USB Breakout. Das Board stellt 3.3V bis 100 mA sowie 5V bis 500 mA zur Verf\u00fcgung. Der Display wird mit 5V betrieben. Der Rest der Schaltung mit 3.3V. Selbst der PCF8574 l\u00e4uft mit 3.3V, da dem Display auf den I\/O Leitungen ein 3.3V Logik-Pegel reicht. Die meisten I\/O PINs des LPC1114 sind auch 5V tolerant, sodass man auch direkt am Microcontroller 5V Komponenten anbinden kann. Genaue Informationen zu den jeweiligen PINs finden sich im Datenblatt. Die PIN-Leiste links oben f\u00fchrt noch einige I\/Os raus. Die 4 PINs oben in der Mitte f\u00fchren den i2c plus 3.3V und GND. Die gr\u00fcnen Drahtbr\u00fccken sind der i2c Bus, gelb ist GPIO, weiss ist GND und rot 3.3 bzw 5V. Grau und blau sind das RX und TX vom UART.<\/p>\n<p>Hinsichtlich der Software habe ich die Codebase von Microbuilder.eu von allen Treibern befreit, die ich erst mal nicht brauche. Dann habe ich f\u00fcr den DHT11, die DS1337 sowie die Ansteuerung des Display via PCF8574 die vorhandenen Treiber vom Atmega auf den ARM portiert. Hier waren vor allem Anpassungen hinsichtlich der GPIO und des I2C notwendig. F\u00fcr das pr\u00e4zise Timing, dass vor allem beim Bit-Bang vom DHT11 und der Display-Steuerung notwendig ist, verwende ich einen 32-Bit Timer. Bisher ist es mir nicht gelungen, daf\u00fcr den 24-Bit Systick-Timer zu benutzen und einen Timer einzusparen. Leider ist die Code-Qualit\u00e4t noch nicht so gut, dass ich diesen hier ver\u00f6ffentlichen m\u00f6chte. Hole das aber nach, sobald der Code vorzeigbar ist.<\/p>\n<p>Als n\u00e4chstes TODO steht noch der EEProm aus, sowie eine Erweiterung der CLI-Konsole um die M\u00f6glichkeit die Uhrzeit einzustellen. Dann die Anbindung der Funkmodule RFM12 und RFM70, die ich auch am Atmega gerne einsetze und am Lager habe.\u00a0 Wenn sich dann im Laufe der Zeit ein optimales Subset aus Funktionen gefunden hat, dann werde ich das finale Board in Eagle layouten und \u00e4tzen.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Mittlerweile habe ich mir ein nettes ARM-Board zusammengel\u00f6tet und eine Firmware auf Basis der Codebase von microbuilder.eu gebaut. Unten links in hellblau sieht man den DHT11 Feuchtigkeits- und Temperatur-Sensor.\u00a0 Direkt dr\u00fcber der LPC1114 im DIP28. Neben dem DHT11 ein 25Mhz Quarz, der LPC-Core l\u00e4uft dann via PLL auf 50Mhz. Der untere 8-Pin K\u00e4fer rechts ist &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/www.admindu.de\/wordpress\/?p=663\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Mehr ARM&#8230;..&#8221;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[49],"tags":[72,74,75,73,77,78,76],"class_list":["post-663","post","type-post","status-publish","format-standard","hentry","category-arm-bastelei","tag-arm","tag-cortex-m0","tag-linaro","tag-lpc1114fn28","tag-lpc21isp","tag-nxp","tag-summon"],"_links":{"self":[{"href":"https:\/\/www.admindu.de\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/663","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.admindu.de\/wordpress\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.admindu.de\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.admindu.de\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.admindu.de\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=663"}],"version-history":[{"count":17,"href":"https:\/\/www.admindu.de\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/663\/revisions"}],"predecessor-version":[{"id":845,"href":"https:\/\/www.admindu.de\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/663\/revisions\/845"}],"wp:attachment":[{"href":"https:\/\/www.admindu.de\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=663"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.admindu.de\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=663"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.admindu.de\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=663"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}