Myke's Home Page

Book CD-ROM Home

File Copying/Harddrive Setup

Development Tools

Experiments

Projects

Useful Code Snippets and Macros

Introduction to Electronics

Introduction to Programming

Datasheets

PCBs

Links

McGraw-Hill Professional Publishing

"YAP-II" Programmer

The original YAP programmer came about as I was working through the first edition of the book, trying to come up with a PICmicro® MCU programmer that would work on a wide variety of different PCs. When I started the project, I found that it wasn't hard to create a programmer that would work on one PC, using its own internal timing, but any time I tried the design out on another PC I found that it wouldn't work. The El-Cheapo design and PCB that is provided in this book is a continuation of this work, with a much more effective design.

The YAP-II is designed to connect to a PC or workstation via its RS-232 port and program devices at 1200 bps ("8-N-1"). This data rate allows applications to be programmed into a PIC16F84 in about two minutes, which is no where near as fast as some of the designs available on the internet; but I can guarantee that it will work on every PC out there with an RS-232 port.

Click Here to access the source code on the CD-ROM.

The YAP-II connects to a PC/Workstation RS-232 Port using a "Straight Through" cable with a 9 pin male "D-Shell" connector for the YAP-II. A 15+ Volt AC/DC ("Wall Wart") Power Supply with a 2.5 mm "Power Plug" is required for powering the programmer. For Microsoft "Windows" PCs, I have created a GUI interface that can be loaded into the PC by clicking Here.

When I designed the application, I wanted it to include the necessary peripherals (ie LEDs and buttons) that the Experiments presented in this book could be run on it. This has resulted in a fairly large PCB that incorporates the programmer hardware, the peripherals and a small breadboard that can be used to test out the application. The programmer circuit is shown in the yap-ii.pdf file. The peripheral functions can be found in the yap-iiac.pdf file.

The bill of materials for the YAP-II is listed in the table below.

Part Description
U1 PIC16C711-20/P Programmed with YAP-II Software
U2 18 Pin Socket/ZIF Socket
U4 78L12 +12 Volt Regulator in a TO-92 Package
U5 Maxim MAX232 RS-232 Interface
U6 7805 +5 Volt Regulator in a TO-92 Package
U7 ECS Programmable Oscillator OECS-160-3-C3X1A (Digi-Key Part Number XC307-ND)
CR1 - CR3 1N914 Silicon Diode
CR4 1N4001 Silicon Diode
LED1 - LED2 5mm LED, Any Type
LED3 10 LED "Bargraph" Display
Q1, Q6 2N3906 PNP Bipolar Transistors
Q2 2N3904 NPN Bipolar Transistor
Q5 2106A P-Channel MOSFET (Digi-Key Part Number: ZVP2106A-ND)
R1, R3, R7 10K, 1/4 Watt Resistors
R2, R6 220 Ohm, 1/4 Watt Resistors
R5, R10, R13 330 Ohm, 1/4 Watt Resistors
R8, R9, R15 - R17 1K, 1/4 Watt Resistors
POT1 - POT2 10K, Single Turn PCB Mount Potentiometer (Digi-Key Part Number: 3310Y-1-103-ND
SIP1 - SIP2 220 Ohm, x9 Common Pin SIP
C1 - C2 0.1 uF Capacitors (Any Type)
C3 - C4, C7 - C9 1.0 uF Capacitors (Any Type)
C5, C6 10 uF, 35 Volt, Electrolytic Capacitors
CSPKR 0.47 uF, 16 Volt, Tantalum Capacitor
SPKR Piezo Speaker (Digi-Key Part Number: P9922-ND)
SW1 SPDT PCB Mount Switch
RST, BUT1, BUT2 Momentary On, PCB Mount Push Buttons
J1 2.5 mm PCB Mount Power Socket
J2 9-Pin Female PCB Mount D-Shell
J3, J5 19x1 Female IDC Connector
J4 5x1 Female IDC Connector
Miscellaneous PCB Board, Serial Cable, Power Supply

The commands for the YAP-II are listed in the table below:

Command Action
A "Ping" - Return Carriage Return/Line Feed
B Reset the Program Counter to 0
C Clear the Flash based PICmicro MCU's Program Memory
D Dump 256 Instructions of Program Memory at the current Program Counter's Address. Add 256 to the Program Counter when done.
E EPROM Part Programming - "Text Send" the Application's Hex File
F Flash Part Programming - "Text Send" the Application's Hex File
G Get Eight Instructions Starting at Address 0x02000
1, 2, 4, 8 Run the PICMicro MCU at the Specified Speed in MHz

The nineteen pin connector wired to the PICmicro MCU is defined as:

Pin Function
1 Gnd
2 Vcc
3 _MCLR - No High Programming Voltage
4 YAP-II Oscillator
5 Serial Input
6 Serial Output
7 - 11 RA0 to RA4
12 - 19 RB0 to RB7. Note: RB6 and RB7 cannot be loaded during programming operation

The nineteen pin connector wired to the peripheral (accessory) devices is defined as:

Pin Function
1 - 10 LED1 - LED10
11 BUT1
12 BUT2
13 POT1
14 POT2 Wiper
15 POT2 Connection 1
16 POT2 Connection 2
17 Speaker
18 - 19 Pull Up 1 - Pull Up 2