| View previous topic :: View next topic | 
	
	
		| Author | Message | 
	
		| Gabriel 
 
 
 Joined: 03 Aug 2009
 Posts: 1074
 Location: Panama
 
 
			    
 
 | 
			
				| Pic not running - SOLVED |  
				|  Posted: Sat Oct 12, 2013 11:52 am |   |  
				| 
 |  
				| Hi All, 
 My PIC seems to be a nice little red Brick.
 
 It does not run code... or seems to not run the code...
 
 Ive tried to simulate/Debug with my Pickit 3 and seems to run fine... but even the led toggles ive included don't seem to have any effect...
 
 Printing to the LCD does nothing...
 
 so... What are the possible reasons for this behavior?
 
 it does not happen on any of my other projects...
 
 When simulating the #use delay(41666667) takes an awful long time... so much that if i don't click on run (instead of simulate) i start to grow a beard...
 
 MPLAB is set as RELEASE... the chip is NOT in reset... and ... it does not work with the programmer connected or not...
 
 ... any suggestions?
 
 Oscillator and fuses:
 
 
  	  | Code: |  	  | #elif STACK_USE_OLIMEX_PIC_MAXI_WEB #include <18F97J60.h>
 #device PASS_STRINGS=IN_RAM
 #reserve 0xE80:0xEFF   //SFR
 #reserve 0xF00:0xFFF   //SFR
 #use delay(clock=41666667)
 #fuses NOWDT, NODEBUG, H4_SW, NOIESO, NOFCMEN, PRIMARY, ETHLED
 #else
 | 
 
 
  	  | Code: |  	  | #if STACK_USE_CCS_PICEEC||STACK_USE_CCS_EWL3V||STACK_USE_OLIMEX_PIC_MAXI_WEB setup_oscillator(OSC_PLL_5_DIV_3 | OSC_NORMAL);
 restart_wdt();
 delay_ms(144);
 restart_wdt();
 #endif
 | 
 
 Thanks
 
 G.
 _________________
 CCS PCM 5.078 & CCS PCH 5.093
 
 Last edited by Gabriel on Tue Oct 15, 2013 2:20 pm; edited 1 time in total
 |  | 
	
		|  | 
	
		| Gabriel 
 
 
 Joined: 03 Aug 2009
 Posts: 1074
 Location: Panama
 
 
			    
 
 | 
			
				|  |  
				|  Posted: Sat Oct 12, 2013 2:02 pm |   |  
				| 
 |  
				| Additional Info... 
 the 25M onboard crystal is oscillating... i checked with my scope...
 
 no blinky leds yet...
 
 
 any other project i run on the board runs fine...
 _________________
 CCS PCM 5.078 & CCS PCH 5.093
 |  | 
	
		|  | 
	
		| Ttelmah 
 
 
 Joined: 11 Mar 2010
 Posts: 19964
 
 
 
			    
 
 | 
			
				|  |  
				|  Posted: Sat Oct 12, 2013 2:36 pm |   |  
				| 
 |  
				| Nobody can tell, without seeing the #if corresponding to the #elif, and without knowing what the #defines tested in the #if and #elif, are set for. 
 The first section will only get used, if whatever is in the first #if, is 'FALSE', and that STACK_USE_OLIMEX_PIC_MAXI_WEB is TRUE....
 |  | 
	
		|  | 
	
		| Gabriel 
 
 
 Joined: 03 Aug 2009
 Posts: 1074
 Location: Panama
 
 
			    
 
 | 
			
				|  |  
				|  Posted: Sat Oct 12, 2013 2:56 pm |   |  
				| 
 |  
				| Ive set the defines to make my hardware the only one set to TRUE. 
 
 
  	  | Code: |  	  | #define STACK_USE_CCS_PICENS            0 //18f4620 + enc28j60 #define STACK_USE_CCS_PICNET            0 //18f6722 + realtek
 #define STACK_USE_CCS_PICNET_OLD       0
 #define STACK_USE_CCS_PICEEC            0 //18f67j60
 #define STACK_USE_CCS_EWL3V             0 //ezWebLynx 3V
 #define STACK_USE_CCS_EWL5V             0 //ezWebLynx 5V
 #define STACK_USE_CCS_EWL5V_REV2       0 //ezWebLynx 5V (REV2)
 #define STACK_USE_OLIMEX_PIC_MAXI_WEB    1 //18f97j60
 | 
 
 
 Obviously.
 _________________
 CCS PCM 5.078 & CCS PCH 5.093
 |  | 
	
		|  | 
	
		| dyeatman 
 
 
 Joined: 06 Sep 2003
 Posts: 1968
 Location: Norman, OK
 
 
			    
 
 | 
			
				|  |  
				|  Posted: Sat Oct 12, 2013 7:18 pm |   |  
				| 
 |  
				| One of the things I do when this happens is verify the PIC is not hanging someplace. 
 using spare pins I set them all low right at the very start of the code then
 set them high one after the other 5-10 lines apart to see how far the
 code is getting until I narrow down where the problem lies.
 _________________
 Google and Forum Search are some of your best tools!!!!
 |  | 
	
		|  | 
	
		| gpsmikey 
 
 
 Joined: 16 Nov 2010
 Posts: 588
 Location: Kirkland, WA
 
 
			    
 
 | 
			
				|  |  
				|  Posted: Sat Oct 12, 2013 8:01 pm |   |  
				| 
 |  
				|  	  | dyeatman wrote: |  	  | One of the things I do when this happens is verify the PIC is not hanging someplace. 
 using spare pins I set them all low right at the very start of the code then
 set them high one after the other 5-10 lines apart to see how far the
 code is getting until I narrow down where the problem lies.
 | 
 
 A man after my own heart - what better use for spare pins that telling us something useful about what is going on in there (since it almost never runs as expected the first time anyway).  Helps find that "duh" moment in your code
   
 mikey
 _________________
 mikey
 -- you can't have too many gadgets or too much disk space !
 old engineering saying: 1+1 = 3 for sufficiently large values of 1 or small values of 3
 |  | 
	
		|  | 
	
		| Ttelmah 
 
 
 Joined: 11 Mar 2010
 Posts: 19964
 
 
 
			    
 
 | 
			
				|  |  
				|  Posted: Sun Oct 13, 2013 1:10 am |   |  
				| 
 |  
				| Step back. 
 Forget the full code.
 
 Take the fuses, and combine these with a simple 'flash an LED' program.
 
 Run this. Verify how fast the LED flashes. Does it work?.
 
 If so, then compare the fuses programmed to the chip, with those from the full code. End of the .lst files. Does it match?.
 
 If not, then the problem is something in the logic tests leading to the wrong fuses being actually loaded.
 If it does, then your clock should be correct.
 
 If the flashing program doesn't work, or the rate is wrong, then again look at the lst file fuses and verify with the data sheet that these are what you expect. Loading the code into MPLAB, and looking at what it shows for the configuration, is an easy way of checking what would go into the chip.
 
 There are several settings on quite a few chips that don't default to what may be expected, which can cause problems, but the first step is always to forget the main code, and get the chip working, and working at the required rate, _before_ working on more complex code.
 
 Best Wishes
 |  | 
	
		|  | 
	
		| Gabriel 
 
 
 Joined: 03 Aug 2009
 Posts: 1074
 Location: Panama
 
 
			    
 
 | 
			
				|  |  
				|  Posted: Mon Oct 14, 2013 9:07 am |   |  
				| 
 |  
				| Thanks for the suggestions... ill go over that tonight. 
 i tried placing output toggle statments on my onboard LEDs throughout the code.... that only proved somthing is wrong.
 
 I checked the crystal with my scope and its running at 25Mhz...
 
 so the clock is running but it seems like its not stepping through code..
 
 Ill check all fuses and report..
 
 Thanks.
 G.
 _________________
 CCS PCM 5.078 & CCS PCH 5.093
 |  | 
	
		|  | 
	
		| Gabriel 
 
 
 Joined: 03 Aug 2009
 Posts: 1074
 Location: Panama
 
 
			    
 
 | 
			
				|  |  
				|  Posted: Mon Oct 14, 2013 7:34 pm |   |  
				| 
 |  
				| Code: 
  	  | Code: |  	  | #include <18F97J60.h> #device PASS_STRINGS=IN_RAM
 #reserve 0xE80:0xEFF   //SFR
 #reserve 0xF00:0xFFF   //SFR
 #use delay(clock=41666667)
 #fuses NOWDT, NODEBUG, H4_SW, NOIESO, NOFCMEN, PRIMARY, ETHLED
 | 
 
 LST:
 
  	  | Quote: |  	  | Word  1: F4A0   NOWDT STVREN NOXINST NODEBUG NOPROTECT Word  2: FF05   H4_SW PRIMARY NOFCMEN NOIESO WDT32768
 Word  3: F7F8   EASHFT MCU BW16 NOWAIT CCP2C1 ECCPE ETHLED
 | 
 
 I tried the fuses above on a small test program and it ran fine..
 
 now, when i run the modbus code... which does not run... the pic gets hot....not burning... just hot.. i program it and its an immediate temperature increase... press reset, fast cool down... release reset.. back to cooking...
 
 load a different program no temperature difference...
 
 i doubt is just processor load making it hot... the board is Known good hardware.....and i have no idea what is going on.
 
 man this gets weirder every day.
 
 G.
 
 
 G.
 _________________
 CCS PCM 5.078 & CCS PCH 5.093
 |  | 
	
		|  | 
	
		| PCM programmer 
 
 
 Joined: 06 Sep 2003
 Posts: 21708
 
 
 
			    
 
 | 
			
				|  |  
				|  Posted: Mon Oct 14, 2013 7:46 pm |   |  
				| 
 |  
				| If you need to research a PIC-specific issue (as opposed to a CCS issue) then use Google to search the Microchip forums:
 
  	  | Quote: |  	  | site:microchip.com/forums  18F97J60  hot -"hot topic" 
 | 
 Also search:
 
  	  | Quote: |  	  | site:microchip.com/forums  18F97J60 OR PIC18F97J60 hot -"hot topic" | 
 In other words, this CCS-specific forum is not the whole world.
 |  | 
	
		|  | 
	
		| Gabriel 
 
 
 Joined: 03 Aug 2009
 Posts: 1074
 Location: Panama
 
 
			    
 
 | 
			
				|  |  
				|  Posted: Mon Oct 14, 2013 7:58 pm |   |  
				| 
 |  
				| yeah thanks for that.... i should have tried that search on my own... sorry... I'm pretty frustrated by now and got tunnel vision.
 
 I'm glad to know that the ethernet causes the heat... it means its getting turned on....
 
 i guess I'm on a witch hunt now...
 
 i tested the clock with a LED program and its spot on... no problem there..
 
 g.
 _________________
 CCS PCM 5.078 & CCS PCH 5.093
 |  | 
	
		|  | 
	
		| Gabriel 
 
 
 Joined: 03 Aug 2009
 Posts: 1074
 Location: Panama
 
 
			    
 
 | 
			
				|  |  
				|  Posted: Mon Oct 14, 2013 8:17 pm |   |  
				| 
 |  
				| so... The PIC gets hot because the ethernet module is on... i then proceed to find said "turn on Ethernet" statement
 continue to place LED triggers prior and after said statement
 and as of this moment i see no blinky...
 
 ...cursing ensues.
 _________________
 CCS PCM 5.078 & CCS PCH 5.093
 |  | 
	
		|  | 
	
		| Gabriel 
 
 
 Joined: 03 Aug 2009
 Posts: 1074
 Location: Panama
 
 
			    
 
 | 
			
				|  |  
				|  Posted: Tue Oct 15, 2013 1:25 pm |   |  
				| 
 |  
				| Errr.... yeah... by manually enabling the tris settings on the ports it started working.... 
 now the LCD does not seem to recognize the direction change but i now know how to look...
 
 modbus example works good... its triggering my relays and my LEDS... got the internal registers working too...
 
 
 Thank you all for your help....
 
 I was getting a little dense at the end there... i appologize..
 
 G.
 _________________
 CCS PCM 5.078 & CCS PCH 5.093
 |  | 
	
		|  | 
	
		| Gabriel 
 
 
 Joined: 03 Aug 2009
 Posts: 1074
 Location: Panama
 
 
			    
 
 | 
			
				| Results |  
				|  Posted: Wed Oct 16, 2013 11:08 am |   |  
				| 
 |  
				| Just a late update: 
 I've gotten the Modbus TCP server to work properly on the OLIMEX PIC MAXI WEB board, with all basic features.
 
 Relay control
 Opto-Inputs
 Buttons
 Analogue(trim pot) readings
 LCD
 
 
 The system seems stable although I have yet** to run a 24 hour test... will report.
 
 **Mostly because I'm worried about the "normal" temperature increase... I'm putting a heat sink on the thing and a fan... i don't care what anyone says.
 
 I'm going to write a little time splicing routine tonight for the "user" routines and that should be it.
 
 thanks again,
 
 G.
 _________________
 CCS PCM 5.078 & CCS PCH 5.093
 |  | 
	
		|  | 
	
		| gpsmikey 
 
 
 Joined: 16 Nov 2010
 Posts: 588
 Location: Kirkland, WA
 
 
			    
 
 | 
			
				|  |  
				|  Posted: Wed Oct 16, 2013 1:52 pm |   |  
				| 
 |  
				| Some chips take more cooling than others.  For us old geezers, this was a favorite - check out the cooling requirements on the Signetics Write Only Memory data sheet.  It may apply in your case   http://www.repeater-builder.com/humor/signetics-wom.pdf
 
 mikey
 _________________
 mikey
 -- you can't have too many gadgets or too much disk space !
 old engineering saying: 1+1 = 3 for sufficiently large values of 1 or small values of 3
 |  | 
	
		|  | 
	
		|  |