
.
Meist ist ein Logikanalyser mit Protokollanalysefunktion nicht zur Hand wenn man ihn braucht.
Mit diesem kleinen Adapter kann man über die serielle Schnittstelle den Datenverkehr überwachen.
Im folgenden Beispiel wird ein DS1621 Temperaturfühler abgefragt.
Die Ausgabe entspricht folgenden Code:
#define Dev1621_1 0x90 // device address of DS1621-1
i2c_start(Dev1621_1+I2C_WRITE); // set device address and write mode
i2c_write(0xee); //initialsiert den DS1621 für Temperaturausgabe
i2c_rep_start(Dev1621_1+I2C_WRITE);
i2c_write(0xaa); // Schreibt "aa" Temperatur lesen
i2c_rep_start(Dev1621_1+I2C_READ); // Startet den Lesevorgang
Temp_h=i2c_readAck(); // liest erstes Byte
Temp_l=i2c_readNak(); //liest zweites Byte
i2c_stop(); // set stop conditon = release bus
Die Buchstaben bedeuten:
Start = 's'
Ack = 'a'
Nack = 'n'
Stop = 'p'
Beginn ist in der vierten Zeile. Der Ausgegebene Wert ist mit "s91a16a80np 22,5°
Das Kernstück der Schaltung ist ein ATtiny85 mit einem 14,7456MHz Quarz.
Der Rest ist etwas Hühnerfutter.
Das Layout ist dem entsprechend einfach ausgefallen.
Die Oberseite mit Kontroller und Quarz
Sieht dann so aus
Die Unterseite mit den fünf SMD-Bauteilen
Sieht dann so aus
Das vier adrige Kabel wird mit etwas Heißkleber zugentlastet. An den Enden habe ich einzelne Stifte einer IC-Adapterleiste angelötet und mit einem kurzen Stück Schrumpfschlauch isoliert. Die Kabelenden sind zusätzlich auch noch beschriftet.
Am Gehäuse ist noch der Verwendungszweck und die Baudrate vermerkt.
Nicht jede RS232-Schnittstelle kommt mit den 5V auf der TX-Leitung klar, Notebook funktionieren öfter. Keine Probleme hatte ich mit RS232/USB-Wandler.
Das Programm ist von Peter Dannegger und stammt aus diesem Thread:
http://www.mikrocontroller.net/topic/103600#new
Verwendet habe ich den *.asm Code vom 05.11.2008