|
|
View previous topic :: View next topic |
Author |
Message |
wavelength
Joined: 21 Mar 2014 Posts: 12
|
PIC16F1703 no system clock??? data sheet & compiler wron |
Posted: Thu Sep 18, 2014 2:53 pm |
|
|
Gang,
So I have a new project and it's a basic IO stuff for an audio project. I am a little confused about the fuses and the data sheet on the PIC16F1703.
First there are no fuses for INTOSC in the code or the list of available options or even any of the FOSC options for that matter.
I build basically the following here:
Code: | #include <16F1703.h>
#device ADC=16
#device ICD=TRUE
#FUSES NOWDT //No Watch Dog Timer
#FUSES MCLR // MCLR used for reset
#FUSES NOCLKOUT // no clock output
#FUSES NOPLLEN // enable PLL in software
#FUSES NOPUT // no power up timer
#FUSES WDT_SW //No Watch Dog Timer, enabled in Software
#FUSES BROWNOUT // enable brown out
#FUSES BORV25 //Brownout reset at 2.5V
#FUSES DEBUG //Debug mode for use with ICD
#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#device ICD=TRUE
#use delay(clock=1000000)
#use FIXED_IO( C_outputs=PIN_C3,PIN_C2,PIN_C1,PIN_C0 )
void main()
{
setup_oscillator(OSC_1MHZ|OSC_INTRC|OSC_PLL_OFF,0);
set_tris_a(TRIS_PORTA);
set_tris_c(TRIS_PORTC);
~~~ |
I use the ICD-64 it programs the device in the debugger, but halts immediately saying it's not getting a system clock.
Ok look at the data sheet which is wrong as well. It states in the Config bits section that there is bits 0:1 to select the oscillator of choice which only accounts for the external oscillators.
In the Oscillator section under Internal that sections states that FOSC is 0:1:2 and to set the INTOSC option for using the internal oscillator.
Ok, anyone have the answer? I have a feeling that the config section is wrong as it has bit 2 of Config 1 as unimplemented. YEP there's the problem... If I look at the PIC16F1825 bits 0-2 are FOSC and I need those set to 100 binary for INTOSC.
Guys can someone tell me how to fix this?
Thanks,
Gordon _________________ J. Gordon Rankin
Wavelength Audio, ltd. |
|
|
dyeatman
Joined: 06 Sep 2003 Posts: 1933 Location: Norman, OK
|
|
Posted: Thu Sep 18, 2014 6:30 pm |
|
|
Are you on the latest version of the compiler?
On 5.028 the setup looks OK to me. _________________ Google and Forum Search are some of your best tools!!!! |
|
|
PCM programmer
Joined: 06 Sep 2003 Posts: 21708
|
|
Posted: Thu Sep 18, 2014 7:46 pm |
|
|
Try forcing the fuses to use the internal oscillator. Comment out your
fuses and substitute these two lines:
Code: | #fuses 1=0x39e0
#fuses 2=0x0AFF
|
These two lines are the Config words produced by your existing program
when compiled with vs. 5.028, except that I zeroed out the lowest 3 bits
of Config Word 1. If the internal oscillator exists and if it can be enabled,
zeroing those 3 bits should turn it on.
I agree the 16F1703 data sheet shows no internal oscillator in the Config
bits settings. But maybe it's a typo by Microchip. |
|
|
Ttelmah
Joined: 11 Mar 2010 Posts: 19496
|
|
Posted: Fri Sep 19, 2014 1:35 am |
|
|
I think the first thing to do, is to point it out to Microchip.
There is a severe problem in the data sheet, and CCS have based their code, on what this shows....
On trying the fuses, you may need a slightly different pattern from what PCM_programmer has given.
Unlike most chips, the pattern required to run from the internal oscillator, seems to require Fosc<2,0> = 100, to enable the PRIMUX bit. So 0x39E4, not E0. Tried compiling this, and importing into MPLAB, and it appears to be right. However I'd then suggest setting the SCS bits with setup_oscillator as soon as the chip has booted:
setup_oscillator(OSC_1MHZ|OSC_NORMAL);
The only pattern that enables PRIMUX, is Fosc<2,0>=100, and SCS=00. SCS, wakes as 00, so this should be right already.
Cross anatomical components..... |
|
|
ufarooq
Joined: 24 Jul 2014 Posts: 7
|
|
Posted: Fri Sep 19, 2014 3:52 am |
|
|
Yes, it is typo in datasheet in this regard. But, also beware that the header file provided by CCS for this family doesn't have allowance for peripheral select option. I haven't heard back from either Microchip or CCS regarding my complaints thus far.
A way around can be to download embedded code configurator plugin for MPLAB X and extract the relevant code from there. _________________ Umer |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|