{"id":31101,"date":"2019-10-31T21:39:28","date_gmt":"2019-10-31T18:39:28","guid":{"rendered":"https:\/\/prohoster.info\/blog\/pishem-ota-zagruzchik-dlya-atmega128rfa1-v-sostave-ustrojstva-smart-response-xe\/"},"modified":"2019-10-31T21:39:28","modified_gmt":"2019-10-31T18:39:28","slug":"pishem-ota-zagruzchik-dlya-atmega128rfa1-v-sostave-ustrojstva-smart-response-xe","status":"publish","type":"post","link":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/pishem-ota-zagruzchik-dlya-atmega128rfa1-v-sostave-ustrojstva-smart-response-xe","title":{"rendered":"Entwicklung eines OTA-Bootloaders f\u00fcr den ATmega128RFA1 (Teil des Smart Response XE Ger\u00e4ts)","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Entwicklung eines OTA-Bootloaders f\u00fcr den ATmega128RFA1 (Teil des Smart Response XE Ger\u00e4ts)\" src=\"\/wp-content\/uploads\/2019\/04\/c3c47048a601bcd0a79b44535de2f36f.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAlles begann mit dem Erwerb eines interessanten Ger\u00e4ts auf dem Sekund\u00e4rmarkt \u2013 dem Smart Response XE (<noindex><a rel=\"nofollow\" href=\"http:\/\/downloads.smarttech.com\/media\/sitecore\/en\/support\/product\/smartresponse\/smartresponsexe\/specsheets\/specsresponsexev18mar13.pdf\">kurze Beschreibung<\/a><\/noindex>). Es ist f\u00fcr Schulen gedacht: Jeder Sch\u00fcler in der Klasse erh\u00e4lt ein Ger\u00e4t, das wie ein elektronisches Notizbuch oder ein \u00dcbersetzer aus den 90ern aussieht. Der Lehrer stellt eine Frage, und die Sch\u00fcler geben ihre Antworten \u00fcber die Tastaturen der Ger\u00e4te ein, die per Funk (802.15.4) an einen Empf\u00e4nger verbunden sind, der am Computer des Lehrers angeschlossen ist.<\/p>\n<p>Die Unterst\u00fctzung dieser Ger\u00e4te wurde vor einigen Jahren eingestellt, und das, was Schulen f\u00fcr 100-200 Dollar pro St\u00fcck gekauft haben, wird jetzt auf eBay f\u00fcr 10 Dollar oder weniger angeboten. Die Hardware eignet sich hervorragend f\u00fcr geekige Experimente:<\/p>\n<ul>\n<li>60-Tasten-Tastatur<\/li>\n<li>Display mit einer Aufl\u00f6sung von 384&nbsp;\u00d7&nbsp;136, 2 Bit pro Pixel \u2013 \u00e4hnlich wie bei BK, CGA, jedoch 4 keine Farben, sondern Helligkeitsstufen<\/li>\n<li>Mikrocontroller ATmega128RFA1 (128 kB Flash-Speicher, 4 kB EEPROM, 16 kB RAM, Transceiver nach Standard 802.15.4)<\/li>\n<li>externer Flash-Speicher von 1 Megabit (128 Kilobyte) mit SPI-Schnittstelle<\/li>\n<li>Fach f\u00fcr 4 AAA-Batterien.<\/li>\n<\/ul>\n<p>\nAus dem Namen des Mikrokontrollers geht hervor, dass er zur AVR-Familie geh\u00f6rt, sodass die Aufgabe, ein Arduino-kompatibles Ger\u00e4t zu erstellen, mehr als trivial ist\u2026<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Aus der Nachricht auf <noindex><a rel=\"nofollow\" href=\"https:\/\/hackaday.com\/2018\/07\/22\/classroom-gadget-turned-arduino-compatible\/\">Hackaday<\/a><\/noindex> erfuhr der Autor, dass das <noindex><a rel=\"nofollow\" href=\"https:\/\/community.arduboy.com\/t\/smart-response-xe-re-purposed-into-arduboy\/6094\/\">bereits gemacht wurde<\/a><\/noindex> (in diesem Link wird auch erkl\u00e4rt, wo was angeschlossen wird), sodass Spiele f\u00fcr Arduboy gestartet werden k\u00f6nnen:<\/p>\n<p><center><div class=\"youtube-placeholder\" data-id=\"6VqPGFtIT8Q\" onclick=\"loadVideo(this)\">\r\n        <img decoding=\"async\" src=\"https:\/\/img.youtube.com\/vi\/6VqPGFtIT8Q\/hqdefault.jpg\" alt=\"Video abspielen\" loading=\"lazy\" width=\"480\" height=\"360\" style=\"width:100%;height:auto;\">\r\n        <div class=\"play-button\"><\/div>\r\n    <\/div><\/center><br \/>\n Aber der Autor interessiert sich weniger daf\u00fcr, auf dem Ger\u00e4t zu spielen, als f\u00fcr das Lernen:<\/p>\n<ul>\n<li>Flash-Speicher mit SPI-Schnittstelle<\/li>\n<li>Bootloader f\u00fcr AVR<\/li>\n<li>der Standard 802.15.4<\/li>\n<\/ul>\n<p>\nDer Autor begann mit dem Schreiben <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/bitbank2\/SmartResponseXE\">der Bibliothek<\/a><\/noindex> (GPL v3), das die Initialisierung des Displays, das Ausgeben von Text und Rechtecken sowie den Zugriff auf den Flash-Speicher mit SPI-Schnittstelle erm\u00f6glicht. Anschlie\u00dfend begann er, Ideen f\u00fcr die praktische Nutzung des Ger\u00e4ts zu entwickeln: ein tragbares, VT-100-kompatibles Terminal, Mehrspieler-Spiele. Nachdem er drei Ger\u00e4te umgebaut hatte, beschloss er, sie zu \u00ablehren\u00bb, Sketche \u00abover-the-air\u00bb zu empfangen. Das w\u00e4re nicht nur interessant, sondern auch sehr praktisch: das Geh\u00e4use des Ger\u00e4ts jedes Mal zu \u00f6ffnen, ist schwierig, und unter dem Deckel des Batteriefachs befinden sich nur \u00d6ffnungen, die den Anschluss eines JTAG-Programmers an das Board erm\u00f6glichen.<\/p>\n<p><img decoding=\"async\" alt=\"Entwicklung eines OTA-Bootloaders f\u00fcr den ATmega128RFA1 (Teil des Smart Response XE Ger\u00e4ts)\" src=\"\/wp-content\/uploads\/2019\/04\/eb928013737c34e50e6a49e7d41d5bd7.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDas reicht aus, um den Arduino-Bootloader zu flashen, aber nicht den Sketch \u2013 der serielle Port ist nicht herausgef\u00fchrt, ohne das Geh\u00e4use zu \u00f6ffnen, kommt man daher nicht weiter. Au\u00dferdem sind die TX0- und RX0-Leitungen des ersten seriellen Ports mit den Leitungen zur Abfrage der Tastaturmatrix kombiniert, und zwar mit denen, die f\u00fcr die Abfrage der Funktionstasten an den Seiten des Displays zust\u00e4ndig sind. Aber was soll man machen \u2013 der Autor hat Folgendes konstruiert:<\/p>\n<p><img decoding=\"async\" alt=\"Entwicklung eines OTA-Bootloaders f\u00fcr den ATmega128RFA1 (Teil des Smart Response XE Ger\u00e4ts)\" src=\"\/wp-content\/uploads\/2019\/04\/8989f4057806b83ff2eb11b6f1ed2d57.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDort hat er die JTAG-Leitungen herausgef\u00fchrt, und jetzt ist es nicht mehr notwendig, das Batteriefach zu \u00f6ffnen. Damit man auch Sketches hochladen kann, hat er auch beide seriellen Ports an denselben Anschluss gelegt und einen Schalter hinzugef\u00fcgt, da das Ger\u00e4t mit eingesetzten Batterien physisch nicht anders abgeschaltet werden kann.<\/p>\n<p>Es war notwendig, recht lange mit L\u00f6tkolben, Cuttermesser und Hei\u00dfklebepistole zu arbeiten. Im Allgemeinen ist es deutlich bequemer, Sketches \u201e\u00fcber die Luft\u201c hochzuladen, man muss dringend etwas in dieser Hinsicht erfinden.<\/p>\n<p>Die Arduino IDE verwendet f\u00fcr das Hochladen von Sketches das Programm <noindex><a rel=\"nofollow\" href=\"http:\/\/www.ladyada.net\/learn\/avr\/avrdude.html\">avrdude<\/a><\/noindex>. Es kommuniziert mit dem Mikrocontroller \u00fcber das Protokoll <noindex><a rel=\"nofollow\" href=\"http:\/\/www.tuxgraphics.org\/common\/src2\/article05101\/stk500_spec_AVR068.pdf\">STK500<\/a><\/noindex>, der den beidseitigen Dateitransfer erm\u00f6glicht. Er ist schlecht kompatibel mit Kan\u00e4len, in denen variable Latenzen, Verzerrungen und Datenverluste auftreten k\u00f6nnen. Wenn in einem seriellen Kanal etwas knistert oder andere St\u00f6rungen auftreten, kann man verr\u00fcckt werden, auf die Ursache zu kommen. Einmal hat der Autor ein halbes Tag geflucht, bis ihm klar wurde, dass es an einem schlechten Kabel und einem launischen CP2102-Interfacewandler lag. Selbst ein Mikrocontroller mit integriertem Interfacewandler, wie zum Beispiel der ATmega32u4, kann sich manchmal so \u201ebenehmen\u201c. Jeder Arduino-Nutzer hat bemerkt, dass Programmierfehler beim Hochladen von Sketchen alles andere als selten sind. Manchmal verl\u00e4uft der Schreibvorgang reibungslos, doch beim anschlie\u00dfenden Lesen wird ein Fehler gefunden. Das bedeutet nicht, dass bei der Aufnahme ein Fehler aufgetreten ist \u2013 der Fehler trat beim Lesen auf. Und jetzt stellen Sie sich vor, dass im \u201eDrahtlos\u201c-Betrieb genau dasselbe, jedoch viel h\u00e4ufiger passiert.<\/p>\n<p>Nachdem der Autor verschiedene Ans\u00e4tze zur L\u00f6sung dieses Problems ausprobiert hat, hat er Folgendes ausgekl\u00fcgelt. Das Ger\u00e4t verf\u00fcgt \u00fcber 128 Kilobyte Flash-Speicher mit SPI-Schnittstelle \u2013 Daten werden \u00fcber Kabel empfangen (wir erinnern uns, dass der Autor bereits ein Ger\u00e4t mit einer Anschlussbuchse hat), wir nutzen diesen Speicher als Puffer und senden die Daten \u00fcber das Funkkanal an ein anderes Ger\u00e4t. Ein Gru\u00df von Cybiko.<\/p>\n<p>Nach dem Schreiben des Codes zur Bedienung des Funkkanals und der Schriftart wurde der Bootloader l\u00e4nger als 4 Kilobyte. Daher musste der Wert von HFUSE von 0xDA auf 0xD8 ge\u00e4ndert werden. Jetzt kann der Bootloader bis zu 8 Kilobyte lang sein, und die Startadresse betr\u00e4gt 0x1E000. Dies ist im Makefile vermerkt, muss jedoch auch beim Flashen ber\u00fccksichtigt werden. <noindex><a rel=\"nofollow\" href=\"https:\/\/www.arduino.cc\/en\/Hacking\/Bootloader?from=Tutorial.Bootloader\">Bootloader<\/a><\/noindex> mit avrdude.<\/p>\n<p>Der 802.15.4 Sender\/Empf\u00e4nger im ATmega128RFA1 ist urspr\u00fcnglich f\u00fcr den Betrieb mit dem Protokoll vorgesehen. <noindex><a rel=\"nofollow\" href=\"https:\/\/www.zigbee.org\/what-is-zigbee\/\">ZigBee<\/a><\/noindex>, der ziemlich komplex ist, daher entschied sich der Autor, stattdessen einfach Pakete zu \u00fcbertragen. Dies ist hardwareseitig im ATmega128RFA1 implementiert, sodass nur wenig Code ben\u00f6tigt wird. Um es zudem zu vereinfachen, entschied sich der Autor, einen festen Kanal zu verwenden, ohne die M\u00f6glichkeit zu bieten, ihn sogar manuell auszuw\u00e4hlen. Der Standard 802.15.4 unterst\u00fctzt 16 Kan\u00e4le mit Nummern von 11 bis 26. Diese sind stark ausgelastet, einige \u00fcberlappen auch mit WiFi-Kan\u00e4len (ZigBee-Kan\u00e4le sind rot markiert, WiFi-Kan\u00e4le blau, gr\u00fcn und gelb).<\/p>\n<p><img decoding=\"async\" alt=\"Entwicklung eines OTA-Bootloaders f\u00fcr den ATmega128RFA1 (Teil des Smart Response XE Ger\u00e4ts)\" src=\"\/wp-content\/uploads\/2019\/04\/650166fdb8e1d0361d015e4c2e85d7f1.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEs stellte sich heraus, dass die Kan\u00e4le 15 und 26 am wenigsten anf\u00e4llig f\u00fcr St\u00f6rungen durch WiFi sind. Der Autor w\u00e4hlte den zweiten. Hinweis: Der \u00dcbersetzer wei\u00df nicht, ob es erlaubt ist, ZigBee auf diese Weise zu vereinfachen. Vielleicht sollte man noch etwas programmieren und es vollst\u00e4ndig implementieren?<\/p>\n<p>Auf dem ersten Ger\u00e4t muss ein Zustandsautomat implementiert werden, der Daten \u00fcber das STK500-Protokoll \u00fcbertr\u00e4gt. Im Gro\u00dfen und Ganzen sind die gesendeten und empfangenen Nachrichten eigenst\u00e4ndig, aber einige h\u00e4ngen von zuvor \u00fcber den Kanal gesendeten ab. Eine Beschreibung des Dialogs ist angef\u00fchrt. <noindex><a rel=\"nofollow\" href=\"http:\/\/baldwisdom.com\/bootloading\/\">hier<\/a><\/noindex>.<\/p>\n<p>Ein wichtiger Aspekt dieses Dialogs ist die \u00dcbertragung von Paketen, die zur Speicherung im Flash-Speicher des Zielger\u00e4ts bestimmt sind. Bei einfachen Mikrocontrollern der AVR-Familie betr\u00e4gt die Seitenkapazit\u00e4t 128 Byte, w\u00e4hrend sie bei dem ATmega128RFA1 256 Byte betr\u00e4gt. Das ist auch der Fall f\u00fcr den Flash-Speicher, der \u00fcber das SPI-Protokoll angeschlossen wird. Wenn das Programm im ersten Ger\u00e4t den Sketch hochl\u00e4dt, wird dieser nicht sofort an das zweite Ger\u00e4t \u00fcbertragen, sondern zun\u00e4chst in diesen Speicher geschrieben. Wenn die Arduino IDE die Richtigkeit der Speicherung \u00fcberpr\u00fcft, werden die aufgenommenen Daten gesendet. Jetzt m\u00fcssen die empfangenen Daten \u00fcber den Funkkanal an das zweite Ger\u00e4t \u00fcbertragen werden. Dabei erfolgt der Wechsel vom Empfang zum Senden und zur\u00fcck recht h\u00e4ufig. Das STK500-Protokoll ist gegen\u00fcber Verz\u00f6gerungen gleichg\u00fcltig, toleriert jedoch keinen Datenverlust (es ist komisch, dass zuvor erw\u00e4hnt wurde, dass Verz\u00f6gerungen bei der Daten\u00fcbertragung ebenfalls Auswirkungen haben). Datenverluste bei der drahtlosen \u00dcbertragung sind jedoch unvermeidlich. Im ATmega128RFA1 gibt es eine hardwareseitige Implementierung f\u00fcr erneute Anfragen im Fall von Zweifeln an der \u00dcbertragungsgenauigkeit, doch der Autor entschied sich, dies selbst programmatisch zu realisieren. Er entwickelte ein Protokoll, bei dem in eine Richtung deutlich mehr Daten \u00fcbertragen werden als in die andere.<\/p>\n<p>Es ist nicht perfekt, aber alles funktioniert. Eine 256-Byte-Seite wird in vier Segmente unterteilt, von denen jedes \u00fcber einen Funkkanal als Paket \u00fcbertragen wird. Ein Paket fasst bis zu 125 Byte Daten plus ein Byte f\u00fcr die L\u00e4nge und zwei f\u00fcr die CRC. Die Fragmente mit einer L\u00e4nge von 64 Byte zusammen mit den Seiten- und Segmentnummern (von 0 bis 3) werden dort untergebracht. Im Empfangsger\u00e4t ist eine Variable vorgesehen, die es erm\u00f6glicht, die Anzahl der empfangenen Segmente zu verfolgen. Sobald alle vier ankommen, wird an das sendende Ger\u00e4t eine Best\u00e4tigung gesendet, dass die gesamte Seite empfangen wurde. Gibt es keine Best\u00e4tigung (CRC stimmt nicht \u00fcberein) \u2013 wird die gesamte Seite erneut gesendet. Die Geschwindigkeit ist sogar h\u00f6her als bei der \u00dcbertragung \u00fcber Kabel. Siehe:<\/p>\n<p><center><div class=\"youtube-placeholder\" data-id=\"d-ObUCnRmQU\" onclick=\"loadVideo(this)\">\r\n        <img decoding=\"async\" src=\"https:\/\/img.youtube.com\/vi\/d-ObUCnRmQU\/hqdefault.jpg\" alt=\"Video abspielen\" loading=\"lazy\" width=\"480\" height=\"360\" style=\"width:100%;height:auto;\">\r\n        <div class=\"play-button\"><\/div>\r\n    <\/div><\/center><br \/>\nTats\u00e4chlich sollte man einen praktischen Weg vorsehen, um Ger\u00e4te \u00fcber ein Kabel f\u00fcr das Hochladen von Sketchen anzuschlie\u00dfen. Zum Beispiel k\u00f6nnte man einen solchen CP2102-Schnittstellenwandler wie auf dem Foto innen anbringen und so an der Platine befestigen, dass er den Zugkr\u00e4ften beim Ein- und Ausstecken des Micro-USB-Kabels standh\u00e4lt.<\/p>\n<p><img decoding=\"async\" alt=\"Entwicklung eines OTA-Bootloaders f\u00fcr den ATmega128RFA1 (Teil des Smart Response XE Ger\u00e4ts)\" src=\"\/wp-content\/uploads\/2019\/04\/e03563fcd985467abb236475cbbf9e3f.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEs gibt auch einen 3,3-Volt-Spannungsregler (und wie man ihn in einem Ger\u00e4t mit 6-Volt-Stromversorgung verwendet \u2014 vorausgesetzt, es gibt einen solchen Regler, und man kann zwei Dioden hinzuf\u00fcgen, um automatisch auszuw\u00e4hlen, von welchem er die Versorgung beziehen soll). Von der Schnittstellenplatine m\u00fcssen alle drei LEDs entfernt werden, da sie sonst die Batterien zus\u00e4tzlich belasten, w\u00e4hrend sie davon betrieben werden, und die Abfrage der Tastatur sowie die Arbeit mit dem Flash-Speicher \u00fcber das SPI-Interface st\u00f6ren k\u00f6nnen.<\/p>\n<p>Das Verfolgen des Ziels stellte sich als sogar interessanter heraus als dessen Erreichung (und das ist kein Witz \u00fcber den Bus). Der Autor hat viel \u00fcber Bootloader f\u00fcr AVR, Flash-Speicher mit SPI-Interface, das STK500-Protokoll und den Standard 802.15.4 gelernt.<\/p>\n<p>Der gesamte restliche Code, zus\u00e4tzlich zu der oben beschriebenen Bibliothek \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/bitbank2\/SMART_bootloader\">hier<\/a><\/noindex>, und dieser steht ebenfalls unter GPL v3. Der Twitter-Account des Autors \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/fast_code_r_us\">hier<\/a><\/noindex>.<br \/>\n<br \/>Quelle: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/447026\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412\u0441\u0451 \u043d\u0430\u0447\u0430\u043b\u043e\u0441\u044c \u0441 \u043f\u0440\u0438\u043e\u0431\u0440\u0435\u0442\u0435\u043d\u0438\u044f \u0430\u0432\u0442\u043e\u0440\u043e\u043c \u043d\u0430 \u0432\u0442\u043e\u0440\u0438\u0447\u043d\u043e\u043c \u0440\u044b\u043d\u043a\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u2014 Smart Response XE (\u043a\u0440\u0430\u0442\u043a\u043e\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435). \u041f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u043e \u043e\u043d\u043e \u0434\u043b\u044f \u0448\u043a\u043e\u043b: \u043a\u0430\u0436\u0434\u044b\u0439 \u0443\u0447\u0435\u043d\u0438\u043a \u0432 \u043a\u043b\u0430\u0441\u0441\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u043f\u043e \u0434\u0435\u0432\u0430\u0439\u0441\u0443, \u043f\u043e\u0445\u043e\u0436\u0435\u043c\u0443 \u043d\u0430 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u0443\u044e \u0437\u0430\u043f\u0438\u0441\u043d\u0443\u044e \u043a\u043d\u0438\u0436\u043a\u0443 \u0438\u043b\u0438 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0447\u0438\u043a \u0434\u0435\u0432\u044f\u043d\u043e\u0441\u0442\u044b\u0445, \u0443\u0447\u0438\u0442\u0435\u043b\u044c \u0437\u0430\u0434\u0430\u0451\u0442 \u0432\u043e\u043f\u0440\u043e\u0441, \u0438 \u0443\u0447\u0435\u043d\u0438\u043a\u0438 \u043d\u0430\u0431\u0438\u0440\u0430\u044e\u0442 \u043d\u0430 \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u0430\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u043e\u0442\u0432\u0435\u0442\u044b, \u043f\u043e\u0441\u0442\u0443\u043f\u0430\u044e\u0449\u0438\u0435 \u043f\u043e \u0440\u0430\u0434\u0438\u043e\u043a\u0430\u043d\u0430\u043b\u0443 (802.15.4) \u0432 \u043f\u0440\u0438\u0451\u043c\u043d\u0438\u043a, \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0451\u043d\u043d\u044b\u0439 \u043a \u0443\u0447\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u043c\u0443 \u041f\u041a. [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":23069,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-31101","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0412\u0441\u0451 \u043d\u0430\u0447\u0430\u043b\u043e\u0441\u044c \u0441 \u043f\u0440\u0438\u043e\u0431\u0440\u0435\u0442\u0435\u043d\u0438\u044f \u0430\u0432\u0442\u043e\u0440\u043e\u043c \u043d\u0430 \u0432\u0442\u043e\u0440\u0438\u0447\u043d\u043e\u043c \u0440\u044b\u043d\u043a\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u2014 Smart Response XE (\u043a\u0440\u0430\u0442\u043a\u043e\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435). \u041f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u043e \u043e\u043d\u043e \u0434\u043b\u044f \u0448\u043a\u043e\u043b: \u043a\u0430\u0436\u0434\u044b\u0439 \u0443\u0447\u0435\u043d\u0438\u043a \u0432 \u043a\u043b\u0430\u0441\u0441\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u043f\u043e \u0434\u0435\u0432\u0430\u0439\u0441\u0443, \u043f\u043e\u0445\u043e\u0436\u0435\u043c\u0443 \u043d\u0430 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u0443\u044e \u0437\u0430\u043f\u0438\u0441\u043d\u0443\u044e \u043a\u043d\u0438\u0436\u043a\u0443 \u0438\u043b\u0438 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0447\u0438\u043a \u0434\u0435\u0432\u044f\u043d\u043e\u0441\u0442\u044b\u0445, \u0443\u0447\u0438\u0442\u0435\u043b\u044c \u0437\u0430\u0434\u0430\u0451\u0442 \u0432\u043e\u043f\u0440\u043e\u0441, \u0438 \u0443\u0447\u0435\u043d\u0438\u043a\u0438 \u043d\u0430\u0431\u0438\u0440\u0430\u044e\u0442 \u043d\u0430 \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u0430\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u043e\u0442\u0432\u0435\u0442\u044b, \u043f\u043e\u0441\u0442\u0443\u043f\u0430\u044e\u0449\u0438\u0435 \u043f\u043e \u0440\u0430\u0434\u0438\u043e\u043a\u0430\u043d\u0430\u043b\u0443 (802.15.4) \u0432 \u043f\u0440\u0438\u0451\u043c\u043d\u0438\u043a, \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0451\u043d\u043d\u044b\u0439 \u043a \u0443\u0447\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u043c\u0443 \u041f\u041a.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/pishem-ota-zagruzchik-dlya-atmega128rfa1-v-sostave-ustrojstva-smart-response-xe\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"de_DE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041f\u0438\u0448\u0435\u043c OTA-\u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a \u0434\u043b\u044f ATmega128RFA1 (\u0432 \u0441\u043e\u0441\u0442\u0430\u0432\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 Smart Response XE) | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412\u0441\u0451 \u043d\u0430\u0447\u0430\u043b\u043e\u0441\u044c \u0441 \u043f\u0440\u0438\u043e\u0431\u0440\u0435\u0442\u0435\u043d\u0438\u044f \u0430\u0432\u0442\u043e\u0440\u043e\u043c \u043d\u0430 \u0432\u0442\u043e\u0440\u0438\u0447\u043d\u043e\u043c \u0440\u044b\u043d\u043a\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u2014 Smart Response XE (\u043a\u0440\u0430\u0442\u043a\u043e\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435). \u041f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u043e \u043e\u043d\u043e \u0434\u043b\u044f \u0448\u043a\u043e\u043b: \u043a\u0430\u0436\u0434\u044b\u0439 \u0443\u0447\u0435\u043d\u0438\u043a \u0432 \u043a\u043b\u0430\u0441\u0441\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u043f\u043e \u0434\u0435\u0432\u0430\u0439\u0441\u0443, \u043f\u043e\u0445\u043e\u0436\u0435\u043c\u0443 \u043d\u0430 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u0443\u044e \u0437\u0430\u043f\u0438\u0441\u043d\u0443\u044e \u043a\u043d\u0438\u0436\u043a\u0443 \u0438\u043b\u0438 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0447\u0438\u043a \u0434\u0435\u0432\u044f\u043d\u043e\u0441\u0442\u044b\u0445, \u0443\u0447\u0438\u0442\u0435\u043b\u044c \u0437\u0430\u0434\u0430\u0451\u0442 \u0432\u043e\u043f\u0440\u043e\u0441, \u0438 \u0443\u0447\u0435\u043d\u0438\u043a\u0438 \u043d\u0430\u0431\u0438\u0440\u0430\u044e\u0442 \u043d\u0430 \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u0430\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u043e\u0442\u0432\u0435\u0442\u044b, \u043f\u043e\u0441\u0442\u0443\u043f\u0430\u044e\u0449\u0438\u0435 \u043f\u043e \u0440\u0430\u0434\u0438\u043e\u043a\u0430\u043d\u0430\u043b\u0443 (802.15.4) \u0432 \u043f\u0440\u0438\u0451\u043c\u043d\u0438\u043a, \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0451\u043d\u043d\u044b\u0439 \u043a \u0443\u0447\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u043c\u0443 \u041f\u041a.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/pishem-ota-zagruzchik-dlya-atmega128rfa1-v-sostave-ustrojstva-smart-response-xe\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T18:39:28+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:39:28+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Wir entwickeln einen OTA-Loader f\u00fcr den ATmega128RFA1 (integriert in das Ger\u00e4t Smart Response XE) | ProHoster","description":"Alles begann mit dem Erwerb eines interessanten Ger\u00e4ts auf dem Sekund\u00e4rmarkt \u2013 dem Smart Response XE (kurze Beschreibung). Es ist f\u00fcr Schulen gedacht: Jeder Sch\u00fcler in der Klasse erh\u00e4lt ein Ger\u00e4t, das wie ein elektronisches Notizbuch oder ein \u00dcbersetzer aus den Neunzigern aussieht. Der Lehrer stellt eine Frage, und die Sch\u00fcler tippen ihre Antworten auf den Tastaturen der Ger\u00e4te ein, die per Funk (802.15.4) an einen Empf\u00e4nger gesendet werden, der mit dem Lehrer-PC verbunden ist.","canonical_url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/pishem-ota-zagruzchik-dlya-atmega128rfa1-v-sostave-ustrojstva-smart-response-xe","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"de_DE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041f\u0438\u0448\u0435\u043c OTA-\u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a \u0434\u043b\u044f ATmega128RFA1 (\u0432 \u0441\u043e\u0441\u0442\u0430\u0432\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 Smart Response XE) | ProHoster","og:description":"\u0412\u0441\u0451 \u043d\u0430\u0447\u0430\u043b\u043e\u0441\u044c \u0441 \u043f\u0440\u0438\u043e\u0431\u0440\u0435\u0442\u0435\u043d\u0438\u044f \u0430\u0432\u0442\u043e\u0440\u043e\u043c \u043d\u0430 \u0432\u0442\u043e\u0440\u0438\u0447\u043d\u043e\u043c \u0440\u044b\u043d\u043a\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u2014 Smart Response XE (\u043a\u0440\u0430\u0442\u043a\u043e\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435). \u041f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u043e \u043e\u043d\u043e \u0434\u043b\u044f \u0448\u043a\u043e\u043b: \u043a\u0430\u0436\u0434\u044b\u0439 \u0443\u0447\u0435\u043d\u0438\u043a \u0432 \u043a\u043b\u0430\u0441\u0441\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u043f\u043e \u0434\u0435\u0432\u0430\u0439\u0441\u0443, \u043f\u043e\u0445\u043e\u0436\u0435\u043c\u0443 \u043d\u0430 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u0443\u044e \u0437\u0430\u043f\u0438\u0441\u043d\u0443\u044e \u043a\u043d\u0438\u0436\u043a\u0443 \u0438\u043b\u0438 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0447\u0438\u043a \u0434\u0435\u0432\u044f\u043d\u043e\u0441\u0442\u044b\u0445, \u0443\u0447\u0438\u0442\u0435\u043b\u044c \u0437\u0430\u0434\u0430\u0451\u0442 \u0432\u043e\u043f\u0440\u043e\u0441, \u0438 \u0443\u0447\u0435\u043d\u0438\u043a\u0438 \u043d\u0430\u0431\u0438\u0440\u0430\u044e\u0442 \u043d\u0430 \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u0430\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u043e\u0442\u0432\u0435\u0442\u044b, \u043f\u043e\u0441\u0442\u0443\u043f\u0430\u044e\u0449\u0438\u0435 \u043f\u043e \u0440\u0430\u0434\u0438\u043e\u043a\u0430\u043d\u0430\u043b\u0443 (802.15.4) \u0432 \u043f\u0440\u0438\u0451\u043c\u043d\u0438\u043a, \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0451\u043d\u043d\u044b\u0439 \u043a \u0443\u0447\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u043c\u0443 \u041f\u041a.","og:url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/pishem-ota-zagruzchik-dlya-atmega128rfa1-v-sostave-ustrojstva-smart-response-xe","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T18:39:28+00:00","article:modified_time":"2019-10-31T18:39:28+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"31101","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-21 04:31:21","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 03:22:35","updated":"2026-01-21 04:31:21"},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/31101","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/comments?post=31101"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/31101\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media\/23069"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=31101"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=31101"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=31101"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}