Forum: Mikrocontroller und Digitale Elektronik UART am PIC16F877A funktioniert nur teilweise


von Hamo K. (hammo61)


Angehängte Dateien:

Lesenswert?

Hallo,
ich habe folgendes Problem. Ich habe hier ein RC Auto was ich über den 
PIC steuern möchte. Wenn ich meinen umgerüsteten PC Netzteil als 
Spannungsquelle für den µC nehme funktioniert UART. Wenn ich aber von 
Fahrtregler die Spannung (4.97V) nehme funktioniert das Senden und 
Empfangen nicht.
Die Batterie ist neu und wurde voll aufgeladen. Die Servosteuerung 
funktioniert auch ohne Probleme. Habe es mit einem zweiten (gleichen) 
PIC probiert doch es ist das gleiche Problem.

Ich hoffe ihr habt ein paar tipps für mich.

mfg

Hamo61

von Erich (Gast)


Lesenswert?

Wahrscheinlich sind auf der Spannung doch Störimpulse drauf.
Spannung mit Oszi ansehen!

Schaltbild?
Software?

Gruss

von g457 (Gast)


Lesenswert?

> Wenn ich aber von Fahrtregler die Spannung (4.97V) nehme funktioniert das
> Senden und Empfangen nicht.

Wo ist die Gnd-Verbindung? Kann man auf dem Foto nicht wirklich 
erkennen.

von Der Rächer der Transistormorde (Gast)


Lesenswert?

Hamza K. schrieb:
> Wenn ich aber von
> Fahrtregler die Spannung (4.97V) nehme funktioniert das Senden und
> Empfangen nicht.

Kann eine Störung sein. Abblockkondensatoren direkt am Pic (zwischen 5v 
und 0v) sind ein erster Schritt.

von Hamo K. (hammo61)


Lesenswert?

Danke für die vielen Antworten.
Mein C-Code ist sehr simpel. Den habe ich von der Library übernommen. 
Arbeite mit MikroC pro for PIC.
1
char uart_rd;
2
void main() {
3
4
  UART1_Init(9600);               // Initialize UART module at 9600 bps
5
  Delay_ms(100);                  // Wait for UART module to stabilize
6
7
  UART1_Write_Text("Start");
8
  UART1_Write(10);
9
  UART1_Write(13);
10
11
  while (1) {                     // Endless loop
12
    if (UART1_Data_Ready()) {     // If data is received,
13
      uart_rd = UART1_Read();     // read the received data,
14
      UART1_Write(uart_rd);       // and send data via UART
15
    }
16
  }
17
}
Ich vermute nicht, dass es am Quelltext liegt sondern eher wie "Der 
Rächer der Transistormorde" oder "Erich" meinten, dass da irgendwelche 
Störungen sind. Meines Wissens ist ein 7805 Spannungsregler im 
Fahrtregler verbaut, denn die Batterie hat eine Spannung von 7,8V. Auf 
dem Bild rechts ist der Fahrtregler zu sehen. Da hab ich die 5V an den 
roten und GND an den blauen Streifen verbunden. weiter unten hab ich 
auch die Verbindungen auf die linke Seite gepackt, was man aber nicht 
auf der Bild sieht.

Verschaltet habe ich mienes Wissens alles richtig.
10kOhm zwischen MCRL und 5V
5V an VDD auf der linken und der rechten Seite
Gnd an VSS auf der linken und rechten Seite
20 MHZ Osszillator mit 2 Kondensatoren mit GND
auf der linken Seite ist die Servoverbindung
und rechts diese 2 losen Stecker sind meine Uartverbundung (RX und TX)

@Der Rächer der Transistormorde
soll ich einen Kondensator zwischen VDD und VSS anbringen (links und 
rechts)?
was für Kondensatoren empfiehlt es sich da hinzutun?

ps. Habe leider aus finanziellen Gründen kein Oszilloskop da :(



Hamo61

von Stefan (Gast)


Lesenswert?

Kenne die Schaltung nicht vom Fahrtregler.
Braucht die keine Pegelanpassung
von der UART ?

von g457 (Gast)


Lesenswert?

> rechts diese 2 losen Stecker sind meine Uartverbundung (RX und TX)

Wo geht die UART denn hin? Geht da auch eine Gnd-Verbindung 
hin?</ingrid>

von Hamo K. (hammo61)


Lesenswert?

Ne die gehen nicht an GND. Habe RX an TX, und TX an RX verbunden.
http://www.produktinfo.conrad.com/datenblaetter/175000-199999/197339-an-01-ml-USB_Programmieradapter_de_en_fr_nl.pdf
Diesen USB-Kabel habe ich. Wie gesagt es funktioniert bei einer anderen 
Spannugsquelle. Bei der Spannungsquelle vom Fahrtregler geths leider 
nicht.

@Stefan was meinst du mit Pegelanpassung?

von Dieter W. (dds5)


Lesenswert?

g457 schrieb:
>> Wo geht die UART denn hin? Geht da auch eine Gnd-Verbindung
>> hin?

Hamza K. schrieb:
> Ne die gehen nicht an GND. Habe RX an TX, und TX an RX verbunden.

Dann liegt es vielleicht daran, dass mit PC-Netzteil eine GND Verbindung 
über den mit PE verbundenen Minuspol der Stromversorgung vorliegt.

Es reicht nicht, nur RX und TX zu verbinden!

von Hamo K. (hammo61)


Lesenswert?

Dieter Werner schrieb:
> Es reicht nicht, nur RX und TX zu verbinden!

Ich wusste nicht das man mehr anschließen muss. Was muss ich noch 
anschließen?

von Martin S. (drunkenmunky)


Lesenswert?

Na, GND ;-)

von Hamo K. (hammo61)


Lesenswert?

Martin S. schrieb:
> Na, GND ;-)

Womit soll ich GND verbinden?

von g457 (Gast)


Lesenswert?

> Womit soll ich GND verbinden?

GND auf GND.

von Hamo K. (hammo61)


Lesenswert?

So habe nun GND vom USB mit GND vom Board verbunden. Siehe da, alles 
klappt.
Ich danke euch vielmals für die Hilfe darauf wäre ich niemals von 
alleine gekommen. Aber ich würde gerne wissen woher ihr das wusstest, 
dass es daran liegen muss?

von g457 (Gast)


Lesenswert?

> Aber ich würde gerne wissen woher ihr das wusstest, dass es daran liegen
> muss?

Wussten 'wir' nicht. Aber es durfe vermutet werden - ist ein 
Standardfehler :-)

von Hamo K. (hammo61)


Lesenswert?

Ah ok, nochmals danke an alle :)

von Bernd R. (Firma: Promaxx.net) (bigwumpus)


Lesenswert?

Und steck da ein paar 100nF Keramik-Kondensatoren zwischen VDD und VSS 
nahe am PIC und auch ruhig nahe am Servo und am Fahrtregler in die 
Löcher...

von Hamo K. (hammo61)


Lesenswert?

Bernd Rüter schrieb:
> Und steck da ein paar 100nF Keramik-Kondensatoren zwischen VDD und VSS
> nahe am PIC und auch ruhig nahe am Servo und am Fahrtregler in die
> Löcher...

was bringt es diese Kondensatoren dahin zu stecken?

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
Noch kein Account? Hier anmelden.