|
|
View previous topic :: View next topic |
Author |
Message |
Cogitum
Joined: 22 Mar 2012 Posts: 70 Location: France (Paris)
|
About #Fuses Compiler 5.076 |
Posted: Fri Mar 16, 2018 3:03 am |
|
|
HI,
Please where can I find the detail (or explanation) of each FUSES ?
The 18F66K22.H provide this listing without any comment ...:
Code: | #device PIC18F66K22
#nolist
//////// Program memory: 32768x16 Data RAM: 4096 Stack: 31
//////// I/O: 53 Analog Pins: 20
//////// Data EEPROM: 1024
//////// C Scratch area: 00 ID Location: 200000
//////// Fuses: VREGSLEEP_SW,VREGSLEEP,INTRC_LP,INTRC_HP,SOSC_LOW,SOSC_DIG
//////// Fuses: SOSC_HIGH,NOXINST,XINST,LP,XT,HSH,HSM,ECH,ECH_IO,RC,RC_IO
//////// Fuses: INTRC_IO,INTRC,ECM,ECM_IO,ECL,ECL_IO,NOPLLEN,PLLEN,NOFCMEN
//////// Fuses: FCMEN,NOIESO,IESO,PUT,NOPUT,NOBROWNOUT,BROWNOUT_SW
//////// Fuses: BROWNOUT_NOSL,BROWNOUT,BORV30,BORV27,BORV20,BORV18,BORM_LOW
//////// Fuses: BORM_MED,BORM_HIGH,ZPBORM,NOWDT,WDT_NOSLEEP,WDT_SW,WDT,WDT1
//////// Fuses: WDT2,WDT4,WDT8,WDT16,WDT32,WDT64,WDT128,WDT256,WDT512
//////// Fuses: WDT1024,WDT2048,WDT4096,WDT8192,WDT16384,WDT32768,WDT65536
//////// Fuses: WDT131072,WDT262144,WDT524288,WDT1048576,RTCOSC_INT
//////// Fuses: RTCOSC_T1,CCP2E7,CCP2C1,MSSPMSK5,MSSPMSK7,NOMCLR,MCLR
//////// Fuses: NOSTVREN,STVREN,BBSIZ1K,BBSIZ2K,DEBUG,NODEBUG,PROTECT
//////// Fuses: NOPROTECT,CPB,NOCPB,CPD,NOCPD,WRT,NOWRT,WRTC,NOWRTC,WRTB
//////// Fuses: NOWRTB,WRTD,NOWRTD,EBTR,NOEBTR,EBTRB,NOEBTRB
//////// |
Thanks for your help.
Cogitum |
|
|
temtronic
Joined: 01 Jul 2010 Posts: 9221 Location: Greensville,Ontario
|
|
Posted: Fri Mar 16, 2018 5:24 am |
|
|
First place to look is the datasheet, Near the end is the 'Special Features of the PIC' chapter and it details the various bits of the registers also known as 'fuses'. CCS tends to use the same names as Microchip,though I've never compared each and every one for all the PICs.
Depending on the compiler you bought, you may have a 'fuses.txt' file. I don't know if CCS has it listed as a downloadable file.
The configuration bits are called 'fuses' as the original method of programming early devices (PLA, 8223 is an example) was to actually blow a small nichrome fuse link. This is a ONCE ONLY procedure ! Once blown there was NO second chance,so you had to be careful and confirm your code BEFORE committing to 'burning' the chip.
As you know, that PIC(well most today) have dozens of fuses. I have a device_name_project_name_fuses.fuz file with them all, one per line and '#include it'. First, I'm a lousy typist, so I only have to do it once, 2nd it makes the program 'cleaner', 3rd I know that ALL fuses are configured.
Jay |
|
|
Cogitum
Joined: 22 Mar 2012 Posts: 70 Location: France (Paris)
|
next |
Posted: Fri Mar 16, 2018 8:20 am |
|
|
Hi Jay,
Thanks a lot for your quick answer.
Could you or not email me the fuse file ?
Thank in advance
Best regard
Cogitum |
|
|
Ttelmah
Joined: 11 Mar 2010 Posts: 19499
|
|
Posted: Fri Mar 16, 2018 8:54 am |
|
|
fuses.txt comes with the compiler. It is in your compiler's install directory.
The explanations are the data sheet, combined with this file!....
So (for instance), the first fuse allowed 'VREGSLEEP_SW', in fuses.txt is given as:
VREGSLEEP_SW Ultra low-power regulator is enabled
and in the data sheet:
VREG Sleep Enable bit
1 = Regulator power while in Sleep mode is controlled by VREGSLP (WDTCON<7>)
0 = Regulator power while in Sleep mode is controlled by SRETEN (WDTCON<4>). Ultra low-power
regulator is enabled.
The 'SW' selection here is the software controllable form (the second line). |
|
|
Cogitum
Joined: 22 Mar 2012 Posts: 70 Location: France (Paris)
|
|
Posted: Fri Mar 16, 2018 12:26 pm |
|
|
Thank Ttelmah for you explanation. I got fuses.txt.
But that seem not easy.
Regards
Cogitum |
|
|
Cogitum
Joined: 22 Mar 2012 Posts: 70 Location: France (Paris)
|
Mysterious problem with Oscillator 18F66K22 Compiler 5.076 |
Posted: Fri Mar 16, 2018 12:46 pm |
|
|
Hi,
Target is to use 20MHZ (Crystal) I can easily check the sinus on the scope!
Using the lab power supply. I make ON/OFF the voltage to my board.
One LED is blinking and from time to time the blink change (reduce).
When's the case i can't read the sinus on the Crystal but the blink is there!
Code: |
#include <18F66K22.h>
#device adc=12
#include <stdlib.h>
#include <string.h>
#FUSES NOWDT // No Watch Dog Timer NOWDT
#FUSES NOXINST // Extended set extension and Indexed Addressing mode disabled (Legacy mode)
#FUSES HSH // High speed Osc
#FUSES NOBROWNOUT // No brownout reset
#FUSES NOPLLEN // 4X HW PLL disabled, 4X PLL enabled in software
//#FUSES WDT_NOSLEEP // Watch Dog Timer, disabled during SLEEP
#FUSES VREGSLEEP_SW // Ultra low-power regulator is enabled
//#FUSES NOLVP // No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES SOSC_HIGH
//#use delay(clock=20000000)
#use delay(crystal=20MHZ)
#use rs232(UART1,stream=gps,baud=9600, xmit=PIN_C6,rcv=PIN_C7)
void main()
{
printf("START TEST\r\n");
while(TRUE)
{
led_blinking();
output_toggle(PIN_G0);
delay_ms(500);
printf("*******START TEST2********\r\n");
}
}
|
Note: When the time of the blink reduce I can't read correctly the message.
Maybe internal osc is running ?
Welcome to any help.
|
|
|
Ttelmah
Joined: 11 Mar 2010 Posts: 19499
|
|
Posted: Fri Mar 16, 2018 2:11 pm |
|
|
First thing. Standard is that the layout should always be:
Processor include
Fuses
Timing settings
pin definitions (pin select if applicable)
I/O definitions (#use rs232, I2c etc.)
Then include library files
Then the code.
Otherwise there is a risk of loading things that _must_ have other stuff setup, before the settings are made.
However, what you have is working.
Problem is that serial is slow, and humans are slower.
You are sending about 35 characters. If you send too fast the PC display and your vision just won't be able to update fast enough. |
|
|
|
|
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
|