SerPort Driver zieht RXD auf High ?

  • 1
  • 2
  • Page 1 of 2
schnutzibaer
 
Avatar
 
Subject:

SerPort Driver zieht RXD auf High ?

 · 
Posted: 21.08.2013 - 14:01  ·  #1
Hallo, allerseits !

Ich habe mal wieder eine Frage bzw. ein Problem. Ich muss in meinem Projekt zwei Proc's über UART kommunizieren lassen. Proc 1 ist ein MEGA128A , Proc 2 ein NEURON5000 (Echelon). Der N5000 gibt "nur" 3,3V aus, aber das sollte beim ATMEL (der läuft mit 5V) eigentlich gehen.

Lass ich den ATMEL "blank" und schieb nur ein Mini-Testprogramm rein, kann ich an RXD1 ein saubere Datenframes sehen, die vom NEURON kommen.
Sowie ich aber den SerPort Treiber Serport2 importiere, ist Schluss. Man kann die Frames noch sehen, die Leitung geht aber nicht mehr auf Null runter, sondern sackt nur um ein paar hundert Millivolt ab.
Meine Frage ist, was der Serport-treiber denn genau mit dem RXD-Pin macht ?
Ich sitze derzeit hier leider in Belgien, und mehrere Leute warten auf Ergebnisse.

Ich würde mich sehr über jeden Tipp freuen!!

MfG

Claus.
Harry
Moderator
Avatar
Gender:
Location: zwischen Augsburg und Ulm
Age: 59
Posts: 2133
Registered: 03 / 2003
Subject:

Re: SerPort Driver zieht RXD auf High ?

 · 
Posted: 21.08.2013 - 15:46  ·  #2
Hi Claus,

schau mal, ob du ein Portinit auf dem SerPort2 hast ( DDRD:= ) .... wenn dann auf PortD, 2

Gruss
Harry
schnutzibaer
 
Avatar
 
Subject:

Re: SerPort Driver zieht RXD auf High ?

 · 
Posted: 21.08.2013 - 17:00  ·  #3
Hallo, Harry,

leider nein. Original Kopie aus dem Init-Modul:
// Port D
// nach Schaltung:
// PD7 : frei
// PD6 : Input RX_CAN (bei CAN Variante)
// PD5 : Output TX_CAN (bei CAN Variante) wird hier als Input definiert
// PD4 : Output TXRDY (Steuerung Seriell mit Neuron)
// PD3 : Output TXD1 Signal:RXD_IP (Seriell mit Neuron)
// PD2 : Input RXD1 Signal:TXD_IP (Seriell mit Neuron)
// PD1 : SDA I²C unused wird hier als Input definiert
// PD0 : SCL I²C unused wird hier als Input definiert

DDRD := %00011000;
keine weitere Stelle im Programm, wo DDRD nochmal benutzt wird.

Trotzdem danke. manchmal hat man ja nur Tomaten auf den Augen...

MfG
Claus.
Harald_K
 
Avatar
 
Subject:

Re: SerPort Driver zieht RXD auf High ?

 · 
Posted: 21.08.2013 - 17:42  ·  #4
klingt eigentlich so als ob da 2 Ausgänge aufeinander arbeiten .... müßte man aber sehen wenn man so 2k2 einfügt und beide Seiten vom Widerstand mal oszillografiert.

hab auch selber schon beim 128er mit beiden Seriellen zugleich gearbeitet, funzt normal gut und problemlos ...
ich stell immer DDR für den Tx auf Out und Rx auf In, den Port für beide auf 1 (gibt nen Rx-Pullup)
ohne den Rx-Pullup stopft es sonst gerne mal den Empfangspuffer zu bei offener Leitung

..vielleicht nutzt irgendeine andere Bibliotheksfunktion den PortD2 für sich??

ansonsten auch mal ins .asm-file schauen was der Compiler so tut.
Harry
Moderator
Avatar
Gender:
Location: zwischen Augsburg und Ulm
Age: 59
Posts: 2133
Registered: 03 / 2003
Subject:

Re: SerPort Driver zieht RXD auf High ?

 · 
Posted: 21.08.2013 - 18:48  ·  #5
Wie wäre denn ein kleiner gemeiner Kurzschluss irgendwo auf der Platine (hatte ich auch erst und war nur durch Zufall zu finden) oder ein defekter Mega ?
Ansonsten finde ich die Idee von Harald_K hervorragend.

