Forum: Mikrocontroller und Digitale Elektronik Daten und Versorgung über 2 Leitungen


von M. P. (phpmysqlfreak)


Angehängte Dateien:

Lesenswert?

Guten Morgen,

Irgendwie stehe ich gerade auf dem Schlauch.
Ich möchte einen "Sensor" über nur 2 vorhandene Drähte mit Strom 
versorgen,
und Daten übertragen.

Die Versorgungsspannung ist 5,0V und die Daten sollen nur vom "Sensor" 
zum "Master" übertragen werden. - Durch den Timer-Overflow-Interrupt und 
den geringen Takt von 128kHz können maximal 500 Bit/s übertragen werden.
Die zu übertragenden Daten umfassen lediglich 1 Word.

Zur Abfrage der Daten wird die Versorungsspannung unterbrochen, 
gepuffert durch den 0,22F Kondensator läuft der Tiny weiter und soll 
seine "Ergebnisse" liefern. Erkannt wird das durch den 
Pinchange-Interrupt an PB3, welcher eine weitere Verarbeitung im 
Timer-Interrupt mithilfe eines Registers erst möglich macht. (Der Code 
ist umfangreich kommentiert.)

Allerdings liegt der Ausgang PB4 irgendwie immer auf 1.
Wo könnte das Problem liegen? So langsam zweifle ich an mir selbst. :D
Ich komme seit insgesamt 7 Stunden irgendwie nicht weiter.

Der Schaltplan ist 1-zu-1 vom Steckbrett übernommen, der Code befindet 
sich so Übersetzt ebenfalls im Controller.
Fuses: LOW: 0x7B ; HIGH: 0xEF ; LOCK: 0xFF

von M. P. (phpmysqlfreak)


Angehängte Dateien:

Lesenswert?

//Update:
Falscher CODE - Interne Pullups waren noch nicht mit aktiviert.
Jetzt passt der Code aber 1-zu-1 zum Programm auf dem Controller.

von citb (Gast)


Lesenswert?

Sowas wird bei 1-Wire Sensoren z.B. DS18S20 gemacht.
Dazu gibt es hier einen Artikel.

citb

von M. P. (phpmysqlfreak)


Lesenswert?

Hallo,

das habe ich bereits gesehen - ich lese seit einigen Monaten hier in den 
Foren mit, und kenne die Fähigkeiten einiger User und schätze eben 
Diese.

Allerdings geht es mir bei dem oben genannten Problem darum, dass ich 
aus Fehlern lernen möchte.
Leider habe ich noch kein Oszilloskop zur Hand, um etwas "genaueres" zu 
sehen. 500bit/s finde ich allerdings relativ langsam. Daher denke ich, 
dass eine provozierte Folge von 8 Bits mit dem "Status" 1 mit bloßem 
Auge zu sehen sein sollte. - Immerhin ist eine LED 0,016 Sekunden lang 
eingeschaltet.

Außerdem sollte eine bistabile Kippstufe bei diesem Impuls auch 
Umschalten (und mit einem weiteren Transistor zu die Zuleitung 
abschalten, um ein "Zurückspringen" zu verhindern), was allerdings nicht 
passiert.

Daher würde ich gerne in Erfahrung bringen, ob ich einen Fehler in der 
Schaltung oder dem Code eingebaut habe.

Gruß,

Marcel

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.