Clock/Data auslesen über LPT

Im Unterforum Projekte im Selbstbau - Beschreibung: Selbstbau von Elektronik und Elektro

Elektronik Forum Nicht eingeloggt       Einloggen       Registrieren




[Registrieren]      --     [FAQ]      --     [ Einen Link auf Ihrer Homepage zum Forum]      --     [ Themen kostenlos per RSS in ihre Homepage einbauen]      --     [Einloggen]

Suchen


Serverzeit: 06 11 2024  23:39:33      TV   VCR Aufnahme   TFT   CRT-Monitor   Netzteile   LED-FAQ   Osziloskop-Schirmbilder            


Elektronik- und Elektroforum Forum Index   >>   Projekte im Selbstbau        Projekte im Selbstbau : Selbstbau von Elektronik und Elektro

Gehe zu Seite ( Vorherige Seite 1 | 2 | 3 | 4 Nächste Seite )      


Autor
Clock/Data auslesen über LPT

    







BID = 759092

QuirinO

Schreibmaschine



Beiträge: 2205
Wohnort: Behringersdorf
Zur Homepage von QuirinO ICQ Status  
 

  


Dann kann man aber natürlich auch gleich direkt einen Mikrocontroller programmiere...

BID = 759094

DonComi

Inventar



Beiträge: 8605
Wohnort: Amerika

 

  

Das hatte ich zu Anfang aber auch gleich gesagt!


_________________

BID = 759100

martix

Neu hier



Beiträge: 37
Wohnort: Stuttgart

Auch wenn ich nur die Hälfte verstanden habe, hört sich das nicht sooo gut an

Dann wars eben Wunschdenken. Habe mir das einfacher vorgestellt.

Dann sind die Sendernamen halt statisch auf die Stationsknöpfe gelegt.

Das Wechseln der Sender lässt sich ja zum Glück auf Hardwareebene realisieren. Das krieg ich hin.


Ich danke nochmal allen, die mir so gut geholfen haben.

BID = 759103

DonComi

Inventar



Beiträge: 8605
Wohnort: Amerika

Hallo martix,

nana, versuchs wenigstens mal .

Vielleicht, ja hoffentlich irre ich mich und die C-Control ist doch flott genug .

Probieren schadet nicht!

_________________

BID = 759328

martix

Neu hier



Beiträge: 37
Wohnort: Stuttgart

So.
Habe mir gestern den ULN2003 besorgt und folgendermaßen anschlossen (siehe Bild).

Mein Programm sieht so aus (ja ich weiß, es ist großer Pfusch, weil ich ständig Sachen lösche und wieder hinzufüge... aber von der Logik her sollte es stimmen)


Code :


define Zaehler Word
define Light Port[16]
define data BYTEPORT[1]
define data1 Word



Light = Off
Zaehler = 0
lcd.init
interrupt Impuls




#Loop
if Zaehler = 1 then
if data1 = on then
lcd.print 1
else
lcd.print 0
end if
Zaehler = 0
end if

goto Loop 'Endlosschleife

#Impuls
Zaehler = 1
data1 = data
return interrupt

end



Ich kriege jetzt pro Tastendruck entweder 5, oder 10 Nullen hintereinander. (Die 10 gefallen mir schon gut, weil es auf dem Bild ja auch Takte waren).

Ich weiß, bis jetzt suche ich noch nach fallenden Flanken, aber trotzdem müsste da doch durch Zufall irgendwo wenigstens eine 1 dabei sein, oder?

Ich befürchte, dass entweder meine Verkabelung noch falsch ist, oder aber das Radio gerne einen Handshake hätte, bevor es anfängt "echte" Daten zu senden. Letzteres glaub ich eigentlich nicht, weil es keinen Eingang dafür gibt (habe nochmal etwas recherchiert. Data-In ist für Titelinformationen eines evtl. angeschlossenes CD-Wechslers).

Stimmt die Verkabelung denn so?

Danke, auch für die Ermutigung, weiter zu machen!



BID = 759337

DonComi