Was sagt denn D2 wenn er in der Luft hängt ?
schnutzibaer
 
Avatar
 
Subject:

Re: SerPort Driver zieht RXD auf High ?

 · 
Posted: 21.08.2013 - 22:45  ·  #6
So, ich sitz jetzt im Hotel und hab Zeit, nochmal ein paar Details niederzuschreiben:
- Schlüsse: Pin wurde gegen Nachbarpins, GND und gegen Power (5 und 3,3 V) geprüft: OK.
- Auftrennen der Leitung geht nur, indem ich den Pin am ATMEL vorsichtig nach oben biege. Die Platine hat 4 Lagen, und die RxD/TxD Leitungen liegen dummerweise innen. Hab ich erst gemerkt, als die Boards schon bestellt waren.

Der Neuron-Chip läuft mit 3,3V und sendet im Sekundentakt ein paar ASCII-Zeichen, die ich auf der Leitung mit dem Oszi sehen kann. Ein HIGH ist dann natürlich auch nur 3,3V. Der ATMEL läuft mit 5V (bitte verlangt jetzt keine Erklärung, warum einmal 5 und einmal 3,3V), sollte aber 3,3V sicher als High erkennen.
Solange ich den SerPort2 Treiber beim ATMEL nicht importiere, sondern Pin D2 nur als gewöhnlichen Eingang definiere, sind die Pegel ja OK: Ein Low-Bit geht dann auch richtig runter bis auf GND. Also dürfte hardwaremäßig alles OK sein.
Erst, wenn ich SerPort2 importiere (und sonst nichts weiter mache!), geht das Theater los: High bleibt bei 3,3V, aber Low-Bits liegen ungefähr bei 3 Volt.
=====================
Import Systick, SerPort1, SerPort2, LCDport;

From System Import longword;

Define
ProcClock = 1000000; {Hertz}
SysTick = 5; {msec}
StackSize = $0064, iData;
FrameSize = $0064, iData;

SerPort1 = 19200, Stop1, timeout;
RxBuffer1 = 32, iData;
TxBuffer1 = 32, iData;

SerPort2 = 38400, Stop1, timeout;
RxBuffer2 = 32, iData;
TxBuffer2 = 32, iData;

LCDtype = 44780;
LCDport = PortA;
LCDRows = 2; //2-Zeiliges Display
LCDColumns = 8; //8 Zeichen pro Line
=======================

Morgen früh werd ich mal folgendes testen: Ich definiere RxD1 als normalen Input, polle ihn und gebe das Ergebnis an einem anderen Pin aus, wo ich es mir mit dem Oszi angucken kann. Ich meld mich dann wieder.

Danke für Euer Mitgefühl :angel2:

Mfg Claus
schnutzibaer
 
Avatar
 
Subject:

Re: SerPort Driver zieht RXD auf High ?

 · 
Posted: 22.08.2013 - 08:48  ·  #7
Guten Morgen !

Manchmal muss man eine Nacht drüber schlafen! Ich habe mal wieder meinen Standardfehler gemacht. Je angestrengter ich vermeiden will, diesen Fehler nochmal zu machen, um so sicherer kann ich sein, dass ich ihn doch mache.

Bitte nicht lachen: Ich habe RxD und TxD im Layout verwechselt ! Sorry für die Welle, die ich gemacht habe.

Danke und MfG bis zum nächsten Mal Claus.
Harry
Moderator
Avatar
Gender:
Location: zwischen Augsburg und Ulm
Age: 59
Posts: 2133
Registered: 03 / 2003
Subject:

Re: SerPort Driver zieht RXD auf High ?

 · 
Posted: 22.08.2013 - 09:16  ·  #8
Mach dir nix draus Claus, das ist wie ein gDispRefresh zu vergessen oder JTAG auf anderst verwendeten Ports nicht abzuschalten ;)

Gruss
Harry
  • 1
  • 2
  • Page 1 of 2
Selected quotes for multi-quoting:   0

Registered users in this topic

Currently no registered users in this section

The statistic shows who was online during the last 5 minutes. Updated every 90 seconds.
MySQL Queries: 14 · Cache Hits: 13   134   147 · Page-Gen-Time: 0.034002s · Memory Usage: 2 MB · GZIP: on · Viewport: SMXL-HiDPI