16.11.2011 - Intermezzo: Verwendung der seriellen Schnittstelle unter Linux (Debian/Knoppix)
(EN google-translate)
(PL google-translate)
Ersatz für das Hyperterminal von Windows
Ein einfaches Programm, das als Ersatz für das Hyperterminal dienen kann, ist gtkterm. Es kann als Debian-Paket vom Debian Repository heruntergelanden werden und unter Knoppix installiert werden.
Die Installation des Zusatzpaketes erfolgt mit Hilfe des Befehls dpkg.
Übung 1
Ziel: Mikrocontroller-Programmentwurf und Flashen, sowie Test der seriellen Schnittstelle unter Linux.
|
|
#include<avr/io.h> //Definition von Taktfrequenz und Bausrate als Konstanten #define TAKTFREQUENZ 9216000 #define BAUDRATE 115200 int main() { long pause; //Aktivieren der RS232-Schnittstelle des Mikrocontrollers: //Merken des in UBRR zu speichernden Wertes. unsigned int baudregister = TAKTFREQUENZ/8/BAUDRATE-1; //setzen der Baudrate UBRRH = (unsigned char) (baudregister>>8); //Setzen des HIGH-Bytes des Baudraten-Registers UBRRL = (unsigned char) baudregister; //Setzen des LOW -Bytes des Baudraten-Registers //Einschalten des Senders und des Empfängers UCSRB = (1<<TXEN) | (1<<RXEN); //Setzen des Nachrichtenformats: 8 Datenbits, 1 Stopbits UCSRC = (1<<URSEL)|(1<<UCSZ0)|(1<<UCSZ1); UCSRA = (1<<U2X); //Es soll wiederholt von 0 bis 255 durchgezählt werden und //der aktuelle Wert im Hyperterminal zu sehen sein. while(1) { while( !(UCSRA & (1<<UDRE)) ); //Warten bis der Uebertragungspuffer leer ist UDR = 'A'; //Daten in den Puffer schreiben und übertragen for(pause=0;pause<500000;pause++) DDRC=0b00000000; } }
Code 0-1: Minimalprogramm, das an den PC seriell Daten sendet.
Zu beachten bei Verwendung der AVR-Studio-Version über Linux (Wine)
|
|
Übertragung einer HEX-Datei unter Linux mit dem AVRISPmkII unter Verwendung von avrdude (Beispiele):
|
Start von gtkterm mit den notwendigen Optionen:
|
Übung 2
Ziel: Verwendung von Java für die serielle Datenübertragung unter Linux.
|
Übung 3
Ziel: Verwendung eines USB-Seriell-Umsetzers statt der vorhandenen COM-Schnittstelle.
Immer weniger PCs und Notebooks besitzen eine COM-Schnittstelle. Jedoch könnten alternativ auch USB nach Seriell-Umsetzer verwendet werden.
|
Übung 4
Ziel: Verwendung eines einfachen ISP-Programmierers über die serielle Schnittstelle.
|
http://www.lancos.com/prog.html - Ponyprog Homepage
http://www.ladyada.net/learn/avr/avrdude.html - Tutorial zu AVRdude
Zusatz-Übung 5
Ziel: Kompilieren von AVR-Mikrocontrollern unter Linux (ohne Wine) über WINAVR für Linux / Crosscompiler?
http://de.wikipedia.org/wiki/Atmel_AVR - Kompilerübersicht
http://www.debian.org/distrib/packages - Suchfenster für Debian Packages, Passende Distribution für KNOPPIX 6.7: squeeze
http://www.rn-wissen.de/index.php/Avr-gcc - Anleitung zur Benutzung des gcc-avr
|
|
Zusatz-Übung 6
Ziel: Steuerung des Kompilierungs- und Flashvorgangs mit Java über Native-Methoden.
Zusatz-Übung 7
Ziel: Entwurf eines Kombi-Seriell-Tools, das es erlaubt sowohl serielle Daten zwischen Mikrocontroller und PC auszutauschen, als auch den Mikrocontroller über die serielle Schnittstelle zu flashen.