Inventar



Beiträge: 8605
Wohnort: Amerika

Sooooo - wieso sagt hier keiner was?

Wenn diese Schnittstelle als Slave arbeitet, muss der Master ja eh den Takt erzeugen

Also sieht das Programm eher so aus:

1. Slave aktivieren (via Enable)

2. Daten lesen

3. Slave deaktiveren (via Enable)

Dein Programm ist Murks.


Eine Möglichkeit wäre folgende:
Function ByteLesen()

  Dim i As Integer
  Dim B As Byte

  B = 0

  For i = 1 To 8

    'Alle Bits eine Stelle nach links schieben
    B = B + B

    'steigende Flanke erzeugen
    Clock = 1

    'Daten einlesen
    If Datenleitung = 1 Then
      B = B + 1
    End If

    'fallende Flanke erzeugen
    Clock = 0

  Next

  ByteLesen = B

End Function


So oder so ähnlich kann das aussehen.
Clock = x muss durch den Befehl ersetzt werden, um einen Ausgang auf High oder Low zu schalten.

Dabei spielt natürlich die Geschwindigkeit der C-Control absolut keine Rolle, weil sie den Takt erzeugt.
Frag mich bitte nicht, wieso ich die ganze Zeit so einen Quatsch mit zu langsam etc. erzählt habe.
Muss am Stress liegen

_________________


[ Diese Nachricht wurde geändert von: DonComi am  8 Apr 2011 13:37 ]

BID = 759343

martix

Neu hier



Beiträge: 37
Wohnort: Stuttgart

Moment, das hab ich jetzt leider nicht verstanden.
Warum muss ich jetzt eine fallende/steigende Flanke erzeugen?
Den Takt gibt doch das Radio an?


Ich glaube dir absolut, dass dein Code richtig ist, aber verstehen tu ich ihn nicht.

Wo ist z.B. der Interrupt hinverschwunden?

Ich versuche nochmal meinen Code zu erleutern.
Ein Interrupt (Taktsignal) unterbricht die Dauerschleife und setzt Zähler auf 1. Noch im Interrupt ließt sie den Dateneingang und schreibt ihn in eine Variable.
Danach gehts zurück in die Dauerschleife.
Findet diese nun den Zähler mit dem Wert 1 vor, schreibt sie die Variable, in der der Datenwert des Eingangs liegt aufs Display.
Eine Umwandlung in ein Byte ist noch nicht erfolgt. Ich wollte nur sehen, ob die Bits richtig und sinnvoll ankommen.

Gruß Martin

BID = 759344

DonComi

Inventar



Beiträge: 8605
Wohnort: Amerika

Hallo,

Also, wenn man davon ausgeht, dass das Radio ein Slave ist, dann muss ein Takt erzeugt werden. Ist das Radio ein Master, erzeugt den Takt also selber, dann muss man sich mittels Interrupt mit dem Takt synchronisieren.


Sollte es sich um einen Master handeln dann ist dein Programm einfach zu langsam. Wie gesagt, ausgehend vom Oszillogramm am Anfang dieses Threads lägen zwischen zwei Taktimpulsen nur ein paar 10µs, das schafft die C-Control nicht, erst recht, wenn du schwwischendurch aufs Display schreibst..

Es muss jetzt erstmal geklärt werden:

Wer muss den Takt erzeugen - tut das das Radio selbst und wenn ja, wie kann derjenige, den die Daten interessieren, das Radio dazu bringen, die Daten auszuspucken (ENA?).


Am besten du schreibst dem Typen, der dir das Oszillogramm geschickt hat, nochmal eine Email:

Frage ihn, woher der Takt auf dem Bild kommt, ob er den erzeugt hat. Ein Oszi hast du ja nicht selber, oder?
Frage ihn weiterhin, ob ENA Ein- oder Ausgang und welche Bireihenfolge gilt (LSB oder MSB zuerst).

Alles andere ist nicht zielfördernd.


P.S.: Wenn dein Interrupt tatksynchron wäre, dann müsste er exakt 8 mal auslösen, nicht seltener und nicht öfter.

_________________

BID = 759346

martix

Neu hier



Beiträge: 37
Wohnort: Stuttgart

Gut, habe ihm geschrieben... er wird bestimmt bald antworten.

Nochmals zur Anzahl:
Müssten es nicht vielmehr 64 Takte pro Übertragung sein?
8Bit pro Byte und RDS-Namen sind immer achstellig, also 8x8?
10 ist natürlich Quatsch, weiß nicht wie ich da drauf gekommen bin.

Ich werde das Programm jetzt nochmal ändern.
Es soll nichts tun, außer die Takte zählen und am Ende irgendwann die Anzahl der Takte ausgeben.

Evtl. ist es dann schnell genug.
Mal schauen, was dabei rauskommt.

Ich melde mich dann nochmal, sobald er geantwortet hat.

Gruß Martin

BID = 759351

DonComi

Inventar



Beiträge: 8605
Wohnort: Amerika

Auf jeden Fall müssen es Vielfache von 8 Bit sein .


Ja, warten wir seine Antwort ab.
Alles davor bringt wenig.

_________________

BID = 759692

martix

Neu hier



Beiträge: 37
Wohnort: Stuttgart

Hallo,
er hat zwar noch nicht geantwortet, aber ich hab die alten Mails nochmal durchgelesen. Da stehen interessante Dinge drin, die ich so gar nicht mehr im Kopf hatte.
Kurze vorab-Info: Er hat damals versucht, einen Tacho mit Display, der nicht für das Radio gemacht war, an das Radio anzuschließen.


Zitat :
Hi,

hab Dir mal Fotos von meinem Versuch gemacht.
Ich wollte das Blaupunkt Radio an den Tacho anbinden
und habe dazu eine Platine gebastelt.
Was das Protokoll von VW angeht so ist Taktfrequenz bei 50 kHz
was bedeuten würde Du müsstest mindestens mit dem doppelten
(100kHz.) "sampeln".
Das einfache an dem Blaupunkt war dass es mit dem I²C Protokoll
sendet -> dieses Protokoll können die Controller meistens auf Hardware.
Du kannst aber auch das Gamma- Radio verwenden. Auf jeden Fall würde
vorschlagen einen Controller zu verwenden und an Deinen PC anzubinden.
Dann bekommst Du z.B. die Daten seriell und kannst zusätzlich noch die Sender
über den Controller umschalten.
Schau es Dir einfach mal an !




Zitat :

kurze Erklärung zum Bild:

Bei dem Bild handelt es sich um die Anfrage welche vom Gamma- Radio zum Tacho.
Channel 1: Data - jedoch von der Logik umgekehrt (0=1 und 1=0) weil Low-aktiv.
Die Anfrage ist immer "hex" 81.

Channel 2: Clock - die Daten werden immer zur positiven Taktflanke eingelesen.
Kannst mal probieren ob Du auf "0111 1110" dann negieren "1000 0001" (hex81)

Channel 3: ENA - bei der Anfrage zieht das Radio den Pegel auf 5 Volt, bei den weiteren
Paketen gibt der Tacho vor ob er bereit ist Daten zu empfangen. Ich hab noch ein Bild
wo der Tacho positiv antwortet angehängt !


Das Bild, das angehängt ist, gehört zur zweiten Mail.
Ich hätte die Mails gleich am Anfang nochmal durchlesen sollen.
Mir war nicht mehr bewusst, dass drin stand, dass der Tacho auch antworten muss.



Ich bin jetzt doch vollends verwirrt.
100kHz???
Ich weiß auch nicht, auf welchem Pin das Radio die Antwort des Tachos empfangen will.
Ich glaube nicht, dass das so jemals noch was wird.


Mir ist aber noch eine zweite Idee gekommen:
Das Display IM Radio muss doch auch mit relativ simplen Daten versorgt werden. Könnte ich evtl. einfach die Datenleitung des Displays benutzen?


Gruß

BID = 759697

