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

16F690 and MCLR_FROM_RUN

 
Post new topic   Reply to topic    CCS Forum Index -> General CCS C Discussion
View previous topic :: View next topic  
Author Message
spilz



Joined: 30 Jan 2012
Posts: 219

View user's profile Send private message

16F690 and MCLR_FROM_RUN
PostPosted: Wed Apr 05, 2017 1:25 am     Reply with quote

Hello,

I'm working on a project to control spots light.
My board and my software works well when the spot is not connected, but when it's connected and change the state of the relay, sometimes the PIC16F690 reset, and the reset cause is 27, so MCLR_FROM_RUN.

What means MCLR_FROM_RUN ?
What can cause this reset ?

I try to add capacitors on the power line but it does not solve the issue ...

Thanks for your help.

regards

my code :
Code:
#include <16F690.h>

#device ADC=10
#FUSES NOMCLR,NOWDT                    //No Watch Dog Timer
#FUSES BROWNOUT               // brownout reset
#use delay(crystal = 20 MHz)

#use rs232(baud=9600,parity=N,xmit=PIN_A0,rcv=PIN_A0,bits=8,restart_wdt,errors,TIMEOUT = 100,stream = RS232_PICKIT2)

// carte Spot RFM69
#define LED_PIN         pin_c0
#define RELAY_PIN       pin_b7

#define LED(x)       output_bit(LED_PIN,x)
#define LED_on       output_high(LED_PIN)
#define LED_off      output_low(LED_PIN)
#define RELAY(x)     output_bit(RELAY_PIN,!x)
#define RELAY_ON     output_low(RELAY_PIN)
#define RELAY_OFF    output_high(RELAY_PIN)

#define ON           1
#define OFF          0


void main()
{
   setup_adc_ports(NO_ANALOGS);
   setup_timer_1(T1_INTERNAL|T1_DIV_BY_8);         // 4MHz : 524 ms overflow 
   setup_wdt(WDT_OFF);
   
   LED_on;
   //TODO: User Code
   fprintf(RS232_PICKIT2,"Spot RFM69 %u\r\n",RESTART_CAUSE());
   fprintf(RS232_PICKIT2,__DATE__);
   fputc(' ',RS232_PICKIT2);
   fprintf(RS232_PICKIT2,__TIME__);
   fprintf(RS232_PICKIT2,"\r\n");
   LED_off;
   
   
   
   
   
   while(true){
      fprintf(RS232_PICKIT2,"ON\r\n");
      relay(ON);
      delay_ms(2000);
      fprintf(RS232_PICKIT2,"OFF\r\n");
      relay(OFF);
      delay_ms(2000);
   }
   reset_cpu();
}
gjs_rsdi



Joined: 06 Feb 2006
Posts: 468
Location: Bali

View user's profile Send private message Send e-mail

PostPosted: Wed Apr 05, 2017 3:02 am     Reply with quote

Hi spilz

I don't know what is MCLR_FROM_RUN, but I have a few questions:
* You have a diode across the relay (or maybe the relay have an internal one?)
* How you drive the relay?
* Is the relay power supply same as the PIC?

Best wishes
Joe
spilz



Joined: 30 Jan 2012
Posts: 219

View user's profile Send private message

PostPosted: Wed Apr 05, 2017 3:26 am     Reply with quote

hi,

There is a diode across the relay.
I drive the relay through a transistor 2N2222.
Yes the relay has the same power supply as the PIC.

The relay works well, the issue comes from the reset of the PIC.

I tried to power the board from another power supply, I still have the issue...
Ttelmah



Joined: 11 Mar 2010
Posts: 19529

View user's profile Send private message

PostPosted: Wed Apr 05, 2017 7:34 am     Reply with quote

MCLR from run, does mean the processor is being spiked by something.

What smoothing do you have immediately adjacent to the PIC?.

What connection do you have to the MCLR pin?.
(I know you have 'NOMCLR', but the pin is still able to reset the PIC if it is taken to the wrong voltage)....
newguy



Joined: 24 Jun 2004
Posts: 1908

View user's profile Send private message

PostPosted: Wed Apr 05, 2017 7:42 am     Reply with quote

I'm not sure about the Microchip programmers (don't own any), but the CCS programmers can function with a 4.7k pullup on /MCLR to Vcc. If your pullup on the /MCLR line is rather high, you can quite safely lower it to 4.7k, which will help your reset issue. As someone else has already mentioned, your relay needs a flyback diode, and the PIC line driving the transistor which in turn drives the relay could use some protection as well, such as a 0.1uF ceramic cap, and a TVS wouldn't hurt. A TVS on your Vcc rail, close to the relay drive, would also help.
alan



Joined: 12 Nov 2012
Posts: 357
Location: South Africa

View user's profile Send private message

PostPosted: Wed Apr 05, 2017 7:53 am     Reply with quote

Also if the spot light are an AC device and high power the relay contacts will need to have arc suppression. Been bitten by that one before so switch to zero crossing triacs.

Regards
spilz



Joined: 30 Jan 2012
Posts: 219

View user's profile Send private message

PostPosted: Wed Apr 05, 2017 7:58 am     Reply with quote

Ttelmah :

