orhun / Picasso

PIC16F877A based 5V/20MHz development board and PIC programmer

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Picasso

PIC16F877A based 5V/20MHz development board and PIC programmer

[!] This is a discontinued project. [2016] Documents are published in order to help people that want to create similar projects or think of new ideas.

Idea

Programming Microchip's PIC (peripheral interface controller)'s and preparing electronic circuit board takes time and also inconvenient in circuit testing process. In other words, using the appropriate PIC programmer and creating the proper circuit board according to desired PIC's datasheet is not practical for situations that needs quick actions like prototyping. In addition to that there is platforms like Arduino, so PIC is not preferable except embedded applications.

Therefore, idea behind this project is creating a development board/prototyping platform using PIC.

How?

Sprut is a project that aims to produce PIC programmer hardware with serial, parallel and USB techniques. (see Brenner) Sprut Brenner is a preferred and common programmer board for universal PIC applications.

Brenner board that I was using:

sprut brenner

There is a 40 pin programmer on board for supporting most of the PIC's. The board itself uses PIC18F2550 (see datasheet) for communication with software.

PIC16F877A (see datasheet) is a 40-pin microcontroller which is used frequently on PIC domain. (It has 256 bytes of EEPROM, 2 PWM 10-bit, ICD etc.) This features of 877A was the main reason for my decision to use this microcontroller in this project.

pic16f877a

In order to load your program to PIC (which is called flashing hex file) you have to use a software called US-Burn. US-Burn also supports various features such as flashing bootloaders, changing PIC configurations and disassembler. It has Windows and Linux support.

usburn Get US-Burn here.

Basically if we replace the 40 pin programmer with 877A (or another PIC), put pins in order (like Arduino) and write a custom IDE with flashing features, we will have a 5V - 20MHz 877A-based development card. I'd like to call it PICasso.

v0.1

v0.1

Purpose of this version is seeing how easily can I use 877A's pins with the board above.

● PIC16F877A
● 7805
● 1K & 220
● LED
● 4MHz crystal osc.
● 2 x 22pF

v0.2

v0.2

This version can be considered as the outline of the Picasso project's main idea. 18F2550 and 16F877A used together in this board with custom pins next to 877A due to testing our thesis. Eventually, F2550 which is responsible for USB communication can be used with another microcontroller on the same board and this version is open to any developments on the electronics (PCB) and the software side.

Here is the steps that followed for preparing this board:

  • PCB

picasso_pcb_v0.2

EAGLE Project | PCB

  • Circuit Part List

Same as Sprut's Brenner except PIC16F77A, 20MHz osc., 22pF's, pins and couple of LED's. So here is the c/p part list:

Part     Value			Reichelt	Conrad
===================================================
C1       220nF                 Z5U-2,5 220n
C2, C3   22p                   Kerko 22p
C4       10µF                  rad10/100
C5       47µF                  rad47/35
C6, C7   10nF                  X7R-2,5 10n
C8       100nF                 Z5U-5 100n
C9, C10  220nF                 Z5U-2,5 220n
D1 D2    BAT43                 BAT 43
D3       BZX97-3,3             ZF 3,3
IC1      PIC18F2550SP          PIC18F2550-I/SP
	 28-polige IC-Fassung  GS 28P-S
IC2      40-poliger Testsockel TEX 40
L1       680µH                 SMCC 680µ
L2       10µH                  SMCC 10µ
LED1     grün                  LED5mm2MAgn
LED2     gelb                  LED5mm2MAge
Q1       20 MHz                20-HC49U-S
Q2,Q3,Q5 BC338-25              BC338-25
Q4,Q6    BC328-25              BC328-25
R1       1k                    1/4W 1K
R2,R3,R6 10 k                  1/4W 10K  
R4       4k7                   1/4W 4,7K
R5       2k2                   1/4W 2,2K
R7,R13   10k                   1/4W 10K
R8,R12   100k                  1/4W 100K
R9..R11  10k                   1/4W 10K
R14      0 (Drahtbrücke)
R15      1 k                   1/4W 1K
R16      330                   1/4W 330
SV1      ICSP                  BL 1X10G 2,54
X2       USB-B-H               USB BW
JP1      Jumper                Jumper 2,54 RT

Brenner Circuit and b8p5_partlist.txt might be helpful.

  • After preparing the circuit, there is not much left to do. We have to flash the bootloader and firmware to PIC18F2550 to use the board with US-Burn software.
    To achieve this, a PIC programmer is required due to the need of bootloader flashing.

  • Flash the boot_0_20mhz.hex to the 18F2550 after US-Burn detected the PIC.

  • After flashing the bootloader, put 18F2550 in your circuit and connect it's USB to your computer. Make sure everything is working with USB and circuit. (Check if any smoke coming out)

  • Start the US-Burn software. It will redirect you to firmware update section if everything goes right for you.

firmware_update

  • Select the b8_fw16.hex and upload new firmware.

  • Reset the programmer. In this point you might have to make some calibrations. So see b8_calibration_en.pdf

  • Finally put PIC16F877A in place and you are ready to go. You can flash your program (hex) into PIC and use it's pins easily just by connecting the USB.

v0.5

v0.5

Some circuit updates were made with this version.

  • PIC16F877A placed horizontally.
  • All pins gathered in one place. Required labels added.

v0.5_pins

v0.5_2

  • PCB

picasso_pcb_v0.5

EAGLE Project | PCB

  • Circuit Part List

Same components with v0.2

  • Instructions

Same installation/configuration procedure with v0.2

v1.0

v1.0_1

Circuit board improved and new featured added with this version.

  • ICSP (In-Circuit Serial Programming) pins added for PIC16F877A.
  • 5V input added to circuit with 7805 regulator.
  • Some component's including LEDs position changed.

v1.0_2

  • PCB

picasso_pcb_v1.0

EAGLE Project | PCB

Components and instructions are same with v0.5

Missing Features

  • There is no custom IDE or flashing software for Picasso. (yet?) So you have to use a third-party software like MikroC to compile your code (create hex) & flash to PIC.

  • Picasso uses Sprut Brenner's sources which is an inactive project.

Demo will be added hopefully.

License

GNU General Public License (v3)

Copyright

Copyright (c) 2016-2023, orhun

About

PIC16F877A based 5V/20MHz development board and PIC programmer

License:GNU General Public License v3.0


Languages

Language:C 75.9%Language:C++ 23.9%Language:Makefile 0.2%