beelogger

beelogger-Solar – ISP & FTDI

Ein Microcontroller wird in der Regel erst nach der Bestückung auf einer Platine innerhalb einer Schaltung programmiert. Diese Methode nennt man In-System-Programmierung (ISP). Die Chiphersteller Atmel und Microchip haben eine spezielle ISP-Methode entwickelt, die sich In-Circuit-Serial-Programming (ICSP) nennt.

Zur Programmierung wird ein sogenannter ISP-Programmer benötigt. Über einen ISP-Programmer hat man neben der Möglichkeit einen Programmcode aufzuspielen, auch die Möglichkeit einen Bootloader zu installieren oder die so genanten Fusebits zu setzen. Der Arduino-Bootloader für den ATmega ist vergleichbar mit einer Firmware, ein kleines Programm, welches vor dem eigentlichen Programmcode gestartet wird und in diesem Fall zunächst auf Programmiereingaben auf der seriellen Schnittstelle wartet. Fusebits bestimmen einfach ausgedrückt die Eigenschaften bzw. Verhaltensweisen des Chips, beispielsweise ob der interne Taktgeber oder ein externer Quarz verwendet werden soll.

In der Regel wird ein Arduino über die serielle Schnittstelle programmiert. Ein Vorteil dieser Methode ist, dass über die gleiche Verbindung zu Testzwecken, zur Fehlerbehebung oder für anderweitige Informationen die serielle Ausgabe direkt genutzt werden kann. Um den ATmega über die serielle Schnittstelle programmieren zu können, wird ein FTDI USB-Zu-Seriell-Adapter benötigt. Bei vielen Boards, wie dem Arduino Uno beispielsweise, ist der Chip für diese Verbindung bereits auf dem Board integriert. 

Der beelogger-Solar besitzt einen FTDI-Header, um den ATmega in gewohnter Weise, wie beispielsweise einen Arduino Mini Pro, über einen FTDI-Adapter programmieren zu können. Der Arduino-Bootloader muss hierzu einmalig über die Arduino-Software und einen ISP-Programmer installiert werden. Bei diesem Schritt werden auch automatisch die richtigen Fusebits gesetzt, um beispielsweise den externen 8MHz Quarz zu verwenden. Auf einen separaten ISP-Header für diese einmalige Installation wurde aus Platzgründen verzichtet. 

Als ISP-Programmer kann auch ein bereits vorhandener Arduino verwendet werden. Hierfür sind im Internet eine Menge Anleitungen zu finden. Leider gibt es keine einheitliche Anleitung für alle Boards und alle Softwareversionen. Aus diesem Grund und da ein ISP-Programmer grundsätzlich mehr Möglichkeiten bietet und zudem sehr günstig zu beziehen ist, werden wir uns bei der Anleitung auf diesen beschränken.

Bezug

Als günstige ISP-Programmiereinheit wird ein USBasp empfohlen. Beim Bezug sollte darauf geachtet werden, dass auf dem USBasp die aktuellste Firmware aufgespielt ist, um die volle Kompatibilität zu gewährleisten. Nähere Informationen sowie ein Treiber für Windows, falls der Programmer nicht automatisch erkannt wird, findet man auf der Seite des Entwicklers unter http://www.fischl.de/usbasp. Über diese Seite kann auch ein garantiert aktuelles System bezogen werden, wodurch man gleichzeitig dieses Open Source Projekt unterstützt. Da der originale USBasp keinen Jumper zur Einstellung der Versorgungsspannung von 3,3V besitzt, muss die Stromversorgung des beelogger-Solar durch den Programmer über den VCC-Pin der Batterie (Bat +) vorgenommen werden. Hiermit wird das System über die Spannungsregler mit 3,3V versorgt. Der Akku darf dabei nicht angeschlossen sein, damit dieser keinen Schaden nimmt! Alternatv kann auch der originale USBasp 2 mit einem Jumper zur Umstellung auf 3,3V erworben werden. Günstigere Nachbauten besitzen vielfach einen Spannungsregler für die optionale Versorgung mit 3,3V. Durch die getrennte Versorgung von ATmega und Sensoren über zwei Spannungsregler, muss die Stromversorgung des beelogger-Solar über den USBasp bei 3,3V über den VCC-Pin des FTDI-Headers erfolgen.

Der FDTI-Adapter bezitzt keine Firmware. Hierbei muss lediglich darauf geachtet werden, dass dieser auf 3,3V Versorgungsspannung einzustellen ist.

Bild Bezugsquelle Preis ab Suchbegriffe* Bemerkungen
beelogger usbasp eBay 1,79€ USBasp Auf aktuelle Firmware achten!

Originaler USBasp mit garantiert aktueller Firmware über den Ebay-Shop des Herstellers für 9,90€ zuzügl. 4,35€ Versand unter http://www.ebay.de/usr/msx-elektronika

beelogger usbasp2  eBay 12,20€ + 4,35€ Versand nach Deutschland  USBasp 2 Originaler USBasp 2 mit garantiert aktueller Firmware über den Ebay-Shop des Herstellers für 12,20€ zuzügl. 4,35€ Versand unter http://www.ebay.de/usr/msx-elektronika
 beelogger FTDI eBay 1,59€ FTDI Adapter Modul FTDI-Adapter muss die Möglichkeit bieten, auf eine Versorgungsspannung von 3,3V umzustellen. 

*Einkaufstipps

Beschaltung ISP-Programmer

beelogger USBasp Pinout

Hinweis: RX und TX werden derzeit nicht von der Firmware des Programmers unterstützt. 

beelogger-Solar ISP-Programmer
VCC am FTDI-Header
oder
Bat + (Batterie darf nicht angeschlossen sein)
VCC (3,3V)
oder
VCC (5V)
GND GND
RESET RESET
MOSI MOSI (D11)
MISO MISO (D12)
SCK SCK (D13)

Vor Verbindung des Programmers sollten die Batterie sowie die Solarzelle vom beelogger-Solar abgeklemmt werden. 
Sofern der USBasp die Möglichkeit bietet, die Programmiergeschwindigkeit einzustellen (wie beim originalen USBasp), muss die Option “slow” gewählt werden.

Beschaltung FTDI-Adapter

Der FTDI-Adapter wird mit dem FTDI-Header des beelogger-Solar verbunden. Die Bezeichnung der Pins, die miteinander verbunden werden, muss hierbei identisch sein. 

beelogger Solar FTDI Header 

beelogger-Solar (FTDI-Header) FTDI-Adapter
DTR DTR
TX0 TX0
RX1  RX1
VCC VCC
CTS CTS
GND GND

Achtung: Bevor der FTDI-Adapter angeschlossen wird, muss dieser über den Jumper auf 3,3V eingestellt werden.