CCS C Software and Maintenance Offers
FAQFAQ   FAQForum Help   FAQOfficial CCS Support   SearchSearch  RegisterRegister 

ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

CCS does not monitor this forum on a regular basis.

Please do not post bug reports on this forum. Send them to CCS Technical Support

Problem with MCLR pin on PIC16F690
Goto page 1, 2  Next
 
Post new topic   Reply to topic    CCS Forum Index -> General CCS C Discussion
View previous topic :: View next topic  
Author Message
RamShop55



Joined: 04 Feb 2020
Posts: 18

View user's profile Send private message

Problem with MCLR pin on PIC16F690
PostPosted: Wed Feb 12, 2020 7:15 pm     Reply with quote

Hi,

To everyone who helped me so far, thank you very much!

I created a prototype, it includes an LCD, PIC16F690 and a keypad. I am unable to disable the MCLR pin through software, but when I turn it on through the PicKit programmer, the prototype works, when I use a pullup resistor, the prototype does not work and the MCU is in permanent reset. Has anyone encountered this problem?
temtronic



Joined: 01 Jul 2010
Posts: 9225
Location: Greensville,Ontario

View user's profile Send private message

PostPosted: Wed Feb 12, 2020 7:26 pm     Reply with quote

Yes....some PICs are like that. You get an error message from the PICkit3 programming software. I think it has to do with using the internal clock and mclr pin. Have to admit it's been years but scratched my head over it for a week or two. Since them I use 'big' PICs. 18F46K22s (40 pins), 26K22 (28 pins), way overkill for all projects but no more weird messages !I know someone will know the details about the issue, it has to do with how the PIC was designed.
Ttelmah



Joined: 11 Mar 2010
Posts: 19506

View user's profile Send private message

PostPosted: Thu Feb 13, 2020 12:23 am     Reply with quote

You say 'Pickit'. Is this a Pickit 2 or a Pickit 3. The '2' has issues with this
chip. What software are you using to drive the 'Pickit'?. What value
was the pullup resistor?. What is your development environment?.
(Wondering if you may be using MPLAB, and ending up with the PIC
built in DEBUG rather than RELEASE mode...).
RamShop55



Joined: 04 Feb 2020
Posts: 18

View user's profile Send private message

PostPosted: Thu Feb 13, 2020 5:18 am     Reply with quote

I will describe the steps below:

1. Create and compile the code with the CCS PIC C compiler.
2. Use PicKit2 or PicKit3 programmer to upload the hex file to the chip.
3. The pull-up resistor is 2k.

I do not use MPLAB, its very heavy for my PC. I have XC8 installed, but I use it with the command prompt.
temtronic



Joined: 01 Jul 2010
Posts: 9225
Location: Greensville,Ontario

View user's profile Send private message

PostPosted: Thu Feb 13, 2020 5:47 am     Reply with quote

PICKit3 has issues with it as well. I only have PK3 here and remember having problems programming them, or a family member. 'Something' about the internals of that PIC is different than the rest of the PICs so you program it to use the internal oscillator AND use the _MCLR pin for I/O.
It's not really the programmer. It's the PIC.
RamShop55



Joined: 04 Feb 2020
Posts: 18

View user's profile Send private message

PostPosted: Thu Feb 13, 2020 6:05 am     Reply with quote

It works when I use the programmer PicKit. How does the programmer pull the MCLR pin high? What is the difference between the programmer and a pull-up resistor?
temtronic



Joined: 01 Jul 2010
Posts: 9225
Location: Greensville,Ontario

View user's profile Send private message

PostPosted: Thu Feb 13, 2020 6:57 am     Reply with quote

hmm.. this,
Quote:
I am unable to disable the MCLR pin through software,


Please show us the code you're using, as MCLR is normally controlled by 'fuse' statements.
Ttelmah



Joined: 11 Mar 2010
Posts: 19506

View user's profile Send private message

