Retrofitting the Protodev 20

The ProtoDev series of PIC development platforms has been quite a success and we would like to thank both our local and international customers and distributors for their distribution and purchase of the product.

As the stocks run low, I suppose the question becomes, “If you wanted another one, would there be more stock on the way?” Well, as much as I would like to have on hand every iteration of what we have either designed or had on offer before, I do also think that as times change it only makes sense to adjust your product offering at the same time. That said, place an order for more than 10 and I will have them ready in roughly 15 working days.

What I can offer in the mean time, are tips and tricks on how to use the ProtoDev PCBs better. One aspect of the PCB, which was a selling point was the prototyping area. As much as this was a fantastic idea, it did put the PCB in a position where once you solder in the components that you wanted to use it, that was it! If you wanted to reuse it, then the components would need to be desoldered.

Not, necessarily. A small bread board slips into the prototyping area quite easily and this was unexpected as it was not planned. So I installed one just to see how well the addition would work and it was quite a help addition. Now the PCB can be re used.

Shown in the image below, is the ProtoDev 20 with the addition of the bread board. Just to make this article a little more interesting, its also a mini hello world project using one of Microchip’s more recent devices namely a PIC16F1823.

ProtoDEV 20 Retrofitted

ProtoDEV 20 Retrofitted

This is a 14 PIN device, so if you are use to using a PIC16F688 then this device with its characteristics would be easy to get familiar with it. The PIC16F1823 also includes an internal 8MZ oscillator, so no external resonator would be required. The project voltage is 5Vdc, so pretty standard stuff and once the jumpers on the PCB have been set correctly you are good to go.

/*
   Copyright under GNU license.
   PIC18F1823 Hello world demo
*/

unsigned char time = 0;

#define LED PORTA.B2

void Start()
{
// Disable Analogues on PORTA

 ANSELA = 0x0;
 ANSELC = 0x0;

/* 
   Configure Ports
   PORT A all digital
   PORT C all digital
*/

// Configure TRIS Registers

 TRISA = 0x38;
 TRISC = 0x0F;

// Disable the Comparators

 CM1CON0 = 0x0;
 CM2CON0 = 0x0;

}  

void Flash(){
/*
  Startup Flash Routine
*/

     LED = 1;
     Delay_ms (100);

     LED =0;
     Delay_ms(100);
}

void main() {

     //Initialize the device
     Start();
     Flash();

     while(1)
     {
       if(PORTA.B5 == 1)
       {
          Flash();
       }
     }
}

Code Overview

The example itself is very simple, and its designed to illustrate some working key points with the PIC16F1823.

  • The device has allot of analogue inputs which must at first be disabled
  • Once disabled the device can be configured for Digital IO
  • The device accepts the input from a tactile switch, one which is on board
  • The depressing of the switch enables the LED to oscillate

This, like other devices do have shared IO which must be disabled before you can use standard features like digital I/O

Notes: The above code was created in the MikroC Compiler.

No I am not done with this, had a kewl idea for the PIC18F1823 … to follow soon.

[E]