JDM Programmer not detecting after Nigel Tutorial 1.2??

Status
Not open for further replies.

New Member
Well, after 5 months of telling myself I would get started, I finally did. I build the "MAIN" board from Nigels tutorial, installed MPLAB 8 (again), and went through the MPLAB tutorial to understand how the HEX file is created using the ASM file.

Finally got 1.1 done...the LED lit up (after I remembered to cut the tracks between the pins on the PIC socket....). I was elated, feeling like I was getting somewhere. I then modified the code and wrote in the Delays so I could actually SEE the LED blinking. I put my chip back in my JDM programmer (cheap one, but that is what I need at this point until I know I like this and won't get burned out trying to learn).

The programmer found the chip just fine, and I was able to erase the chip and program it with the new HEX file for 1.2. I transferred the chip to the MAIN board, but the LED still just shined....very strange. I then transferred it back to the JDM and the blasted thing couldn't be found.

I picked up a second chip, programmer finds it, I burn 1.2 on the chip, and I get the same results. Now the really odd thing is sometimes the programmer PWR led blinks at about the rate I expected the MAIN board to blink...but I can never detect the chip.

Here is the code for 1.2:
Code:
;Tutorial 1.1 - Nigel Goodwin 2002
LIST	p=16F648A		;tell assembler what chip we are using
include "P16F648A.inc"		;include the defaults for the chip
__config 0x3D18			;sets the configuration settings (oscillator type etc.)

cblock	0x20		;start of general purpose registers
count1		;used in delay
counta		;used in delay
countb		;used in delay
endc

org	0x0000			;org sets the origin, 0x0000 for the 16F628,
;this is where the program starts running
movlw	0x07
movwf	CMCON			;turn comparators off (make it like a 16F84)

bsf 	STATUS,		RP0	;select bank 1
movlw 	b'00000000'		;set PortB all outputs
movwf 	TRISB
movwf	TRISA			;set PortA all outputs
bcf	STATUS,		RP0	;select bank 0

Loop
movlw	0xff
movwf	PORTA			;set all bits on
movwf	PORTB
nop				;the nop's make up the time taken by the goto
nop				;giving a square wave output
call	Delay		; this starts the wait
movlw	0x00
movwf	PORTA
movwf	PORTB			;set all bits off
call	Delay		; again with the waiting
goto	Loop			;go back and do it again

Delay	movlw	d'250'		;delay 250 ms (4mhz clock0
movwf	count1
d1		movlw	0xC7
movwf	counta
movlw	0x01
movwf	countb
Delay_0
decfsz	counta, f
goto	$+2 decfsz countb, f goto Delay_0 decfsz count1, f goto d1 retlw 0x00 end Any ideas what I am doing wrong? Anyone giving away another Junebug? On a side note I quickly realized transferring the chip back and forth would be a pain, so I assembled a piggy-back module to utilize a ZIF 40 pin socket. Too bad I didn't realize my ZIF sockets were for a wide chip until I was finished. colin55 Well-Known Member Make sure you have no more than 5v on the chip. They "freeze up" over 5.5v. Tightwad New Member Where do I measure that voltage? If I can get the chip to blink the PWR button, I get a fluctuating voltage of 1.5-4.5 on pin 1. Otherwise the PWR button is either off, or on steady. I read on the winpic800 FAQ that the JDM programmer can get into trouble because "Vpp (the programming voltage) is not raised to say 12 Volts fast enough" Is this my problem maybe? Is there a way to get around it? Tightwad New Member Update: I had my jumper settings on the main board wrong...the Chip was programmed correctly. I still can't change it now, which is unfortunate. Tightwad New Member PICPgm doesn't detect the chip at all. I haven't learned how to use any other programmer software, I tried WinPic800, and it claims it erases the chip, but then it also says it needs more information for some file....I am not sure what exactly it needs. This is the error I get: "Couldn't find "devices\PIC16F648A.dev", please borrow/copy from MPLAB !" *Edit* I read more on the WInPIc800 and learned where to direct the path to the dev files. I still can't get it to erase the chip such that PICPgm will see it, but WINPIC800 seems to...not sure how to verify. Last edited: 3v0 Coop Build Coordinator Forum Supporter When you install MPLAB (Free from Microchip) you will find it under C:\Program Files\Microchip\MPLAB IDE\Device JDM programmers often do not work well with laptops or new PCs. The main problem is the RS232 ports often do not provide enough voltage for programming. Tightwad New Member Here is what happens when I try to program the chip using WinPic800: Reading PIC ok. Programming... Erasing ("bulk" or "chip") ... Programming CODE, 0x000000..0x000801 Verifying 0x000000..0x000801 Verify Error: 00000C: read 002012, wanted 002013 Verify Error: 00000D: read 002000, wanted 002013 Verify Error: 00000E: read 000000, wanted 003000 Verify Error: 00000F: read 000084, wanted 000085 More Verify Errors, unable to list all (total=19) Programming CONFIG, 0x002000..0x002007 Verifying 0x002000..0x002007 ERROR: Programming FAILED ! colin55 Well-Known Member JDM needs an old PC with serial port. Here is my JDM circuit with some improvements: The 8v2 has 2 diodes to increase the voltage by 1.2v Pin 9 is conected to pin 10 via a 10k (for PIC16F628) and pin 10 does not go anywhere else. My cirucit has 3 LEDs to show when the varous lines are operating. Make sure the 13v LED has 13.5v for guaranteed programming. Last edited: Tightwad New Member Colin, I am not sure I follow. I programmed the device twice now, then it got stuck with the second program loaded onboard. The program works as written, I just can't change it anymore. colin55 Well-Known Member Yes, that's right. The chip won't program. I had the same problem with PIC16F628's. They are basically faulty PIC chips. Try completely discharging the chip by shorting the pins. I have had lots of problems like this with PIC chips. Even to the extent that one or more of the instructons will not work. I thought was my program until I found other chips would work. Nigel Goodwin Super Moderator Most Helpful Member PIC's are incredibly sturdy devices, it's VERY rare to either get a duff one, or damage one. Far more likely is that you've set the internal oscillator (as all my 16F628 tutorials do), and your programmer is unable to cope with that - as some poor programmers can't do so. picasm Member It is a common issue with enabling the internal oscillator combined with disabling MCLR for using it as an input. The basic jdm programmer cannot recover chips once they have been programmed in this way because it can't control both the vpp and VDD needed in order to get the chip back into program mode. There have been various mods to the jdm programmer created to allow VDD control. eg. Reprogramming becomes impossible to small PIC ! A better long term solution is to upgrade to a microchip pickit2 (or clone) programmer which does not suffer from that issue. Nigel Goodwin Super Moderator Most Helpful Member On a side note, I had heaps of issues with JDM programmers Yes, that's why WinPicProg only supports parallel port programmers, and NOT serial port ones - I wasn't prepared to offer support for such an unreliable device. Last edited: 3v0 Coop Build Coordinator Forum Supporter Last I recall RS232 is the standard that lays out the voltage translation between TTL levels and plus and minus 12 volts. The older serial ports were better at following the RS232 standard then newer PCs and laptop. Even if you are Tightwad you will be money ahead if you do what gramo suggests. At the very least build a IC2 rs232 clone for about$10. It is old and slow but way better then the JDR junk. My two cents is that the only valid use for a JDR is programing a chip for a better programmer.
JDM does not work on RS232 at all.

It needs an old PC with serial port.

New Member
What would a suggested board be then? PICKIT2 is USB, will that programmer work with Nigels Tutorial? Is there a better option? I am a "Tightwad" but in this case I am already invested I guess....better to do it at least somewhat right.

Knowing what programmer to buy is incredibly tough...I didn't realize this would be an issue.

blueroomelectronics

Well-Known Member
IMO best option on the ultra cheap is a PICkit2 clone like the old SE version I published ages ago (it became part of the Junebug kit). You can use your JDM to program a 18F2550 and a handful of parts you and you'll have a decent USB programmer & debugger.

Banned
Since the JDM isn't a high voltage programmer couldn't you just provide the target with power from another source and only use the RS232 for data? That should work.

3v0

Coop Build Coordinator
Forum Supporter
The JDM is a high voltage programmer.
Since the JDM isn't a high voltage programmer couldn't you just provide the target with power from another source and only use the RS232 for data? That should work.

Status
Not open for further replies.