Forum: Mikrocontroller und Digitale Elektronik dsPIC30 läuft nur nach Flashen an :-(


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von hochsitzcola (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Ich bin neu in den PICs und stolpere grad über die Configuration Bits. 
Ich habe wohl irgendwas verstellt, auf jeden Fall läuft der Prozessor 
nur noch direkt nach dem Flashen weiter, wenn ich den Programmer trenne 
und den Prozessor neu mit Spannung versorge, läuft er nicht an :-(

Code: https://github.com/stancecoke/Open-BionX-Motor-Controller-Firmware
Ich habe noch ein weiteres Verständnisproblem, das Board hat einen Quarz 
auf dem 13.000 steht. Mit der Einstellung HS2 w/PLL 16x hätte ich 
gedacht, der Prozessortakt ist damit 13Mhz/2*16 = 104MHz. Das ist aber 
anscheinend falsch, da die BAUD-Rate vom UAER mit dieser Rechnung nicht 
passt :-(
Kann mir jemand auf die Sprünge helfen?

Hier die Konfiguration:
1
#pragma config FOSFPR = HS2_PLL16       // Oscillator (HS2 w/PLL 16x)
2
#pragma config FCKSMEN = CSW_FSCM_ON    // Clock Switching and Monitor (Sw Enabled, Mon Enabled)
3
4
// FWDT
5
#pragma config FWPSB = WDTPSB_16        // WDT Prescaler B (1:16)
6
#pragma config FWPSA = WDTPSA_512       // WDT Prescaler A (1:512)
7
#pragma config WDT = WDT_OFF            // Watchdog Timer (Disabled)
8
9
// FBORPOR
10
#pragma config FPWRT = PWRT_64          // POR Timer Value (64ms)
11
#pragma config BODENV = BORV27          // Brown Out Voltage (2.7V)
12
#pragma config BOREN = PBOR_ON          // PBOR Enable (Enabled)
13
#pragma config LPOL = PWMxL_ACT_LO      // Low-side PWM Output Polarity (Active Low)
14
#pragma config HPOL = PWMxH_ACT_HI      // High-side PWM Output Polarity (Active High)
15
#pragma config PWMPIN = RST_IOPIN       // PWM Output Pin Reset (Control with PORT/TRIS regs)
16
#pragma config MCLRE = MCLR_EN          // Master Clear Enable (Enabled)
17
18
// FBS
19
#pragma config BWRP = WR_PROTECT_BOOT_OFF// Boot Segment Program Memory Write Protect (Boot Segment Program Memory may be written)
20
#pragma config BSS = NO_BOOT_CODE       // Boot Segment Program Flash Memory Code Protection (No Boot Segment)
21
#pragma config EBS = NO_BOOT_EEPROM     // Boot Segment Data EEPROM Protection (No Boot EEPROM)
22
#pragma config RBS = NO_BOOT_RAM        // Boot Segment Data RAM Protection (No Boot RAM)
23
24
// FSS
25
#pragma config SWRP = WR_PROT_SEC_OFF   // Secure Segment Program Write Protect (Disabled)
26
#pragma config SSS = NO_SEC_CODE        // Secure Segment Program Flash Memory Code Protection (No Secure Segment)
27
#pragma config ESS = NO_SEC_EEPROM      // Secure Segment Data EEPROM Protection (No Segment Data EEPROM)
28
#pragma config RSS = NO_SEC_RAM         // Secure Segment Data RAM Protection (No Secure RAM)
29
30
// FGS
31
#pragma config GWRP = GWRP_OFF          // General Code Segment Write Protect (Disabled)
32
#pragma config GCP = GSS_OFF            // General Segment Code Protection (Disabled)
33
34
// FICD
35
#pragma config ICS = ICS_PGD            // Comm Channel Select (Use PGC/EMUC and PGD/EMUD)

Gruß
hochsitzcola

von hochsitzcola (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hm, ich scheine mit dem Problem ja nicht alleine zu sein, aber alle 
vorgeschlagenen Lösungen, (Reset-Pin, Debugmode beim Flashen etc...) 
habe ich
ausprobiert, ohne Erfolg. Interessanterweise läuft der Prozessor schon 
an, wenn ich im PICKit2 programmer tool nur ein hexfile von der 
Festplatte einlese?! Ich werde wohl mal mit dem Oszi schauen, was der 
Programmer dabei an den Pins MCLR, PGD und PGC macht.
Einfach ein Reset mit MCLR kurz auf Gnd hilft auf jeden Fall nicht :-(

Gruß
hochsitzcola

von Volker S. (vloki)


Bewertung
-1 lesenswert
nicht lesenswert
Programmierst du den Controller evtl. im Debug-Mode? (Dann braucht der 
auch den abgesteckten Debugger um zu starten)

von Volker S. (vloki)


Bewertung
1 lesenswert
nicht lesenswert
hochsitzcola schrieb:
> aber alle
> vorgeschlagenen Lösungen, (Reset-Pin, Debugmode beim Flashen etc...)

Vielleicht etwas genauer ausführen?

von Teo D. (teoderix)


Bewertung
0 lesenswert
nicht lesenswert
Schon etwas merkwürdig.... HW Fehler, zB. Masse lauft nur über den 
PicKit etc.?!

von hochsitzcola (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Volker S. schrieb:
> Vielleicht etwas genauer ausführen?

Ich habe die oft genannten Tipps geprüft:
- ich flashe nicht im debug mode, sondern im production mode
- ich habe VCC, VSS und MCLR mit dem Oszi beobachtet, die sind stabil.

Ich denke, es dauert zu lange bis sich der Takt einschwingt, wenn ich 
FPWRT auf Off setze, läuft der Prozessor an, aber sendet aber nur Grütze 
über UART!?

Gruß
hochsitzcola

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.