Wednesday, April 25, 2012

Pickit Zif

Years ago, when I started with Microchips microcontrollers, I made my first JMD programmer, it was a serial port programmer and it had a bunch of sockets of different sizes in which I just to place the PIC to be programmed, but I couldn´t use it with my laptop because they don´t come with serial ports any more, so I bought a Pickit 2 and let me just say that it is the best programmer money can buy. In the down side it does not have any sockets because it is intended to use the ICSP method and been a rookie I needed sockets, so I started to design a PCB that it will plug directly to the Pickit and before I could finished I found the Winpic800 programmer. this programmer has a 40 pin zif socket on top where pics from 40 to 8 pin can be programmed. I thought that is was a great solution instead of a bunch of sockets. Luckily the guys from Winpic800 give there schematics for free and I just needed to adapt there schematics to fit directly to the Pickit connection and this what I came up a few days later.


It is almost the sizes of the Pickit and it has a jumper to select between 18/14/8 and 28/40 pin PICs. plugs directly to the Pickit and it is small enough to fit in a pocket. It has 5 jumper wires underneath the zif. To use it just select the number of pins with the jumper and place the PIC according to the drawing and it numbers of pins.

Now I have the Pickit 3 because my Pickit 2 got stolen, but it proof that it is compatible with any of them. I have successfully tested it with several PICs and here is a small list of then:
  • PIC16F871 (40 pins)
  • PIC16F877A (40 pins)
  • PIC18F4550(40 pins)
  • PIC16F870 (28 pins)
  • PIC16F876A (28 pin)
  • PIC16F873 (28 pins)
  • PIC18F2550 (28 pins)
  • PIC16F88 (18 pins)
  • PIC16F628A (18 pins)
  • PIC16F688 (14 pins)
  • PIC16F675 (8 pins)
Finally here are the pdf files for the PCB and the silk screen.
Zif PCB
Silk screen

Saturday, April 21, 2012

Serial 16x2 LCD controller PCB

Finally I got my dremel back from my brother and I just finished the PCB  for my LCD, here is a picture with a minor error on a trace that I had to correct with some solder. It turned out a bit larger that I expected, the final dimensions are 36mm X 53mm.


This is a unregulated PCB, so be sure to power it with a max. of 5 volt. or it will burn the LCD and/or the PIC, here is a picture of the PCB with all of the components soldered in place, the red led is connected to the TX pin of the PIC and it will transmit all the data that it received to the this pin and the led will light briefly with each byte it received, I also used this feature to debug the firmware. The white trimmer is the LCD contrast.


I had some trouble soldering the LCD in place because I had all ready solder the pins to the LCD since I used it in the breadboard, so take my advise and solder the pins to the PCB FIRST :P


I was only able to solder in one side of the pins of the LCD as it shows in the picture.


Here is a picture of the back of the LCD with the PCB attached.


I try to make it small enough to be in the back of the LCD and not be visible. It only shows a bit in the top and the connector on the side.


And finally the old and good "Hello World!!!!" message to check that is working correctly.


Here is the pdf file if anyone would like to make the PCB with toner transfer method     s_lcd_pcb.pdf

Thursday, April 5, 2012

Serial 16x2 LCD controller

LCD serial controller.
I just migrated a little while ago from the old MPLAB to the new MPLABX, and before that I did all my PIC programing in assembler, so with the new MPLABX I decided that it was time to finally learn C/C++ for PICs, and the best way to learn programing (at least in my opinion) is to get a project going on, with that in mind I set on making/building a serial controller for the popular 16x2 LCD modules, I know that Sparkfun.com already have one of those, but I just wanted to have my own, it is very ease to use, simply send ASCII charecters to the controller from a PC with a MAX232 adapter, FTDI chip or a MCU and they will be writen to the LCD.

It uses a PIC16F628A running at 20Mhz, I made all the functions of the LCD module available in 19 easy commands, it has a 40 charecter buffer. It uses a baud rate of 9600 with no parity, no flow control and 1 stop bit. This is the first version and I have plans to extend the buffer size, make other baud rates available and the PCB will be posted soon.

All needed files are in the RAR file, even the source code if anyone wishes to make some changes of there own, just give me some credit.S_LCD.rar