This is purely for learning and my own development. Now, I know that I have sufficient time between each pulse since I have it clocking on 1 second intervals. I am using a 16f84 connected to D0 and D1 of a parport. I manually step up the MCLR voltage to +12V before I start programming. I have also monitored every D0/D1 pulse to make sure they coincide with the correct instructions, and they do. So I must be sending out the wrong instructions in the wrong order or something, which is why I wish to know the correct process. I have two leds that connect from D0->GND and from D1->GND. No buffers involved. I will try removing the led's tho and see what happens. Can you help me any further? > On Sun, Jul 21, 2002 at 05:45:27PM -0400, Jai Dhar wrote: > > HI, > > > > I'm trying to code and make my own pic programmer for a 16f84. > > Three quick comments/questions: > > 1) Is this a learning project or are you building a programmer in prep for > doing PIC development. If it's the latter then your time is probably better > spent building/using on of the many programmers and software that's available. > > 2) What is your hardware for programming. The algorithm may not be relevant > if the hardware for programming is incorrect. > > 3) (The usual for me) Have you heard of the 16F628. It's like a 16F84 but only > much, much better and much, much cheaper. And it can even help you right where > you are because the programmer for it can be simplified vs. a 16F84 programmer. > > My programmer and comparison pages can be found here: > > http://www.finitesite.com/d3jsys > http://www.finitesite.com/d3jsys/16F628.html > > > As a very simple starting point, I thought I would just try and write any > >command and read it back to verify it. So I follow this procedure: > > > > output 6 bits of 0x2 - 00 0010 (load program data) > > output a start bit - 0 > > output 14 bits of any command > > output a stop bit > > output 6 bits of 0x8 - 00 1000 (cycle program command) > > output 6 bits of 0x4 - 00 0010 (read program data command) > > How long did you wait between the program command and the read program data? > For the 16F84 you must wait at least 10ms after the beginning of a write > before you can read. > > If possible slow the programming down so that you can see the state of each > bit as it's transmitted. If possible separate the input into RB7/DATA from > the output from RB7/DATA with a switch so that you can ensure that the output > driver comes on when you issue the read. > > Are you sure that you are clocking on the correct edge? > > There are a lot of issues when first bootstrapping your programming algorithm. > > And as I said before if it's for a learning exercise the great! However if you > just want to get the job done, it's probably better to use someone else's > software. > > > > > After I issue the last command, I cycle the clock 16 times and monitor RB7 > > for voltage changes, and I do'nt get anything. I know I'm sending/clocking > > RB6 and RB7 correctly because I have led's hooked up. What am I doing wrong? > > Not enough information to determine yet. One last question: are you hooking > up the LED directly to the RB6/RB7 lines or do you have a buffer between the > I/O lines and the LEDs. Because if you have the LED hooked up directly it's > quite possible that they are screwing up your data to and from the PIC. > > Hope this helps, > > BAJ > > -- > http://www.piclist.com hint: PICList Posts must start with ONE topic: > [PIC]:,[SX]:,[AVR]: ->uP ONLY! [EE]:,[OT]: ->Other [BUY]:,[AD]: ->Ads > --------------------------------------------- This message was sent using Endymion MailMan. http://www.endymion.com/products/mailman/ -- http://www.piclist.com hint: PICList Posts must start with ONE topic: [PIC]:,[SX]:,[AVR]: ->uP ONLY! [EE]:,[OT]: ->Other [BUY]:,[AD]: ->Ads