Close to the pic, there is the light spot, (which is a cheap one, with a poor 220v AC to 6V AC transformer and halogen lamp).

I tried to connect the MCLR pin to VCC with a jumper, but it does not solve the problem :(

What can cause a MCLR_FROM_RUN ?
Set MCLR pin to ground ?
A wrong address ?

newguy:

My relay has already a flyback diode.
what is a TVS ?
I tried to use a relay board with optocoupler isolation, I still have the issue.

For information:
Sometimes, when the relay turn On or Off the spot, the screen of my computer (2 feet near the spot) freezes or reset.
I tried to use an external power, the problem was not solved.
newguy



Joined: 24 Jun 2004
Posts: 1908

View user's profile Send private message

PostPosted: Wed Apr 05, 2017 8:08 am     Reply with quote

TVS: transient voltage suppressor.

If cycling the spotlight is also glitching a computer monitor, you have pretty serious noise/EMI issues. As someone else mentioned, you need to use a TRIAC or a solid state relay (SSR - which usually has some form of TRIAC or similar in it). The spotlight is drawing such high current that if you attempt to turn it off while the AC waveform isn't zero, you're going to get a very significant inductive "kick" back onto the mains from the spotlight/cord. You need to switch off your AC load (the spotlight) at the zero crossing of the mains voltage, which will minimize your inductive "kick" and any EMI associated with cutting off an AC load at something other than the zero crossing.
Ttelmah



Joined: 11 Mar 2010
Posts: 19529

View user's profile Send private message

PostPosted: Wed Apr 05, 2017 11:11 am     Reply with quote

Quote:

Close to the pic, there is the light spot, (which is a cheap one, with a poor 220v AC to 6V AC transformer and halogen lamp).


I'm asking what smoothing components you have actually attached by the PIC.

The PIC _at absolute minimum_ requires a 0.1uF HF rated capacitor as close as possible to each of it's supply pins, and some larger reservoir capacitor nearby.

You have major problems with whatever you are using to supply the PIC. It _needs_ significant smoothing to maintain it's supply....
spilz



Joined: 30 Jan 2012
Posts: 219

View user's profile Send private message

PostPosted: Wed Apr 05, 2017 2:04 pm     Reply with quote

^^ sorry for my misunderstanding (bad English)

Actually using a solid state relay seems to solve the problem...
I will draw a new pcb and test it.
I will add a 0.1uF as close as possible.

I'm using G3MB-202P 5v but my board only have 3.3V.
On my prototype board it works, someone has experimented with this component ?
Is it just luck that it works ?

Thanks for your help.

Spilz
temtronic



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

View user's profile Send private message

PostPosted: Wed Apr 05, 2017 6:09 pm     Reply with quote

Just a general comment

that SSR is only rated for 2 amps so be sure your halogen lamp doesn't draw more than that.

In stage lighting, you normally 'preheat' the lamps by injecting a small current, not enough to see but to warm the filament, this reduces the thermal shock and destroying expensive lamps.

Be very careful !! 220 volts at 2 amps can kill you....


Jay
Ttelmah



Joined: 11 Mar 2010
Posts: 19529

View user's profile Send private message

PostPosted: Thu Apr 06, 2017 12:07 am     Reply with quote

The G3MB-202P, was listed as 'not for use in new designs', over five years ago.... "Discontinuation planned for April, 2010". They are still being sold, but are intended as replacements for old equipment.

Also at the very least you should be using the version with an internal snubber.

That it is operating, is 'luck'. The minimum 'guaranteed' operating voltage, is 4v. Like most things though there is a margin, and the version you have is 'just' working. What series resistor are you using?. I'd suspect you are using a smaller one than specified?.

Get something like a Panasonic AQG22124. Same current rating, same package. Has the built in snubber, and operates down to 1.5v. However if you are actually intending to operate even close to it's rating, then look at getting a version with a higher current rating.
spilz



Joined: 30 Jan 2012
Posts: 219

View user's profile Send private message

PostPosted: Thu Apr 06, 2017 1:42 am     Reply with quote

i'm using this scheme (with 16F690 instead of ESP8266)
http://iot-playground.com/blog/2-uncategorised/77-esp8266-internet-controlled-switch-easyiot-cloud-mqtt-api
spilz



Joined: 30 Jan 2012
Posts: 219

View user's profile Send private message

PostPosted: Thu Apr 06, 2017 3:41 am     Reply with quote

It's for a personal project, and I already have 30 x G3MB-202P 5v.
to solve the possibility of issue with 3.3v, I think using a step up 5v regulator just for pin + of the G3MB-202P
temtronic



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

View user's profile Send private message

PostPosted: Thu Apr 06, 2017 4:58 am     Reply with quote

Another alternative is to make your own SSR. Using a zerocross optocoupler, a triac, an LED and 2 resistors you get a self indicating SSR. I refer you to an article ...http://electronicdesign.com/analog/solid-state-relay-features-load-indicator... published back in 2004. Just be sure to choose a TRIAC that is rated for your 220V and load current. I was driving 6 of them from a single VF opamp back then, and it still works today.
Display posts from previous:   
Post new topic   Reply to topic    CCS Forum Index -> General CCS C Discussion All times are GMT - 6 Hours
Page 1 of 1

 
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