www.mikrocontroller.net

Forum: Projekte & Code RS232 <-> TWI / I2C INTERFACE (Assembler) ATmega8


Autor: Bernhard S. (bernhard)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Mit diesem kleinen Interface kann man problemlos einen

TWI (I2C) Bus per RS232 ansteuern und

Daten von einem SLAVE abfragen oder DATEN zu einem SLAVE senden.


Anwendungsmöglichkeiten:
- welche Slaves befinden sich am TWI-BUS
- DATEN-BYTES an den SLAVE senden
- DATEN-BYTES von einem SLAVE empfangen
- einzelne Ansteuerung und Abfrage aller TWI-Register (z.B. TWCR/TWSR)
- mit welcher maximalen TWI-SCL-Frequenz kann gearbeitet werden
- welche Daten befinden sich gerade in einem TWI-EEPROM

Das RS232-Protokoll ist relativ einfach gehalten und besteht im
einfachsten Fall aus 9 Zeichen:

1.Zeichen =>"*" (Vorspann)
2.Zeichen =>Befehl (z.B. 50 für MT+DATEN+STOP)
3.Zeichen =>Reserve
4.Zeichen =>Anzahl der zu sendenden Zeichen (low)
5.Zeichen =>Anzahl der zu sendenden Zeichen (high)
6.Zeichen =>Anzahl der zu empfangenen Zeichen (low)
7.Zeichen =>Anzahl der zu empfangenen Zeichen (high)
8.Zeichen =>"#" (Nachspann)
9.Zeichen =>"#" (Befehlskette-Ende)

Beispiele:
-Ist SLAVE "80" vorhanden: *(50)(80)(0)(0)(0)(0)(0)# #
 Antwort vom Interface: (0)(0)    <= ist vorhanden
 Antwort vom Interface: (0)(110)  <= ist nicht vorhanden

-Zwei Zeichen(3+4)an SLAVE(80)senden: *(50)(80)(0)(2)(0)(0)(0)#(3)(4)#
 Antwort vom Interface: (0)(0)    <= alles ok

-vier Zeichen vom SLAVE(81) emfangen: *(80)(81)(0)(0)(0)(4)(0)# #
 Antwort vom Interface: (0)(BYTE1)(BYTE2)(BYTE3)(BYTE4)(0) <= alles ok

Ein Windows-Programm habe ich auch mit beigefügt, welches
Sondefunktionen beinhaltet z.B.:

-die SCL-Taktrate lesen/setzen
-einen EEPROM auslesen/schreiben
-alle TWI-Register auslesen/schreiben


Bernhard

Autor: Hanspeter F. (efly2005)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Bernhard !

Da ich mich erst in letzter Zeit mit AVR's beschäftige, bin ich erst 
jetzt auf deinen sehr interessanten Beitrag gestoßen. Alle Achtung, dein 
angefügtes Windows-Programm spielt alle Stücke !!
Für mich als Einsteiger wäre natürlich der Quell-Code dieses Programms 
von Interesse, da ich dem Programm entnehme, dass es als "Hausbus" zur 
Heizungssteuerung usw. verwendet wurde und ich an einem solchen schon 
einige Zeit arbeite und experimentiere. Ich nehme an er ist in VB 
erstellt.
Gibt es diesen Zugriff ?

Viele Grüße / Hanspeter

Autor: Fabian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
das Windwos-Programm startet bei mir nicht. Startet das nur, wenn es den 
ATmega gefunden hat oder ist das ein anderer Fehler? Im Log stehr nur 
"Start".

Grüße

Fabian

Autor: King Dude (kingdude)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
@Fabian

Hatte das selbe Problem, man braucht neben den Installierten Visual 
Basic 5.0-Laufzeitdateien (Msvbvm50.exe) noch die MSCOMM32.OCX (siehe 
Anhang), die Datei einfach in den win\system32 Ordner und schon sollte 
es gehen ;-).

@Bernhard

Geiles Projekt, hat mir sehr geholfen.
Vielen Dank!


MFG Kingdude

Autor: Ranni (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

wär es möglich den sourcecode für obiges Windowsprogramm zu erhalten.
dann könnte man selber dran weiterentwickeln, bzw ich möchte die Abfrage 
meiner Counter gerne in ein anderes Programm ( Heizungsinterface) 
integrieren.

mfg michael

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.