Forum: Mikrocontroller und Digitale Elektronik ständige reboots eines dsPIC30F6015


von hochsitzcola (Gast)


Lesenswert?

Hallo Zusammen,

ich versuche gerade einen E-Bike BLDC-Controller von BionX zu verstehen, 
um eine eigene Firmware dafür zu entwickeln.
Ich konnte den Prozessor mit einem billigen PICkit2 auslesen und auch 
ein einfaches Blink- und UART- Beispiel flashen.

Blinken und UART-Kommunikation funktionieren auch, allerdings kommen 
immer nur die ersten xxx Zeichen richtig an, danach wird nur noch Müll 
gesendet und schließlich resettet sich der Prozessor.
Ich habe schon VSS, VDD und Reset mit dem Oszi beobachtet, die bleiben 
alle stabil.

Ich habe mit den PICs noch keine Erfahrung, passt da irgendeine 
Initialisierung nicht? Ich habe auch schon mit dem Watchdog rumgespielt, 
ohne Erfolg. Die Resets passieren auch, wenn ich in der Hauptschleife 
gar nichts sende...

Hier der Code:
https://github.com/stancecoke/Open-BionX-Motor-Controller-Firmware

Und die empfangenen UART-Nachrichten. Die ersten 19 Zeilen sind so, wie 
sie sein sollen, danach wird's komisch...
1
BionX OSF v0.0<\r><\n>
2
892<\r><\n>
3
892<\r><\n>
4
892<\r><\n>
5
892<\r><\n>
6
892<\r><\n>
7
892<\r><\n>
8
892<\r><\n>
9
892<\r><\n>
10
892<\r><\n>
11
892<\r><\n>
12
892<\r><\n>
13
892<\r><\n>
14
892<\r><\n>
15
892<\r><\n>
16
892<\r><\n>
17
892<\r><\n>
18
892<\r><\n>
19
892<\r><\n>
20
89<\r><\r><\n>
21
<\n>8<\r><\r><\n>
22
<\n>8<\r><\r><\n>
23
<\n>8<\r><\r><\n>
24
<\n>8<\r><\r><\n>
25
<\n>8<\r><\r><\n>
26
<\n>8<\r><\r><\n>
27
<\n>8<\r><\r><\n>
28
<\n>8<\r><\r><\n>
29
<\n>8<\r><\r><\n>
30
<\n>8<\r><\r><\n>
31
<\n>8<\r><\r><\n>
32
<\n>8<\r><\r><\n>
33
<\n>8<\r><\r><\n>
34
<\n>8<\r><\r><\n>
35
<\n>8<\r><\r><\n>
36
<\n>8<\r><\r><\n>
37
<\n>8<\r><\r><\n>

Gruß
hochsitzcola

von Peter C. (peter_c49)


Lesenswert?

Hallole,

>passt da irgendeine Initialisierung nicht?

hab nur die ersten zeilen in dem main.c angesehen, also nicht wirklich 
nach deinem problem geschaut.

Falsch ist schon mal deine FCY, die 16bitter PICs brauchen 2 clocks für 
einen befehlszyklus, nicht 4.
4 ist richtig bei 8 bittigen, zB PIC16/PIC18/PIC12.

>#define SYS_FREQ        7370000L
>#define FCY             SYS_FREQ/4

so mache ich es:

#define FOSC 79227500UL  // clock anpassen, hier ca 80Mhz nach PLL für 
dsPIC33 !
#define FCY  FOSC/2UL

mfG
Peter ;-)

von hochsitzcola (Gast)


Lesenswert?

Vielen Dank für den Tipp.
Hat sich aber inzwischen auch erledigt, es war ein Überlauf des Rx 
Buffers...

Gruß
hochsitzcola

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.