MOD 020 Mikrocontroller-Modul Datenblatt fu r Version II 2. August 2010 1. Das Modul im U berblick Das MOD 020 ist ein universell einsetzbares Mikrocontroller-Modul der Modularis Baureihe, das auf dem Atmel Atmega 168 basiert. Es ermo glicht dem Anwender alle Funktionen des Prozessors mit geringem Aufwand fu r eigene Projekte zu nutzen. Daru ber hinaus entha lt es einen Mini-USB Anschluss zur Kommunikation mit einem PC und 8 MBit Speicher zum Ablegen gro ßerer Datenmengen. Die Stromversorgung des MOD 020 und daran angeschlossener Module erfolgt u ber einen integrierten Schaltregler, der u ber einen großen Eingangsspannungsbereich verfu gt. Mit dem Softwareprodukt Modularis Spector (ebenfalls erha ltlich im Aevum Online Shop) la sst sich das Modul MOD 020 als praktischer Datenlogger nutzen. Abbildung 1: Das Modul im U berblick: Vorder- und Ru ckseite 1
2. Elektrische Spezifikation Die wichtigsten elektrischen Daten des MOD 020: Größe min. typ. max. Einheit Eingangsspannung 7-30 V Eingangsspannung im Rückspeisebetrieb 3.3 5 5.5 V Stromentnahme durch angeschlossene Verbraucher - - 400 ma Leistungsaufnahme - 0.2 - W Schaltvermögen der MosFETs - 1.5 2 A Maximale Schaltspannung der MosFETs (begrenzt durch LEDs) - 5 10 V Taktfrequenz 15.999 16 16.001 MHz Aktiv geregelte Spannung 4.95 5 5.05 V Ausgangsspannung des Helligkeitssensors @100 Lux - 0.25 - V Ausgangsspannung des Helligkeitssensors @1000 Lux - 4 - V 3. Hardwarebeschreibung Das Board beinhaltet im wesentlichen folgende Features: Mikrocontroller Atmel ATmega168, 16 MHz, 16 kb Speicher, 1 kb SRAM Flash Speicher Atmel AT45DB081D, 8 Mbit, SPI-Anschluss Step-Down Schaltregler mit 400 ma Ausgangsstrom Seriell-USB Bridge FTDI FT232R an Mini-USB Stecker für bis zu 2 MBit/s Übertragungsrate zum PC Onboard Helligkeitssensoren Spannungsteiler zur Erfassung der externen Versorgungsspannung 6-poliger ISP-Programmierstecker Reset-Taster LEDs zur Signalisierung von anliegender Spannung und USB-Kommunikation Zwei MosFETs zum Schalten externer Lasten mit Anzeige des Leitungszustands über LEDs Speisemöglichkeit auch via USB, oder im Rückspeisebetrieb über Wannenstiftleisten Bus- und Multiprozessortauglichkeit 2
3.1. Spannungsversorgung Das MOD 020 kann wahlweise über USB oder durch ein externes Netzteil mit Strom versorgt werden. Im zweiten Fall wandelt der integrierte Step-Down Schaltregler die externe Versorgungsspannung verlustarm auf eine stabilisierte Spannung von 5 V. Bei beiden Versorgungsarten dürfen die Ausgänge des MOD 020 mit maximal 400 ma in Summe belastet werden. Zur Verbindung mit einer externen Spannungsquelle ist eine Hohlstecker-Buchse (6.5mm/2mm) vorgesehen. Alternativ sind Bestückungsvarianten mit Schraubklemmen oder Lötanschlüssen lieferbar. Das Vorhandensein einer Spannungsversorgung wird durch das Leuchten der LED1 (gelb) angezeigt. Es ist außerdem möglich, das MOD 020 über die Wannenstiftleisten direkt zu versorgen (Rückspeisebetrieb). Somit können mit mehreren Modularis-Modulen einfache Multiprozessor-Systeme aufgebaut werden. 3.2. Mikrocontroller Abbildung 2: Beschaltung des Atmega168 Der Atmega168 ist ebenso wie dessen Referenzspannung (AREF) an der stabilisierten Versorgungsspannung über einen analogen Filter angeschlossen. Zur Absenkung der Referenzspannung kann der Widerstand R10 bestückt werden. Die Programmierung des Mikrocontrollers erfolgt über die 6-polige ISP-Schnittstelle (kompatibel mit Atmel AVR-ISP). Der Reset-Pin ist zusätzlich mit einem Miniatur-Taster verbunden. 3.3. USB-Anschluss Der Ftdi FT232R-Chip stellt die serielle Schnittstelle des AVR-Mikrocontrollers über USB bereit. Die Übertragung eingehender (RX) und ausgehende Daten (TX) wird über entsprechende LEDs (RXLE- D/TXLED) oberhalb des Mini-USB-Steckers angezeigt. Im Auslieferungszustand wird das USB-Gerät als virtueller serieller Port im PC erkannt. Nähere Informationen zu dieser USB-Schnittstelle finden sich im Abschnitt 4 und im Datenblatt des Ftdi FT232R. 3
Abbildung 3: Schaltplan der USB-Schnittstelle 3.4. Modularis Steckverbinder Abbildung 4: Belegung der Stiftleisten Die beiden Wannenstiftleisten CONA und CONB entsprechen den Modularis Spezifikationen und stellen alle Anschlüsse des Mikrocontrollers zur Verfügung. Die Belegung ist in der Abbildung 4 zu sehen. Über diese Stecker können Modularis Erweiterungsmodule mit den Flachbandsteckern angeschlossen werden. Außerdem kann zum Prototyping eigene Hardware über Jumper-Kabel verbunden werden. Beim Anschluss muss selbstverständlich auf eventuelle Doppelbelegungen geachtet werden. Die Verwendung der AVR-Pins durch Onboard-Hardware ist in einer Tabelle im Anhang dargestellt. 3.5. Flash-Speicher Der Atmel AT45DB081D Flash Speicher mit 8 Mbit ist über die SPI-Schnittstelle mit dem AVR verbunden. Der Chip-Select Anschluss an PB0 aktiviert (low) bzw. deaktiviert (high) den Speicher. Um versehentliche Schreibzugriffe zu vermeiden, kann der Speicher über den Mikroschalter auf der Modulrückseite deaktiviert werden. 4
Abbildung 5: Anschlüsse des Flash-Speichers 3.6. MosFETs Abbildung 6: Leistungs-MosFETs mit Signal-LEDs Zum Schalten externer Lasten sind zwei MosFETs vorhanden, die an den Pins PB1 und PB2 angeschlossen sind. Der Zustand wird über die zugehörigen LEDs angezeigt. 3.7. Onboard-Sensorik Das MOD 020 beinhaltet bereits drei analoge Sensoren. Zwei Helligkeitssensoren und einen Spannungsteiler zur Messung der Versorgungsspannung, die jeweils an einem Analog-Digital-Converter des Mikrocontrollers angeschlossen sind. 4. Software und Benutzungshinweise 4.1. Einrichtung der Entwicklungsumgebung Zur Software-Entwicklung auf dem MOD 020 ist eine AVR-Entwicklungsumgebung notwendig. Die Installation einer solchen ist in der Dokumentation des Modularis Software Starter-Kits beschrieben. Außerdem ist dort die Vorgehensweise zum Kompilieren und Laden eines Beispielprogramm auf den AVR erklärt. 5
Abbildung 7: Anschlussplan der Sensoren 4.2. Installation der FTDI USB-Treiber Die Treiber für Windows-Betriebssysteme befinden sich im Ordner FTDI CDM-2.06.00. Verweisen sie bei der Treiber-Suche des Windows-Assisten auf diesen Ordner. Der Treiber wird dann automatisch installiert und reserviert einen virtuellen COM-Port für das MOD 020. Die gewählte COM-Port Nummer wird im Geräte-Manager angezeigt und kann dort auch verändert werden. Treiber und ausführliche Installationsanleitungen für verschiedene Betriebssysteme finden Sie auch auf der Herstellerseite http://www.ftdichip.com/. Bei aktuellen Linux-Systemen muss kein Treiber installiert werden, da dieser bereits als Modul im Kernel enthalten ist. Der virtuelle serielle Anschluss wird meist automatisch als /dev/ttyusb0 im System eingebunden. Neben der Verwendung als virtuelle Schnittstelle ist auch eine Verwendung der D2xx-Treiber möglich, die eine höhere Datenrate und einige Zusatzfunktionen ermöglichen. Nähere Informationen finden Sie dazu auf http://www.ftdichip.com/. 4.3. Ein erstes Beispielprogramm Im Ordner Demo-Programme befindet sich ein kurzes Testprogramm. Es verschickt sekündlich Werte der Analog-Eingänge über die USB-Schnittstelle. 4.4. Herstellen der Verbindung zum PC Mit einem beliebigen Terminal (z.b. HyperTerminal, RealTerm, Termite,...) können die versendeten Daten am PC ausgegeben werden. Es muss lediglich der passende COM-Port (variiert) und die passende Geschwindigkeit (57600 b/s im Beispielprogramm) eingestellt werden. 5. Besonderheiten der Arduino-Edition Die Arduino-Edition des MOD 020 beinhaltet einen vorinstallierten Bootloader zur Neuprogrammierung direkt über USB. Um den Bootloader automatisch starten zu können, muss die Auto-Reset- Funktion über den Mikrotaster aktiviert werden. Es ist jedoch zu beachten, dass es dann bei der 6
Abbildung 8: Konfiguration des Terminal-Programms am Beispiel von Termite Herstellung der Verbindung zum PC zu ungewünschten Resets kommen kann. Die Auto-Reset Funktion sollte deshalb nur im Entwicklungsprozess aktiviert sein. 5.1. Arduino-IDE siehe Modularis Starter-Guide.pdf 5.2. Benutzung des Bootloaders mit Avrdude Der Bootloader kann auch ohne die Arduino-IDE verwendet werden. Dadurch besteht die Möglichkeit, ein neues Programm direkt über die USB-Schnittstelle einzuspielen. Dazu sollte eine AVR- Entwicklungsumgebung installiert werden, wie sie im Abschnitt 2.2 des Modularis Starter-Guides erklärt wird. Danach muss im Makefile lediglich die Anweisung für den Programmer angepasst werden: AVRDUDE_PROGRAMMER = arduino AVRDUDE_PORT = COM1 -b 19200 Alternativ rufen sie die Programmer-Software avrdude direkt im Terminal mit folgendem Befehl auf: avrdude -p m168 -c arduino -P COM1 -b 19200 -F -U flash:w:main.hex Die einzutragende Nummer des virtuellen seriellen Com-Ports kann unter Windows im Geräte-Manager abgelesen werden. Unter Linux muss an dieser Stelle z. B. /dev/ttyusb0 verwendet werden. 7
A. Pinout-Tabellen A.1. Aus AVR-Sicht AVR-Pin Sonderfunktionen Verwendung onboard Verwendung User PB0 CLKO/ICP1 Flash Chip-Select PB1 OC1A MosFET, LED2 PB2 SS/OC1B MosFET, LED3 PB3 OC2A/MOSI ISP, Flash PB4 MISO ISP, Flash PB5 SCK ISP, Flash PB6 XTAL1/TOSC1 Schwingquarz PB7 XTAL2/TOSC2 Schwingquarz PC0 ADC0 PC1 ADC1 PC2 ADC2 Helligkeitssensor (rechts) PC3 ADC3 PC4 ADC4/SDA PC5 ADC5/SCL PC6 RESET ISP, Reset-Button ADC6 Helligkeitssensor (links) ADC7 Spannungsteiler PD0 RXD/PCINT16 USB PD1 TXD/PCINT17 USB PD2 INT0/PCINT18 PD3 PCINT19/OC2B/INT1 PD4 PCINT20/XCK/T0 PD5 PCINT21/OC0B/T1 PD6 PCINT22/OC0A/AIN0 PD7 PCINT23/AIN1 8
A.2. MOD 020 CONA Pin CONA Name (Alternativfunktion) I/O/T 1 PU 2 Verwendung onboard Verwendung durch Benutzer 1 VCC Supply 2 GND Supply 3 PB0 (CLKO/ICP1) Flash Chip-Select 4 PB1 (OC1A) MosFET, LED2 5 PB2 (SS/OC1B) MosFET, LED3 6 PB3 (OC2A/MOSI) ISP, Flash 7 PB4 (MISO) ISP, Flash 8 PB5 (SCK) ISP, Flash 9 PD3 (OC2B/INT1) 10 PD4 (XCK/T0) 11 PC0 (ADC0) 12 PC1 (ADC1) 13 PC2 (ADC2) Helligkeitssensor (rechts) 14 PC3 (ADC3) 15 PC4 (ADC4/SDA) 16 PC5 (ADC5/SCL) 17 PD2 (INT0) 18 PD5 (OC0B/T1) 19 GND Supply 20 VCC Supply 1 I=Input, O= Output, T=Tristate, i.e. Eingang ohne Softwareeinbindung 2 PU= Pull up aktiviert, konkrete Ohmangabe: Externer Pullup Widerstand vorhanden 9
A.3. MOD 020 CONB Pin CONB Name (Alternativfunktion) I/O/T 3 PU 4 Verwendung onboard Verwendung durch Benutzer 1 VCC Supply 2 GND Supply 3 PB0 (CLKO/ICP1) Flash Chip-Select 4 PB1 (OC1A) MosFET, LED2 5 PB2 (SS/OC1B) MosFET, LED3 6 PB3 (OC2A/MOSI) ISP, Flash 7 PB4 (MISO) 8 PB5 (SCK) 9 ADC6 Helligkeitssensor (links) 10 ADC7 Spannungsteiler 11 PD0 (RXD) USB 12 PD1 (TXD) USB 13 PD2 (INT0) 14 PD3 (OC2B/INT1) 15 PD4 (XCK/T0) 16 PD5 (OC0B/T1) 17 PD6 (OC0A/AIN0) 18 PD7 (AIN1) 19 GND Supply 20 VCC Supply 3 I=Input, O=Output, T=Tristate, i.e. Eingang ohne Softwareeinbindung 4 PU= Pull up aktiviert, konkrete Ohmangabe: Externer Pullup Widerstand vorhanden 10
11 Abbildung 9: Vollständiger Schaltplan