Hi, ich hoffe ich habe keinen Thread übersehen der mir helfen könnte, daher mein Problem hier. Ich möchte mit dem ATMega128 und Peaktech 3315 Messgerät ein paar Daten loggen. Nach etwas ausprobieren (DTR > 3V und RTS 0V oder kleiner) sendet nun mein Peaktech die Daten jetzt schön wie erwartet. Laut Datenblatt soll es "2400,o,7,1" (JIS 7 Bit Startbit immer 0, erst LSB dann MSB) senden, aber ein VB Testprogramm am PC liest die Daten mit ""2400,n,7,1" prima aus. D.h. ich habe mit einem Oszi kontrolliert die Daten kommen als ca. +5V schön am Eingangspin der seriellen Schnittstelle des ATMega an (Respektive des verbauten MAX232 Chips). Leider schaffe ich es nicht diese einzulesen obwohl die Kommunikation des ATMega mit einem PC z.Bsp via Hyper Terminal einwandfrei funktioniert. D.h die Standard Verarbeitung in BASCOM die ungef. so aussieht: --------------------------------------------- $baud1 = 2400 Open "COM2:" For Binary As #1 Do Inputhex #1 Z oder Input #1 Z ... Ich habe es auch mit der zusätzlichen Eingabe von Config Com2 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 7 , Clockpol = 0 mit diversen Parametern nicht geschafft. Auch die Versuche mit Open "COM2:2400,7,n,1" For Input As #1 und ähnliches halfen leider nicht. ---------------------------------------------- D.h. der ATMega empfängt einfach keine Daten obwohl definitiv Daten am Eingang liegen. Kann es ein Problem des +5V Pegels sein? Obwohl RS232 doch ab 3V gehen sollte. (On Board des ATMega ist der MAX232 der dies doch managen können sollte). Oder .... Hat jemand eine Lösung? Oder einen guten Tip? Gruß Peter
Wie ist der AVR genau mit dem Messgerät verbunden? In obigem datenblatt steht etwas von -3 / 0 Volt Pegel, der AVR arbeitet aber mit 0 / 5 Volt Pegel.
Hi, das Messgerät hat eine "normale" serielle Schnittstelle die an jedem PC funktioniert. D.h. die Pegel sind in der Spezifikation -15..-3 und +3 .. 15V. gemessen habe ich beim Anschluss an den PC Pegel von ca. 9V. Angeschlossen ist PIN 2 RxD Out (Datenstrom) PIN 3 TxD In (habe nicht ohne getestet) PIN 4 DTR In (mindestens +3V, getestet mit +5V und +9V) PIN 5 Ground PIN 7 RTS In (mindestens 0V, besser -3 bis -15V, getestet mit Masse (0V) war ok: soll heißen wenn Leitung offen sendet das Messgerät nicht. Aber bei Pegeln 0V ... -9V sendet es Daten. Gruß Peter
Wenn du zwischen Max232 und ATmega mit dem Oszi misst und da auch saubere daten ankommen, dann muss das problem irgendwo in der Software/konfig des USARTs liegen. Ich würde evtl. auch mal einen anderen Max232 probieren. Bei mir machen die manchmal (wenn auch selten) aus unerfindlichen gründen probleme.
... gemessen habe ich nicht zwischen Max232 und AtMega sondern am seriellen Anschluss (außen). Aber schreiben hilft, ich habe noch mal nachgedacht: Die Schnittstelle vom Messgerät wird möglicherweise von dem RS232 des PC/AVC mit Spannung versorgt. D.h. nicht wie ich zuerst dachte das DTR / RTS die Freigabe bewirken, nein diese könnten auch das Power Supply sein. Dann wären die 5V genug für das funktionieren der Sschnittstelle aber zu wenig für den AVC Eingang. Ich werde dies mal probieren. Kann ich dazu die +/- 10V von dem MAX232 nehmen? Oder darf man diese nicht extern belasten? Die Stromaufnahme des Schnittstelllenkabels kenne ich noch nicht, vielleicht hat diese ja einer zur Hand? Gruß Peter
Du schreibst als Datenformat: 2400, 7, o, 1, programmierst aber COM2:2400,7,n,1 Da zwischen No Parity und Odd Parity doch ein Unterschied ist, solltest du da auch mal nachschauen! Vielleicht macht da Bascom einen Fehlercheck? Servus, Helmut.
Hi, ich alle möglichen und unmöglichen Parameter ausprobiert, d.h. natürlich auch o,n,e... Habe eben die Idee ausprobiert die SSt zum Messgerät mit +/- 10V vom Max232 zu speisen. Funktioniert gut, d.h. es kommen jetzt schöne +/- Impulse auf Rx des AVR an. Leider ließt er diese immer noch nicht. Ein Versuch das Messgerät mit Windows Hyperterminal zu lesen funktioniert auch nicht. D.h. ich vermute doch noch ein Protokoll Problem. Hier für alle mitleser das was im Interface Protokoll steht (s. Anlage). Gruß Peter Nachtrag: Anlage schaffe ich nicht??? Steht aber direkt am Anfang des Threads als peaktech... pdf.
Sorry noch ein Nachtrag. Schlieese ich das Messgerät an den Win. PC an kann ich mit einem eigenen VB Programm die Daten prima auslesen --------------------------------- Die wichtigsten Parameter sind: Set CommP = CreateObject("MSCommLib.MSComm") CommP.Settings = "2400,N,7,1" CommP.InputMode = comInputModeText CommP.InBufferSize = 26 CommP.PortOpen = True CommP.RThreshold = 1 CommP.SThreshold = 1 CommP.InputLen = 0 CommP.DTREnable = True CommP.RTSEnable = False CommP.EOFEnable = False ------------------------------------ Beim Versuch das Messgerät mit Hyper-terminal zu belauschen geht aber nicht, obwohl ich alle Parameter probiert habe (wie bereits gesagt HT direkt am AVC funktioniert. -----------------------------------
Hi, langsam komme ich der Sache näher...... Ich berichtete das die Kommunikation AVC - PC mit Hyperterminal funktioniert. Das stimmt auch, aber nur mit Baudrarten >= 9600 Bascom hat zwar Baud 2400 im Programm nie angemeckert, aber wenn man 2400 bei den AVR Options (Communications) einträgt, kommt die antwort "not possible". D.h. ich versteh das so, entweder hat der AVC keinen genügend großen Teiler um von 16 MHz auf 2400 Baud zu kommen. Ist das so? Wenn ja gibt es eine Umgehungslösung? Gruß Peter
ich mache einen neues Thema auf weil ich jetzt ziemlich weit weg von dem zuerst angenommen Problem bin...
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.