PostPosted: Thu Feb 13, 2020 7:26 am     Reply with quote

What program are you actually using to do the programming?.

You refer to XC8, but this is the compiler, not programmer software.
The CCS code can't drive the PicKit without the Microchip drivers from
MPLAB. So do you have this (MPLAB 8.92, much smaller and better than
MPLAB-X for this)?.

It's almost certainly _not_ how the programmer pulls the signal high, but that
it is for some reason in debug mode.
Are you specifying MCLR or NOMCLR?.
What version of the programming code?.
What compiler version?.

Post the bottom couple of lines of your .LST file.
RamShop55



Joined: 04 Feb 2020
Posts: 18

View user's profile Send private message

PostPosted: Thu Feb 13, 2020 2:17 pm     Reply with quote

I use PicKit2 v2.61 to upload the hex file. It has an option to start the MCLR and VDD pins.

Compiler CCS PIC C v5.82.

#fuses NOMCLR, NOWDT, NOPROTECT, INTRC_IO

EDIT:
here
is an image of the PicKit.2 software with which I upload the hex code and turn on MCLR and VDD.
Ttelmah



Joined: 11 Mar 2010
Posts: 19506

View user's profile Send private message

PostPosted: Fri Feb 14, 2020 12:17 am     Reply with quote

OK. Pickit2 software.
This is a known issue with this and these chips.
You need pulldown resistors (about 10K), on the ICSPDAT and ICSPCLK
pins.
The PICKIT2, seems to not correctly turn off the DEBUG fuse. With
these resistors the chip will run, but without them it'll not start.
The Pickit programmers have these, which is why it works with these
connected.
RamShop55



Joined: 04 Feb 2020
Posts: 18

View user's profile Send private message

PostPosted: Fri Feb 14, 2020 2:47 am     Reply with quote

Currently I have pullup resistors on ICSPCLK and ICSPDAT which I need for the keypad to work. I will try adding a pulldown resistor and see what will happen. The whole prototype will have to be reworked if I can not use pull-up resistors for the keypad.
RamShop55



Joined: 04 Feb 2020
Posts: 18

View user's profile Send private message

PostPosted: Sun Feb 16, 2020 10:46 am     Reply with quote

Sorry for the double post. I tried, but it did not work for me. Its strange, because on a hand soldered universal PCB the MCU works correctly, and the ICSPDAT and ICSPCLK pins are not connected to anything. This PCB is simple its only designed to use the internal comparator 1 with the absolute voltage reference of 0.6V where the MCU seems to be working but I have other problems. What is the recommended approach towards the MCLR(pin 4), ICSPDAT(pin 19) and ICSPCLK(pin 18)?
Ttelmah



Joined: 11 Mar 2010
Posts: 19506

View user's profile Send private message

PostPosted: Sun Feb 16, 2020 11:48 am     Reply with quote

Normally there is no problem.
However this particular chip is a 'pig'.
For some reason, it behaves as if it is always in ICSP mode, even when
MCLR is sitting at normal voltages.
Because of this ICSPCLK has to be low when the chip starts or it won't
work.
The unconnected board is OK, since nothing takes this pin high. Your
other board fails because of the pullup resistors.
Honestly switch to one of the newer equivalent chips that don't have
this problem. The PIC16F18344 doesn't give this problem.
PCM programmer



Joined: 06 Sep 2003
Posts: 21708

View user's profile Send private message

PostPosted: Sun Feb 16, 2020 12:04 pm     Reply with quote

His Pickit2 won't work with that chip.
Ttelmah



Joined: 11 Mar 2010
Posts: 19506

View user's profile Send private message

PostPosted: Sun Feb 16, 2020 12:21 pm     Reply with quote

He talks about having a PicKit3 as well.
I think this does support the later chip.
Display posts from previous:   
Post new topic   Reply to topic    CCS Forum Index -> General CCS C Discussion All times are GMT - 6 Hours
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
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