|
|
View previous topic :: View next topic |
Author |
Message |
mvanvliet
Joined: 02 Jun 2009 Posts: 123 Location: The Netherlands
|
12F1822 1KHz reset? |
Posted: Thu Apr 07, 2011 7:18 am |
|
|
I've some strange problems with this processor, maybe it can be solved with a compiler update, but I first want to be sure that it's not a programming fault.
CCS compiler version 4.106
Code: |
#FUSES INTRC_IO, NOMCLR, NOCPD, NOWDT, NOBROWNOUT, NOPUT, NOPROTECT, NOFCMEN, NOIESO
//////// Fuses: LP,XT,HS,EC_IO,NOWDT,WDT,CPD,NOCPD,PROTECT,NOPROTECT,NOMCLR
//////// Fuses: MCLR,PUT,NOPUT,INTRC_IO,INTRC,RC_IO,RC,BROWNOUT,NOBROWNOUT
//////// Fuses: BROWNOUT_NOSL,BROWNOUT_SW,IESO,NOIESO,FCMEN,NOFCMEN
#Device ADC=8 //8 bit
#use delay(clock=4000000) // Fuses and delay are set, so int osc is set at 4Mhz. MCLR,NOMCLR,PROTECT,NOPROTECT,WDT,NOWDT
#define REMOTE PIN_A0 //drukknop //24VOFF
#define PUSH_ON PIN_A5 //Melding geven dat drukknop is ingedrukt
void main()
{
setup_oscillator(OSC_4MHZ);
SETUP_ADC(ADC_OFF);
SETUP_DAC(DAC_OFF);
SETUP_TIMER_0(T0_internal);
SETUP_TIMER_1(T1_DISABLED);
SETUP_CCP1(CCP_OFF);
while(1)
{
output_high(PUSH_ON);
}
}
|
This is my code.
Stand alone strange things occur.
On pin2 I've got 5V but every ms it's dipping to about 2 volt and then it's back to 5V again.
On pin 3 I've a square waveform, not constantly, maybe a RS-232 or some other output.
On pin 4 I've a 5V output (which is maybe normal because of the MCLR??)
Please help! |
|
|
Ttelmah
Joined: 11 Mar 2010 Posts: 19561
|
|
Posted: Thu Apr 07, 2011 8:29 am |
|
|
Look back at your circuitry _carefully_. Something physical is wrong.
Key thing saying this, is your comment that you have a 5v output on pin4. Pin4, is an _input only_ pin on this PIC. Can't be an output, and can't generate 5v. So if you are seeing 5v on here, whatever may be wrong with the code, it says _something_ is wrong with the circuitry.....
Best Wishes |
|
|
mvanvliet
Joined: 02 Jun 2009 Posts: 123 Location: The Netherlands
|
|
Posted: Thu Apr 07, 2011 8:37 am |
|
|
Thanks for your answer, but there aren't any physical parts, the processor is running on a 5V power supply with nothing else.
Can't it be an internal pull-up for the MCLR of something? |
|
|
Ttelmah
Joined: 11 Mar 2010 Posts: 19561
|
|
Posted: Thu Apr 07, 2011 9:42 am |
|
|
No.
Are you sure you have the power connected to the right pins....
Look for solder blobs or whiskers round the PIC.
There is no pull up transistor on this pin.
The pin cannot pull up...
Best Wishes |
|
|
mvanvliet
Joined: 02 Jun 2009 Posts: 123 Location: The Netherlands
|
|
Posted: Fri Apr 08, 2011 1:26 am |
|
|
If you look at the datasheet on page 13 it says that there is an internal pull-up on the MCLR pin.
I've tried some things and I know that the problems come from the fuse settings.
These are my fuses:
Code: | #FUSES INTRC_IO, NOMCLR, NOCPD, NOWDT, NOBROWNOUT, NOPUT, NOPROTECT, NOFCMEN, NOIESO |
but my listing file shows: 30D4 (0011.0000.1101.0100)
That's very different from what it must be. For example the MCLR, FCMEN, PROTECT and BROWNOUT fuses are wrong set in the listing file. I also miss the fuses of configuration word 2 in my 12F1822.h file.
I think that in the 4.119 version of the compiler these problems are solved.
Is there a possibility to put the right hex value of the fuses in the program instead of:
Code: | #FUSES INTRC_IO, NOMCLR, NOCPD, NOWDT, NOBROWNOUT, NOPUT, NOPROTECT, NOFCMEN, NOIESO |
|
|
|
temtronic
Joined: 01 Jul 2010 Posts: 9253 Location: Greensville,Ontario
|
|
Posted: Fri Apr 08, 2011 5:37 am |
|
|
If you're using MPLAB ,you can easily do it from there. |
|
|
mvanvliet
Joined: 02 Jun 2009 Posts: 123 Location: The Netherlands
|
|
Posted: Fri Apr 08, 2011 6:14 am |
|
|
I'm not using MPLAB, but every time I change my program and reload it also the fuses are set back to the fault values. I'm looking for a #define of #byte where I can put in the hexvalue of my fuses. |
|
|
temtronic
Joined: 01 Jul 2010 Posts: 9253 Location: Greensville,Ontario
|
|
Posted: Fri Apr 08, 2011 7:15 am |
|
|
Well, sure sounds like whatever programming software you're using to burn the PIC is the problem.
I only use MPLAB but 'assume' others are similar in allowing either the PIC source code or the programming program itself to set the fuses.
Best to consult the manual for your programmer. |
|
|
mvanvliet
Joined: 02 Jun 2009 Posts: 123 Location: The Netherlands
|
|
Posted: Tue Apr 12, 2011 6:32 am |
|
|
The problem is not the programmer, but the CCS software, the compiler doesn't make the right fuse word.
Does anyone know at which adress the EEPROM starts at this processor? I can't find it. |
|
|
temtronic
Joined: 01 Jul 2010 Posts: 9253 Location: Greensville,Ontario
|
|
Posted: Tue Apr 12, 2011 7:27 am |
|
|
It's in the datasheet....
Quikscan....
From Chapter 11 of the datasheet...
When interfacing the data memory block, EEDATL
holds the 8-bit data for read/write, and EEADRL holds
the address of the EEDATL location being accessed.
These devices have 256 bytes of data EEPROM with
an address range from 0h to 0FFh.
When accessing the program memory block, the EEDATH:
EEDATL register pair forms a 2-byte word that
holds the 14-bit data for read/write, and the EEADRL
and EEADRH registers form a 2-byte word that holds
the 15-bit address of the program memory location
being read.
The EEPROM data memory allows byte read and write.
An EEPROM byte write automatically erases the location
and writes the new data (erase before write).
Consult Chapter 3 for the addresses.. |
|
|
mvanvliet
Joined: 02 Jun 2009 Posts: 123 Location: The Netherlands
|
|
Posted: Tue Apr 12, 2011 8:16 am |
|
|
Hmmm looks difficult. In the 12F675 I can use #rom 0x2100 = {AAAA} or write_eeprom(0,AAAA) for example, but it seems that that's too simple for this processor. |
|
|
ckielstra
Joined: 18 Mar 2004 Posts: 3680 Location: The Netherlands
|
|
Posted: Tue Apr 12, 2011 9:53 am |
|
|
mvanvliet wrote: | I think that in the 4.119 version of the compiler these problems are solved. | Well, then why not do the upgrade?
You might also check if the program chipedit.exe is present in the programs folder of your CCS compiler. This program allows you to modify the compiler's database where all the chip specific details are stored. Chipedit is not supplied with all compiler versions, I believe only with PCWH. |
|
|
dbotkin
Joined: 08 Sep 2003 Posts: 197 Location: Omaha NE USA
|
|
Posted: Tue Apr 12, 2011 10:49 am |
|
|
I would not encourage anyone to use chipedit. I have tried it a couple of times to make VERY minor changes when chips were not correctly defined on CCS, and each time ended up with a completely non-functional compiler and an email to CCS support. Maybe it's just me.
Your best bet would be to upgrade to the newest compiler version. The device definitions and header files for new chips are quite often what I would consider to be "educated guesses" when they first appear, and the 12F1822 is quite new. I'm waiting for the 12F1840, but I know once it's finally out it will be a while before PICC supports it completely.
If upgrading is not an option for you (expired support, etc) you can at least try emailing CCS support to see if they can get you an updated device file. |
|
|
mvanvliet
Joined: 02 Jun 2009 Posts: 123 Location: The Netherlands
|
|
Posted: Wed Apr 13, 2011 12:49 am |
|
|
ckielstra wrote: | Well, then why not do the upgrade?
|
Because it cost me $200, my maintainance has expired. (And I find it a bit disappointing that CCS adds the 12F1822 to their library, but it's functioning half) |
|
|
mvanvliet
Joined: 02 Jun 2009 Posts: 123 Location: The Netherlands
|
|
Posted: Wed Apr 13, 2011 12:52 am |
|
|
dbotkin wrote: |
If upgrading is not an option for you (expired support, etc) you can at least try emailing CCS support to see if they can get you an updated device file. |
I mailed them last friday, but I still haven't got an response. When I mail the * in the subject I get: "status: reviewed" "priority: none". |
|
|
|
|
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
|