Seite 1 von 1
TTL-Pegel und deren Auswertung.
Verfasst: Freitag 4. Oktober 2024, 11:48
von kiaralle
Hallo,
wer von euch hat schon mal mit TTL-Pegel etwas zu tun gehabt?
Ich habe einen USB TO RS232/485/TTL Konverter am Rechner hängen.
Den zapfe ich über USB an.
Am TTL-Eingang (RXD) habe ich eine Spannung von 0-10 hängen. Diese verfolge ich am Oszi mit.
Mein Code
Code: Alles auswählen
import serial
ser = serial.Serial(port='/dev/ttyUSB0', parity="N", bytesize=8, stopbits=2, baudrate=9600)
ser.flushInput()
while True:
data = bytes.hex(ser.read())
print(str(ser.read()) + " - " + str(data))
Als Ausgabe erhalte ich unterhalb von 5V einen leeren String.
>5V = b''
5V = b'\x00' - 00
6V = b'P' - 50
7V = b'T' - 54
8 - 10V = b'U' - 55
Dezimal wären das Werte von 80 - 85. Was sollte mir das sagen?
Gemessen bei 5000Hz
Wenn ich die Frequenz verändere, verändern sich die Werte im ganzen vollständig.
3000Hz = b'\x12' - 12
Gruß vom Ralf
Re: TTL-Pegel und deren Auswertung.
Verfasst: Freitag 4. Oktober 2024, 12:23
von kiaralle
Bin gerade am denken.
Der Wert spielt ja an sich keine Rolle.
Kleiner 5 ist Low, größer ist High.
Re: TTL-Pegel und deren Auswertung.
Verfasst: Freitag 4. Oktober 2024, 12:57
von grubenfox
kiaralle hat geschrieben: Freitag 4. Oktober 2024, 11:48
Hallo,
wer von euch hat schon mal mit TTL-Pegel etwas zu tun gehabt?
Hier... das ist aber schon sehr lange her. Mein erster Gedanke bei TTL: 0V Low /5V High
kiaralle hat geschrieben: Freitag 4. Oktober 2024, 11:48
Am TTL-Eingang (RXD) habe ich eine Spannung von 0-10 hängen. Diese verfolge ich am Oszi mit.
.. und bei 10V an TTL ist der zweite Gedanke: nun ist die Hardware kaputt
Gut, je nach Duty Cycle mag das noch gut gehen. Aber gesund ist das nicht....
Re: TTL-Pegel und deren Auswertung.
Verfasst: Freitag 4. Oktober 2024, 13:14
von kiaralle
Hast in beiden Sachen recht.
Meine Hardware reagiert bei fallenden Pegel nahe 5V mit dem Signal High. Der Pegel muss 5,2V kurz übersteigen.
Konnte ich mit 1Hz schön verfolgen.
Re: TTL-Pegel und deren Auswertung.
Verfasst: Samstag 5. Oktober 2024, 22:34
von imonbln
kiaralle hat geschrieben: Freitag 4. Oktober 2024, 11:48
wer von euch hat schon mal mit TTL-Pegel etwas zu tun gehabt?
Hab ich schon mal gehört
kiaralle hat geschrieben: Freitag 4. Oktober 2024, 11:48
Am TTL-Eingang (RXD) habe ich eine Spannung von 0-10 hängen. Diese verfolge ich am Oszi mit.
10V normal sind bei TTL 5V, heute meisten mit LVTTL sogar nur 3,3V klingt etwas nach außerhalb der Spezifikation.
kiaralle hat geschrieben: Freitag 4. Oktober 2024, 11:48
ser = serial.Serial(port='/dev/ttyUSB0', parity="N", bytesize=8, stopbits=2, baudrate=9600)
Bist du dir sicher mit den 9600/8N2, zwei Stopbits sind eher ungewöhnlich 9600/8N1 ist wahrscheinlicher. Passt auch mehr zu dem Datenblatt.
Außerdem verwirrt deine Ausgabe etwas, bis du die Bedeutung der Bytes verstanden hast würde ich nicht das zweite Byte, als String vor dem ersten, welches du in Hex konvertiert hast, ausgeben. Btw von den Screenshots im Datenblatt würde ich 3 Bytes erwarten.
Änder mal Programm so ab und vielleicht wirst du dann Schlauer.
Code: Alles auswählen
import serial
ser = serial.Serial(port='/dev/ttyUSB0', parity="N", bytesize=8, stopbits=1, baudrate=9600)
ser.flushInput()
while True:
data = ser.read(3)
print(data.hex(' '))
Re: TTL-Pegel und deren Auswertung.
Verfasst: Donnerstag 10. Oktober 2024, 17:39
von kiaralle
Hi,
habe wieder mal etwas Zeit.
Dein Programm habe ich mal übernommen.
Woher ich die Stopits = 2 habe ???? Ist mir nicht aufgefallen
Als Ergebnis mit deinem Programm erhalte ich
00 00 00 bei jeden TTL-Signal
Re: TTL-Pegel und deren Auswertung.
Verfasst: Freitag 11. Oktober 2024, 11:53
von imonbln
Schade, aber letzten Endes ist der TTL Eingang des USB TO RS232/485/TTL auch nur eine serielle Schnittstelle, welche halt nur auf 5 V oder 3,3V läuft statt der üblichen 12V. Ich denke Du hast jetzt 2 Möglichkeiten, entweder Du erzählst und wie der Input des USB TO RS232/485/TTL erzeugt wird, also wo Du hin angeschlossen hast. Alternativ kannst Du auch den
TTL Aufbau aus dem Datenblatt mit einem zweiten
USB2TTL Konverter nachbauen, um so erstmal Dein Programm zu entwickeln.
Es könnte Dir auch helfen in einem Forum wie
https://www.mikrocontroller.net/ nachzufragen, da die Personen dort mehr Erfahrungen mit TTL 2UART haben und wahrscheinlich besser helfen können.
Re: TTL-Pegel und deren Auswertung.
Verfasst: Samstag 12. Oktober 2024, 13:53
von kiaralle
entweder Du erzählst und wie der Input des USB TO RS232/485/TTL erzeugt wird
Ich erzeuge das Signal über einen Frequenzgenerator 0-5,25V, Rechtecksignal.
Das Signal muss hier etwas höher als 5V sein. Wenn der Pegel lällt, wird im TTL ein Signal ausgelöst.
Es wird auch kein verwertbare Information kommen, da ja nur Falling-High ein Signal auslöst.
Ansonsten, gibt es einfach kein Signal.
Hab mal das Skript etwas umgebaut und es zählt die Impulse hoch.
Wenn man mit der Frequenz höher geht, muss man die bautrate angleichen. Mit 9600 ist dann scheinbar nicht mehr viel zu reisen.
Code: Alles auswählen
import serial
ttl = 0
ser = serial.Serial(port='/dev/ttyUSB0', parity="N", bytesize=8, stopbits=1, baudrate=115200)
ser.flushInput()
while True:
data = ser.read(3)
# print(data.hex(' '))
if data.hex(' ') == '00 00 00':
ttl += 1
print(ttl)
Die Anzahl der Bits wird hierbei uninteressant sein. Mehr wie 00 wird nicht kommen.
Eventuell baue ich mir mal einen TTL mit 3 Eingängen und kann so prüfen ob ein Inkrementeal-Geber pro Umdrehungen auch alle Signale ausgibt.
Ein Danke in die Runde.
Re: TTL-Pegel und deren Auswertung.
Verfasst: Samstag 12. Oktober 2024, 20:28
von imonbln
kiaralle hat geschrieben: Samstag 12. Oktober 2024, 13:53
ich erzeuge das Signal über einen Frequenzgenerator 0-5,25V, Rechtecksignal.
Es ist verdammt lange her das ich mir die Pegel auf einen UART mit der Einstellung 8N1 angesehen habe. Daher bin ich unsicher, ob ein Frequenzgenerator das mittel der Wahl ist um den USB TO RS232/485/TTL Konverter zu testen. Falls ich mich recht Erinnere war das Startbit Low Activ und das Stopbit ein Hight Signal.
Die Erwartung wäre also, wenn dein Versuchsaufbau funktioniert und der Frequenzgenerator die richtige Frequenz hat (ca 115,2 kHz, bei 115200 8N1), das dein Programm entweder 0x55 oder 0xAA empfängt. Je nachdem ob der High oder Low Pegel zuerst gesendet wird.
Re: TTL-Pegel und deren Auswertung.
Verfasst: Sonntag 27. Oktober 2024, 16:27
von kiaralle
Hi,
ich bin ja noch eine Antwort schuldig.
Dein Vorschlag mit der Frequenz konnte ich so nachbilden.
Gruß Ralf
Re: TTL-Pegel und deren Auswertung.
Verfasst: Sonntag 27. Oktober 2024, 19:23
von imonbln
Je länger ich darüber nach denke, desto sicher bin ich mir das ein normaler Frequenzgenerator nicht in der Lage sein wird UART konforme Bytes zu erzeugen. Siehe zum Beispiel
https://youtu.be/sTHckUyxwp8?si=2odQCoXSF2HlUM9P&t=153
Vielleicht kaufst du dir für kleines Geld ein 2 USB2TTL Konverter (die fangen bei AliExpress bei 2 Euro an und kosten auch bei Amazon meist nicht mehr als 10 Euro ) und Testes damit dein Programm.
Re: TTL-Pegel und deren Auswertung.
Verfasst: Sonntag 27. Oktober 2024, 22:24
von DeaD_EyE
Ich glaube es handelt sich hier um das typische XY Problem.
Das XY-Problem ist ein Kommunikationsproblem, welches hauptsächlich bei der Kundenbetreuung und ähnlichen Situationen auftritt. Hierbei wird das eigentliche Problem, X, von der Person, die Unterstützung sucht, verschleiert.
TTL sagt nur über den Signalpegel etwas aus (5V) und nichts über das Protokoll (UART).
Was hast du vor? Was willst du auswerten?
Bei TTL denke ich z.B. zuerst an Encoder, die den Gray-Code ausgeben.
Wenn das Protokoll nicht UART ist, kannst du mit UART auch nichts anfangen.
Re: TTL-Pegel und deren Auswertung.
Verfasst: Donnerstag 31. Oktober 2024, 11:53
von kiaralle
imonbln hat geschrieben: Sonntag 27. Oktober 2024, 19:23
Je länger ich darüber nach denke, desto sicher bin ich mir das ein normaler Frequenzgenerator nicht in der Lage sein wird UART konforme Bytes zu erzeugen. Siehe zum Beispiel
https://youtu.be/sTHckUyxwp8?si=2odQCoXSF2HlUM9P&t=153
Vielleicht kaufst du dir für kleines Geld ein 2 USB2TTL Konverter (die fangen bei AliExpress bei 2 Euro an und kosten auch bei Amazon meist nicht mehr als 10 Euro ) und Testes damit dein Programm.
Ja das ist einleuchtend.
Der Frequenzgenerator erzeugt keine UART konforme Bytes.
Für einen speziellen Zweck war mein Test nicht gedacht.
Ist nur eine Schlachtwetterspielerei, 3... Bildungsweg.
Mit 58 darf man das

Re: TTL-Pegel und deren Auswertung.
Verfasst: Donnerstag 31. Oktober 2024, 14:30
von __blackjack__
@kiaralle: Randbemerkungen zu den Quelltexten: Man sollte nicht mehr die API von `serial` verwenden die sich nicht an die Namenskonventionen hält. Also statt `flushInput()` verwendet man `reset_input_buffer()`.
Methoden sollte man auf den Objekten aufrufen und nicht auf der Klasse, also ``ser.read().hex()`` statt ``bytes.hex(ser.read())``.
Die Werte sind eher nicht als Hexadezimal- oder Dezimaldarstellung interessant, sondern als Binärdarstellung:
Code: Alles auswählen
In [267]: bin(0x50)
Out[267]: '0b1010000'
In [268]: bin(0x54)
Out[268]: '0b1010100'
In [269]: bin(0x55)
Out[269]: '0b1010101'