I2C-slave USART

Aus der Mikrocontroller.net Artikelsammlung, mit Beiträgen verschiedener Autoren (siehe Versionsgeschichte)
Wechseln zu: Navigation, Suche

von Klaus2m5

Übersicht[Bearbeiten]

Ein AVR ATTINY2313 als I2C nach RS232 Konverter. Benutzt USART und USI Hardware des AVR, programmiert in Assembler. Erweitert einen Master um jeweils einen USART, begrenzt nur durch die Anzahl der verfügbaren I2C-Adressen und der Bandbreite des I2C-Bus.

Eine spezielle Anwendung besteht darin, einem beliebigen AVR eine temporäre RS232 Schnittstelle zur Verfügung zu stellen, ohne dass dieser einen Baudratenquartz und Schnittstellenhardware benötigt. Mittels des vorhandenen ISP-Steckers kann I2C-Master Software den USART steuern.

Die Schaltung[Bearbeiten]

I2C-slave USART.png

Ein Platinenlayout existiert nicht, da man diese Schaltung in vielen Variationen, bis hin zur Integration mit einem I2C-Master und mehreren I2C-Slaves, aufbauen kann.

Grundfunktionen[Bearbeiten]

  • I2C-Slave nach RS232 Konverter
  • Jeweils 48 Bytes Empfangs- und Sendepuffer
  • Optionale Hardware und/oder Xon/Xoff Flusskontrolle
  • Viele Optionen konfigurierbar, ohne neu zu flashen
  • Bei I2C-Aktivität leuchtet die LED rot, ansonsten grün
  • Wenn -RESET low ist, wird die I2C Schnittstelle inklusive der Pullups abgeschaltet (High-Z)

Erweiterungen[Bearbeiten]

Drückt man den Taster an PB2 des AVR, kommt man in den Debug- & Konfigurationsmonitor. Die LED leuchtet dauernd rot und die I2C Schnittstelle ist abgeschaltet (Der Master bekommt ein Nak, wenn er die Slave Adresse anspricht). Der Monitor läuft über RS232 und meldet sich dort mit seinem Prompt „I2R>“. Er bietet die Möglichkeit, den Inhalt von GPRs, I/O-Registern, SRAM und EEPROM auszulesen und zu verändern. Man kann einen Reset auslösen (benutzt den Watchdog) oder einen Call oder Jump zu einer Flash-Adresse machen. Ein einfacher I2C-Sniffer erlaubt die Überwachung des angeschlossenen I2C-Buses. Mit den I2C-Master Funktionen kann man I2C-Slaves testen.

Konfiguration[Bearbeiten]

Baudrate, I2C-Adresse und Einstellungen zur Flusskontrolle haben reservierte EEPROM-Adressen und können mit Hilfe der Monitor-Commands E & P leicht geändert werden. Die Änderungen werden nach einem Reset wirksam.

Anwendungsbeispiel[Bearbeiten]

Um die Anwendungsmöglichkeiten zu verdeutlichen, befindet sich im Ordner Debugger des Downloads eine Sammlung von „Debug Skeleton *.asm“ Dateien, die an verschiedene AVRs angepasst sind. Diese stellen ein Gerüst für die Anwendungsentwicklung mit I2C-Master Zugriff über die ISP-Schnittstelle auf RS232 Ein-/Ausgabe dar. Sie enthalten einen, dem I2C-Slave USART Debug- und Konfigurationsmonitor ähnlichen Monitor, der unter anderem den Zugriff auf die Speicher und Register des AVR erlaubt.

Download[Bearbeiten]

Eine Anleitung mit mehr Details und die Firmware mit Assembler Source befinden sich im Download.

Bugfix Version 1.1a 11.1.2013 - Resolved conflict of the sniffer state machine with the slave I2C state.

I2C-slave_USART.zip