Serieller COM-Port mit 76800 Baud

Hardware- und Elektronikbasteleien, Ansteuerung von Schnittstellen und Peripherie.
Fragen zu "Consumer"-Problemen kommen in Offtopic.
Langstein
Beiträge: 13
Registriert: 25.09.2008 18:29

Serieller COM-Port mit 76800 Baud

Beitrag von Langstein »

Hallo zusammen,
die standard Library von Purebasic erlaubt keine 76800 Baud. Wie kann ich die schnittstelle mit dieser Baud aufmachen? Kann man an einen Entwickler eine Mail schreiben um das nachzupflegen? /:->
Wäre echt super, wenn jemand antwortet.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Rings
Beiträge: 971
Registriert: 29.08.2004 08:48

Beitrag von Rings »

Ich programmiere nun schon seit über 20 Jahren mit
seriellen schnittstellen.
Kann man die baudrate überhaupt unter windows nutzen ?
Kommt es da nicht auf die hardware an ?
Klappt die baudrate im Windows-Terminal PRG ?

last not least, wofür brauch man eine solche
baudrate (76800 ), hab ich noch nie gehört.
Rings hat geschrieben:ziert sich nich beim zitieren
Benutzeravatar
Helle
Beiträge: 566
Registriert: 11.11.2004 16:13
Wohnort: Magdeburg

Beitrag von Helle »

Also die (halbwegs moderne) PC-Hardware schafft dies ohne Probleme. In den Datenblättern der Super-IO-Chips wird ein Bereich von 50 bis 1.497.600 Baud angegeben. Über direkte Port-Zugriffe relativ leicht selbst zu programmieren. Das Problem dürfte wohl eventuelle externe Hardware sein.

Gruß
Helle

P.S.: Die Baud-Werte sind natürlich abhängig vom eingesetzen Super-IO-Chip!
Zuletzt geändert von Helle am 26.09.2008 19:39, insgesamt 1-mal geändert.
Langstein
Beiträge: 13
Registriert: 25.09.2008 18:29

Beitrag von Langstein »

Ja, die Baud gibt es in der Gebäudeautomation bei BACnet. Andere Programme laufen ausgezeichnet.

Nochmal die Bitte nach einem Entwicklerkontakt.
Benutzeravatar
Kiffi
Beiträge: 10621
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

Langstein hat geschrieben:Nochmal die Bitte nach einem Entwicklerkontakt.
den hat Dir Thomas (ts-soft) mit dem Link oben ja schon genannt. Alles, was
dort gepostet wird, liest der Entwickler auch höchstpersönlich. (Nur ob und
wann es umgesetzt wird, ist eine andere Sache ;-))

Grüße ... Kiffi
Hygge
Benutzeravatar
Helle
Beiträge: 566
Registriert: 11.11.2004 16:13
Wohnort: Magdeburg

Beitrag von Helle »

@Langstein: Das Problem dürfte der Wert von 76.800 Baud sein, den ich nur bei aktuellen Winbond-Chips fand, nicht aber bei anderen Herstellern. Hat zwar erstmal nichts zu sagen, meine Datenblatt-Sammlung ist natürlich unvollständig, aber 76.800 Baud würde ich schon ausserhalb einer "Normreihe" bezeichnen. Damit sinken die Chancen einer generellen Unterstützung (na ja, eigentlich Chance gleich Null). Wenn du es nur privat (soll heissen, für deinen Hobby-PC) nutzen willst, checke doch erstmal, ob dein PC (der Super-I/O-Chip) diesen Wert überhaupt unterstützt/bereitstellt. Wenn ja, siehe die direkten Port-Zugriffe.

Gruß
Helle
smiley46
Beiträge: 7
Registriert: 14.09.2008 22:01
Wohnort: Geiziger Süddeutscher

Beitrag von smiley46 »

Könnte durchaus über die API funktionieren.

Weil:
2.995.200 / 2 = 1.497.600
2.995.200 / 26 = 115.200
2.995.200 / 39 = 76.800
2.995.200 / 156 = 19.200

Anderes Beispiel: Der USB Chip FT232
Baud = 6.000.000 / 2 / Teiler

Teiler Baudrate Abweichung
38 78947 (+2,7%)
39 76923 (+0,2%)
40 75000 (-2,4%)

Die Abweichung ist bei einem Teiler von 39 sehr gering. Alle drei sollten jedoch funktionieren, da die Abweichung weniger als 3% beträgt.
Langstein
Beiträge: 13
Registriert: 25.09.2008 18:29

Beitrag von Langstein »

Hallo zusammen,

danke für die Infos. Hab den Wunsch auf das Entwicklerboard gestellt. Mal sehen, ob es was wird.

Da ich nicht der ausgebuffte Entwickler bin, wäer ich dankbar, wenn mir einer einen Tip geben könnte, wie ich auf die Windows API zugrefen kann. Tutorial mit ersten Schritten wäre super.

Danke für Eure Tipps.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

So ganz verstehe ich das sowieso nicht, die Lib funktioniert doch mit allen Baudraten, die die Schnittstelle zur Verfügung stellt.

Code: Alles auswählen

Port$ = "COM1"
If OpenSerialPort(0, Port$, 76800, #PB_SerialPort_NoParity, 8, 1, #PB_SerialPort_NoHandshake, 1024, 1024)

	MessageRequester("Information", "SerialPort opened with success")

Else
	MessageRequester("Error", "Can't open the serial port: "+Port$)
EndIf
115200 funktioniert bei mir, aber 76800 kann meine Schnittstelle nicht, würde aber ansonsten gehen (gehe ich mal von aus)
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Antworten