RS232 <-> TWI / I2C INTERFACE (Assembler) ATmega8

OP #287928
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
Angehängte Dateien:
#1182716
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
#1346978
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
Angehängte Dateien:
Gast #1517732
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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren