Hi,
I'm come from PIC18Fxxxx and i am a rookie in dsPIC.
Please one question:
I read the manual for change for dsPIC33FJ128GP802 (DIP 28 Pin).
- I changed in the assembler file setting.inc, points for my dsPIC
- I deleted the old .gld linker file, and replace with correct dsPIC33FJ128GP802.gld
I build all, but this error appears: "error "PPS is not configured. More information in the firmware manual"
I (to try...) modified this line:
.ifdef HAS_PPS
.error "PPS is not configured. More information in the firmware manual."
with this one: .ifndef (if NOT def) and the compilation is ok, is done.
How can I do to solve correctly? Where I have to change the PPS??
Hi,
Sorry for the late reply. I've been on vacation.
PPS (peripheral pin select) is a feature on some PIC/dsPIC which allows peripherals to be mapped to different i/o pins. This must be configured properly for the boot loader to work. There is a template prepared for you in user_code.inc.
(2013-09-05, 19:34:33)Mikael Gustavsson Wrote: Hi,
Sorry for the late reply. I've been on vacation.
PPS (peripheral pin select) is a feature on some PIC/dsPIC which allows peripherals to be mapped to different i/o pins. This must be configured properly for the boot loader to work. There is a template prepared for you in user_code.inc.
Which pins do you use for rx and tx?
Ok, thanks for reply!
I have learn on Datasheet the PPS.
Some detail: i have this board, but the Seller does not provide the bootloader of the System:
I have 4 of these cards and I wanted to use them with a normal bootloader.
- The pin for UART are 21 and 22
- Not Crystal, but Internal FRC
My chip is dsPIC33FJ128 GP
I have modified:
Setting.inc with correct MCU line (dsPIC33FJ128GP)
Replaced .gld linker, with correct linker for my dsPIC.
Now I have to enter values for the pins of the UART, in the user_code.inc?
2013-09-09, 04:27:40 (This post was last modified: 2013-09-09, 04:31:08 by Ultron.)
First: Thanks for courtesy and help!
My "project" are a very little changes!
I simply modified, in the src folder, the setting.inc file with:
;------------------------------------------------------------------------------
; Device
;------------------------------------------------------------------------------
;.equ __24F16KA102, 1 ;xxx uncomment and change if using PIC24F device
;.equ __24FJ128GA010, 1 ;xxx uncomment and change if using PIC24FJ device
;.equ __24HJ128GP504, 1 ;xxx uncomment and change if using PIC24HJ device
;.equ __30F4013, 1 ;xxx uncomment and change if using dsPIC30F device
.equ __33FJ128GP802, 1 ;xxx uncomment and change if using dsPIC33FJ device
The last line is my change, with my device: dsPIC33FJ128GP802
All other lines in the file are unchanged
I opened ds30Loader.mcp with MPLAB IDE v8.92, i chose the chip in > Select Devices (my dsPIC33FJ128GP802).
I deleted the default gld linker and placed (Add files...) the gld linker for my dsPIC (p33FJ128GP802.gld)... and >Build all (Release)
In this way, the linker tell me this error: "error "PPS is not configured. More information in the firmware manual"
ok... then i go to user_code.inc at this macro:
;----------------------------------------------------------------------
; UART/CAN pps config
;----------------------------------------------------------------------
.ifdef HAS_PPS
.error "PPS is not configured. More information in the firmware manual." ;xxx remove this line when PPS is configured
and change the first .ifdef with .ifndef (ifNOTdef). In this way i re-compile >Build all, with success and program (with picKit3) correctly the MCU!
Obviously, not declaring the pins of the serial port nowhere, will not work. I think...
(2013-09-07, 22:44:30)Mikael Gustavsson Wrote: Ok. Please zip and post the boot loader project and I will help you.
Sorry!
I do not have a real project. I just changed the lines in the code, and compile the MCP Project in the \ds30 Loader\firmware_16-bit folder!
In attachment you can get the folder, with my changes.
1) add .equ __33FJ128GP802, 1 line in setting.inc, for my PIC
2) add p33FJ128GP802.gld in the mcp project (Linker Script > Add Files...)
3) Chose my dsPIC from Configure > Select Devices... (dsPIC33FJ128GP802)
4) replaced (for experiment) the .ifdef HAS_PPS in user_code.inc, with ifndef directive.
Stop, end of my changes.
4) Compile and program the chip with PicKit3.
I need help to configure correct serial pin (21-22) for the UART1 or UART2.
Good. Thanks!
1) Can you give me some explanation of the code?
2) Can I use the Configuration Bits of MPLAB IDE, and ignore the code in settings.inc? (uncheck "Configuration Bits set in code" radio button)
So it works now?
1) bset and bclr, sets and clears the bit(second argument) in the register(first argument). More info about PPS in the datasheet.
2) Yes you can.