xmega_tutorial.jpg

Bewertung:  / 1
SchwachSuper 

Diese Biblitothek von Peter Fleury ermöglicht eine Kommunikation über das Hardware UART Interface von Atmel.  Die UART Library ist nach der Application Note AVR306 für con ATmel für den avr-gcc erstellt. Die Library verwendet Sende- und Empfangs-Interrupts und je einen FIFO Ringbuffer für die Sende und Empfangsroutinen. Dadurch wird nur sehr wenig Rechenleistung des Controllers verbraucht. Unterstützt werden eigentlich alle Controller der Reihe ATmega von ATmel.

UART

Das Universal Synchronous & Asynchronous Receiver & Transmitter Interface, USART, dient dem Senden und Empfangen von Daten über eine Datenleitung und bildet den Standard der seriellen Schnittstellen an PCs und Mikrocontrollern. Im industriellen Bereich ist die Schnittstelle als RS-232 oder RS-485 Interface verbreitet. Eine RS232-Verbindung arbeitet (bit-)seriell mit je einer Datenleitung für beide Übertragungsrichtungen. Somit können Daten Voll-Duplex, also gleichzeitig in beide Richtungen übertragen werden. Aufgrund des hohen Taktsignals, welches bis in den MHz Bereich gehen kann, sind relativ hohe Übertragungsraten möglich. Im Gegensatz zum einfachen UART bietet die USART Schnittstelle die Möglichkeit einer zusätzlichen synchronen Datenübertragung. In dieser Arbeit wird jedoch nur auf die asynchrone Schnittstelle eingegangen.

Funktionsweise

Die Daten werden als serieller digitaler Datenstrom mit einem fixen Rahmen übertragen, der aus einem Start-Bit, fünf bis maximal neun Datenbits, einem optionalen Parity-Bit zur Erkennung von Übertragungsfehlern und einem Stopp-Bit besteht. Um dem Empfänger eine Synchronisationszeit auf den Takt der empfangenen Daten einzuräumen, kann das Stopp-Bit auf das 1,5 oder 2-fache der normalen Übertragungszeit eines Bits verlängert werden. Das wird als 1,5 bzw. 2 Stopp-Bits bezeichnet. Für den Betrieb der asynchronen Datenübertragung wird kein eigenes Taktsignal benötigt. Stattdessen synchronisiert sich der Empfänger durch den Rahmen, bestehend aus dem Start- und Stopp-Bit, und eine bestimmte Bitrate, die manchmal nicht ganz richtig als Baudrate bezeichnet wird. Da der Beginn einer Übertragung mit dem Start-Bit zu beliebigen Zeitpunkten erfolgen kann, wird diese serielle Schnittstelle als asynchron bezeichnet. Um eine Synchronisation gewährleisten zu können, ist die Anzahl der übertragbaren Bits stark eingeschränkt. Bei einem längeren Datenstrom könnte die Synchronisation verloren gehen, was zu Fehlinterpretationen des Datenstromes und somit zu einer fehlerhaften Übertragung führen kann. Serielle Schnittstellen in synchroner Betriebsweise arbeiten mit dem Bittakt aus der Übertragungsleitung und benötigen keinen Rahmen aus Start-/Stopp-Bits.

Software - Beispiel für UART

In dem Beispiel werden Daten mit dem UART 1 des Controllers versendet. Diese können zum Beispiel in einem Terminal Programm wie hTerm und einem UART to USB Converter auf dem PC ausgewertet werden.
Daten senden per UART
#include <uart.h>
 
#define UART_BAUD_RATE 9600 // 9600 baud
 
int main(void)
{
char buffer[7];
 
cli();
uart1_init( UART_BAUD_SELECT(UART_BAUD_RATE,F_CPU) ); // initialize library 
sei(); // now enable interrupts
 
uart1_puts("String stored in SRAM\n");
uart1_puts_P("String stored in FLASH\n"); // Send string from flash
  itoa( 145, buffer, 10); // interger into string (decimal format) uart1_puts_P(buffer); // transmit string uart1_putc('\r'); // Transmit single character Enter   while(1) { uart1_puts_P("funktioniert\n"); // Send string } }

Anwendungen

Aufbau einer Kommunikation von einem Controllern zum PC, zu einem GPS Modul oder zu einem anderen Controller.

Beispiel

Die Biblitothek enthält ein voll funktionsfähiges Beispiel, inclusive makefile. Das Programm sollte sich ohne Probleme mit dem Programmers Notepad kompilieren lassen.

Viel erfolg!

Links

 
Produktseite
Forum
Terminal Software

Downloads

Kommentar hinzufügen
  • Keine Kommentare gefunden

Neuste Beiträge

30/08/2016
Es gibt nun endlich ein Update für die Tinyg CNC Controller Hardware und der dazu gehörenden PC Software...
03/09/2015
In den letzten Monaten habe ich lange das CAD Programm und meinen kleinen Ultimaker 3D Drucker gequält....
15/05/2015
Zuerst wurde eine kleine Katze am Computer konstruiert. Der erste Druck mit 0,3mm Schichtstärke war...
06/05/2015
Da beim Ultimaker keine Beleuchtung des Arbeitstisches vorgesehen ist, muss ich mir hier selber eine...