QuirinO

Schreibmaschine



Beiträge: 2205
Wohnort: Behringersdorf
Zur Homepage von QuirinO ICQ Status  

Wenn du zum Display-Controller im Radio keine Daten hast, wird es schwierig bis unmöglich diese Daten zu verwenden bzw auszuwerten.

Hast du jetzt schon ausgetestet ob die Geschwindigkeit der C-Control reicht?


BID = 759705

martix

Neu hier



Beiträge: 37
Wohnort: Stuttgart

Also ja, ich denke die Geschwindigkeit reicht.

Ich habe gerade ein bisschen herumexperimentiert:

Pro Interrupt über den IRQ-Eingang inkrementiert er eine Variable. Sonst nichts.

In eine Dauerschleife gibt er, sobald diese Variable eine Grenze, ich habe jetzt willkürlich 64 genommen, überschritten hat, gibt er die Variable auf dem Display aus.
Während den Interrupts muss er also nur einen Vergleich "Variable >= 64" machen.

Dann habe ich die Sender durchgezappt.
Immer nach 7 Senderwechsel hat er 67 Interrupts ausgegeben. Konstant(fast). Bei zwei von ca. 12 Versuchen hat er 68 ausgegeben.
Das erkläre ich mir damit, dass er ab 64 eben anfängt auf des Display zu schreiben, was ihn "ablenkt" und er dadurch evtl. doch ein Interrupt nicht mitbekommt.

Daraus schließe ich, dass er jeden Interrupt mitbekommt. Wäre er zu langsam würde meiner Meinung nach, durch die Asynchronizität mal mehr, mal weniger Interrupts übersprungen.
Ich bin mir also recht sicher, dass er schnell genug ist.


[ Diese Nachricht wurde geändert von: martix am 10 Apr 2011 18:05 ]

BID = 759712

DonComi

Inventar



Beiträge: 8605
Wohnort: Amerika

Da steht jetzt aber noch was von I²C - das sollte die C-Control sogar in Hardware beherrschen.

Dennoch, ein komisches Ding.

Getreu den Spezifikationen für SPI und/oder I²C arbeitet das Ding als Master.
Man würde eher einen Slave erwarten, der auf Anfrage Informationen rausrückt.


Eine Anfrage sowie eine folgende Bestätigung (ACK) ist bei I²C eigentlich normal. Bei SPI hat meist kein ACK.

Komisches Ding, das....

_________________

BID = 759716

martix

Neu hier



Beiträge: 37
Wohnort: Stuttgart

So wie ich das verstanden hab, hat das Blaupunktradio, das er zum Testen verwendet hat, die I²C-Schnittstelle. Mein Gamma-Radio aber nicht.
Die C-Control unterstützt I²C. Jedenfalls gibts ein paar Pins die so bezeichnet sind.

Habe davor allerdings noch nie etwas davon gehört.


Vorherige Seite       Nächste Seite
Gehe zu Seite ( Vorherige Seite 1 | 2 | 3 | 4 Nächste Seite )
Zurück zur Seite 0 im Unterforum          Vorheriges Thema Nächstes Thema 


Zum Ersatzteileshop


Bezeichnungen von Produkten, Abbildungen und Logos , die in diesem Forum oder im Shop verwendet werden, sind Eigentum des entsprechenden Herstellers oder Besitzers. Diese dienen lediglich zur Identifikation!
Impressum       Datenschutz       Copyright © Baldur Brock Fernsehtechnik und Versand Ersatzteile in Heilbronn Deutschland       

gerechnet auf die letzten 30 Tage haben wir 23 Beiträge im Durchschnitt pro Tag       heute wurden bisher 9 Beiträge verfasst
© x sparkkelsputz        Besucher : 182293595   Heute : 4424    Gestern : 4667    Online : 500        6.11.2024    23:39
3 Besucher in den letzten 60 Sekunden        alle 20.00 Sekunden ein neuer Besucher ---- logout ----viewtopic ---- logout ----
xcvb ycvb
0.0479300022125