|Home||Products||Prices||Site Map||Order||Contact||What's New||Books||Free Files||Links||FAQ|
|Bottom of Page|
The DT106 SimmStick board works with the PIC18F452-I-P and the PIC18F252-I-P fine.
MPLab-ICD Adaptor by Graeme Jenkins
http://quozl.linux.org.au/alarm-clock/ by James Cameron.
(To Older Version DT106A)
The New DT106 SimmStick:
28, and 40 pin footprints to suit all current PICmicro flash PIC1687x devices.
Alternative RS-232 or RS-485 Comms
Eeprom. Same pinout for MicroChip 24LCxx family.
8570 Ram. can be used as second Eeprom location.
Provision for power up/reset circuit which allows both a cmos and open collector Brown Out circuit chips to be fitted if the user chooses to use one, as the 40 pin footprints match older PICmicro devices also.
Provision for LCD 14/16 pin header, and mounting holes for selected 1 and 2 line displays, plus contrast pot.
Provision for Crystal (and Caps), or Resonator Oscillator.
A 40 pin header (40 pin dip compatible) at the top edge of the board.
DS-1302 Real Time Clock.
SimmStick compatible, which means it is a Load/Run operation for Flash Micros if used in conjunction with a suitable programming platform such as the DT001.
10 pin programming header that matches the programming header on the DT001 board.
There is a bit more to write, and a few points to be cleared up, but please just let me know if you have any queries or feedback at all.
Also read DT001 for programming a Flash PICmicro
SimmStick in slot 1
Read P16PRO regarding software Registration for programming the 87x family.
Programming the 877 with P16PRO
The Micro can be any of the new flash 87x family and many old PICmicros that fit the 28 pin skinny Dip and 40 pin DIP footprints.
You can even change Micro types if you install a 28 pin socket in the U5 position, and two 20 pin machine pin strips into the U1 position.
1 by 780L5 +5 VR1 Voltage regulator in TO-92 case. (Optional)
1 by Capacitor C5 15pf Ceramic (This should suit all types of Crystals)
1 by Capacitor C6 15pf Ceramic (Read page 135 of the data sheet for full details.)
And either a Crystal of a suitable value, or a 3 pin Resonator. If a crystal is fitted then C5 and C6 must be installed. If you use a Resonator, then you mustn't install these two caps.
Michael Owings 19-May-2001 R3 seems to cause problems when used with a ceramic resonator (at least the brand I'm using). I use my DT106 with an 877 and a 20mhz resonator (Murata, I think). It definitely fails when OSC2 is connected via the 470 ohm R3. I verified this on a breadboarded circuit as well. Installing a jumper wire in place of the resistor fixes the problem. Great product otherwise.
1 by Capacitor C9 10uf Tantalum or Electro.
1 by Capacitor C10 .01uf (or .1uf) Ceramic
1 by Capacitor C11 .01uf (or .1uf) Ceramic
1 by Capacitor C12 10uf Tantalum or Electro.
1 by Capacitor C13 .01uf (or .1uf) Ceramic
1 by Capacitor C14 .01uf (or .1uf) Ceramic
1 by Resistor R1 10K .25 watt
1 by Resistor R2 10K .25 watt
1 by Resistor R3 470 Ohms .25 watt
There is an option for a series resistor (R3) between OSC2 and the crystal. The 16F87x data sheet shows this resistor in Figure 12-2 on page 135 of the data sheet. Use a 470 ohm resistor there when running the chip in HS mode, or it will burn up the crystal very quickly. Most users should simply install the 470 Ohm resistor.
1 by Resistor R4 10K .25 watt
1 by Resistor R5 10K .25 watt
1 by Resistor R6 10K .25 watt
X1 Crystal or Resonator to match your clock requirements.
The most common device used is a 20Mhz Crystal and two 15pf caps.
Allow a little space between the can and the board as a safety margin, as there are plated through vias that could short to the crystal can.
X2 32.768khz Crystal and C7 and C8 (22pf Ceramic)
Optional Timer 1 input. This is used for U1 input.
X3 32.768khz Crystal with a load capacitance of 6pf. (For Optional DS-1302 Clock)
POT 1 10K (For Optional LCD)
Optional RS-232 Serial Communications: 1 by Capacitor C1 1uf Electrolytic (PCB mount.) or Tant. @16 V. 1 by Capacitor C2 1uf Electrolytic (PCB mount.) or Tant. @16 V. 1 by Capacitor C3 1uf Electrolytic (PCB mount.) or Tant. @16 V. 1 by Capacitor C4 1uf Electrolytic (PCB mount.) or Tant. @16 V. 1 by MAX-232 U2 (or equivalent) It may also pay to install a 16 pin socket for the Max-232, as you may have to remove it for some configurations.Optional RS-485 Serial Communications:
RS-232 and RS-485 Comms can't be installed together as the chip footprints overlap each other.
This small IC (U6) in a TO-92 package is used to stop the Micro operation becoming unpredictable during a power 'brown-out'. In most cases this isn't required. It's just an added precaution for reliable operation. The older PICmicros may well need this device. You don't need it for an 87x chip.
By just simply ignoring the brown-out circuit and installing resistors
R1 and R2, the circuit operation should be fine.
R1, R2, and R3 must be installed at all times for normal operation. Yes, even if you don't use a brown-out circuit.
If you wish to use the brown-out circuit, it's just added to the board,
and can be either a CMOS or Open Collector type.
You can use the following I.C.'s:
Panasonic MN13811-S (Open Collector)
Panasonic MN1381-S (CMOS)
Other types may also be suitable. These should switch at between 4.2 and 4.6Volts. This is for +5 Volt operation.
Serial Out Jumper block, default connected.
Serial In Jumper block, default connected.
JP1 and JP2 can easily be isolated or reversed, by cutting the tracks on the solder side of the board, and soldering in a 4 pin male header (2x2) to suit. Jumper links, or test links can be used to connect, isolate, or swap over the comms lines. The links horizontal will be the default, the links vertical will swap them over.
Header block for unused gates of the MAX-232. These are spares, but can be useable if jumpered correctly for other handshaking RS-232 lines.
VCC Isolate to 40 pin header J1. Default Isolated. If you wanted to run a target board from the DT106 board via J1, then it may need to have the +5V removed if it had it's own supply, as you can't have two +5V sources connected together.
Used to Isolate the +5V signal on the edge connector from the 78L05 regulator output if it is installed. Both outputs should never be used together. The track on the solder side of the board under JP5 needs to be cut to isolate the 78L05 regulator output. A test link and two male posts are used to reinstall the regulator output.
40 pin header, pin for pin layout compatible with 40 pin Micro.
Also read the notes on the J4 Programming header.
J2: Real Time Clock:
Used for Dallas DS-1302 to get power from a standby battery to it's VCC2.
The Dallas DS-1302 (U8) requires a crystal (X3) with a load capacitance of 6pf. We have these 32.768khz crystals in stock.
Sample code can be found at http://www.dontronics.com/rtc.html
The Real Time Clock control lines can be connected to here. Make sure you don't conflict with other signals used.
Programming header. Default connected through J4 on the solder side of the board.
This header mates with J1, the 10 pin programming Header on the DT001 board, and if a 10 pin header cable is made up with flat ribbon cable, the board can be programmed via this cable. You have to cut the tracks on the solder side of the DT106 board, but make sure you don't cut the earth track (pins 9 and 10) The other 4 tracks can be cut.
This allows the program/run switch on the DT001 board to be used. To return the header to a stand alone controller, 4 Test Links need to be used when the IDC crimp connector cable is removed. These must be placed across header J4, pins 1 and 2, 3 and 4, 5 and 6, and 7 and 8.
This header pinout is the same as the Dr. Russ Reiss Configuration, however a suitable cable can be made up to match it with any ISP programmer.
This allows you to program the board just via a 10 pin flat ribbon cable. If a 40 pin header is used in position J1, then the setup can be effectively used as an emulator. But watch out for pin crossover. If you crimp a 40 wire cable with a .6" DIP connector one end, and a .1" by 2 rows of 20 pins IDC type connector the other, you will find that you need to solder the 40 pin male header onto the DT106 board on the solder side of the board.
Please beleive me that this happens in 99% of cases. I fully stretched the subject out on the PIClist.
User Feedback Notes:
For anyone who wants to test the LCD display using the LCDTEST program on Peter Averill's site (http://www.labyrinth.net.au/~donmck/vicuni/lcd877.html), you have to swap around the rs and r_w I/O lines in the source code. This is the difference between the DT106 board and the PIC004 board. An obvious human error not worth changing back to match the old board.
I noticed that the 2 vias in-between the crystal and the LCD connector could potentially be shorted out if the crystal is mounted flush on the board. The crystal should be spaced off or an insulator used to prevent this.
Loading and Isolation Problems with programming:
Using Slot one of the DT001 board:
The DT106 will program in much the same manner as the DT101 using an 84, however there are some conflicts.
As you have only 30 pins on the Simm Bus, some signals will be missing between the slot 1 DT106, and slots 2 to 7.
These would need to be manually jumpered from perhaps the J1 header to a second DT106 board, if the full signals need to be transferred between SimmSticks.
As the DT106 board has provision for peripherals on RB6 and RB7, which are programming pins, you would eithe need to remove these devices (LCD and JI I/O), or use the programming header principle.
For instance, you could put the DT106 into Slot 2, install the programming header between the DT001 and DT106 board, remember to cut the correct tracks on the solder side of the DT106 board, and you have full isolation of the LCD and J1 header.
Using a stand alone board with a programming header:
Pretty straight forward. You install the header cable, cut the tracks so you have full isolation. You can then connect a 40 wire header cable (on the solder side of the board) off to your target system. This can be any 87x target board. You just pop the 40 pin header into your board. Depending on VCC requirements, you may choose to use JP4 to isolate or extend the power to the target board.
28 pin Skinny Dip:
OK, there is no way you are going to get this matching up via a 40 pin header system, but it's not that hard to do.
1) Crimp a special cable.
2) Use a small vero board to give you a 40 pin input to a 28 pin output with male header pins, and 28 wires., and use crimp connectors in and out. Many variations on this. You are an engineer. I can hear your brain ticking now. :-)
Basically, it will be the same as the PIC004
on a Two Inch SimmStick, with changes and upgrades.
Just got a copy of EPE magazine (UK). It shows a programmer that has provision to program 40 pin .6 Inch 874's, and 877's, as well as 28 pin .3" 873's and 876's. Are these the only DIP sizes that will be available?
If so, a DT106 may well suit both types, as the 28 pin socket can fit inside the 40 pin.
(1-Jul-99 This appears to be correct.)
Are the burning techniques the same as the 84?
If so, standard programmers such as the DT001 can be used without modification. It would just need the file length changed in the programmer software. (15-Jun-99, yes we have done all of this)
Ideally, any new SimmStick should be useable for the Scenix family. I understand the clock in/out is used for programming. Is there anything else I need to know? I doubt if the DT001 will program Scenix chips without modification, but I want at least the SimmStick to be correct at this stage. Hence another reason for the "PAD Solder" clock points.
(1-Jul-99 No, Scenix parts not compatible with 28 and 40 pin devices. Thanks Eric.)
Ian Du Rieu has a good target board interfacing idea for SimmStick:
See the bottom of the DT001CHA page. Peter Homann has another way of doing it.
You would use two DT106 boards, one in slot 1 of the DT001 board, this is the programming slot, and another in the last slot.
The board in slot 1 will have the micro and crystal, and is switched from programming mode to run mode using the on board 4PDT switch. This disconnects the peripheral signals (your custom circuitry) during the programming phase, and adds it to the other slots in the Run mode. The extra signals of the 40 pin device will need to be jumpered with the 20 pin header and flat ribbon cable between the two DT106 boards. This won't be required for 28 pin micros, and certainly isn't needed on the original 18 pin DT101 setup.
The second DT106 board can then be used to jumper your full 40 pins
to a target board via a 40 pin to 40 pin header cable with DIP crimp connectors.
By using the "PAD Solder" method on the clock and +5V lines, means the
clock isn't extended to your target board, and the +5V can be sourced from
your target board, or the Simm bus, again, your choice. It means any PICmicro
flash part can be developed in the actual final circuit board, whatever
that may be.
Have a read over the DT101 method of doing it, if this sounds complex. See: dt001cha.html
One the web page for the DT106 you requested feedback on use of the
18F252 with the DT106. I have tested this sucessfully.
I am running the PIC at 40MHz using a 10MHz resonator and interal 4*PLL multiplier.
Just thought I'd drop you a line regarding the DT106 board and the Microchip
ICD2. I put a header in J4 and made a cable with a RJ11 (RJ12 or whatever)
connector on the ICD2 end and a 5 pin female connector on the DT106 end.
This working great. Just wish that RB6 and RB7 weren't routed to the LCD
connector, maybe port C instead of B, but you know some of us are just
hard to please:-) Anyway lifes great for the time being. Been a while since
I've had the time to fool around with the PIC family. You have a wonderful
operation and I really do appreciate your assistance.
Don, I just purchased a few SIMMSTICK products from Wirz, here in the US. I must say they are fine products. I am in the process of a design that is best suited for the new 16F877 chip. I need the additional I/O and EEPROM rather than many 16F84s. I would like to use your proposed DT106 for this purpose.
Ian Du Rieu 14-Jun-99
> Hi Don,
> Do you know what the story is with the burning algorithm for the PICS?
> I believe they take about 10mS per byte.
> Is it possible to burn in say 1mS increments, testing after each 1mS to
> see if the byte has burnt. The object of the exercise is to shorten the
> burn time during development.
> I recall doing something like this with 2716s in a past life.
Yes I have been there, wrote a lot of burner stuff in the old days.
> wondering if it can be done with PICs. If a full 16F84 takes about 10
> seconds to burn, then a full 16F877 could take about 80 seconds.
I see your point, and it's valid.
Software must also burn only buffer length, burn only changes to the last burn, (you may only be changing a byte) and do it without a verify, all user selectable, that's if all of that is possible.
Now you have to convince the software Authors. :-)
Bits arrived today. Thanks.
I reckon 1 PCB will do both prototype and emulator functions. See attached
JPG. I propose 2 cables for the 40 pin header.
-One to a 40 pin DIP for emulator function. This has GND & all the data lines only
-The other to connect to a prototype rig. This has all pins except xtal
Be nice if the new PCB was a bit taller. Make it easier to get to the reset button.
It appears that having pins 1 & 2 swapped in the 40 pin IDC/PCB transition connector is the norm. Couldn't find any that didn't do this. Didn't have room on the DT202 to fit ZIF & 40 Pin IC socket so used IDC header socket instead.
A note from my schematic...
Lines D6 & D7 connect to the PIC via the load/run switch.
Need to get RB6 & RB7 to this PCB for connection to 40 Pin emulator
Pins 1,2 & 3 are unused on the SimStick Bus.
Connect D6 (socket 2 on DT001) to A1 on socket 1
Connect D7 (socket 2 on DT001) to A2 on socket 1"
Does this sound reasonable?
I think it's a better option than having 2 PCBs as we discussed the
I'll send you a schematic when it's done. Can you read protel for
Your DT106 looks like a winner. DO IT. Especially like the LCD interface.
Project to consider for later:
A 1" cutdown version for 28 pin 876/873.
Maybe only has MAX232, 5V reg and possibly brown out with small proto area. I have a use for a board like that now.
The layout of this board seems to be a huge step in the right direction
with J1 allowing bus connection to off board components and what not.
The LCD and other added items are great. This will cut down the prototyping
time a lot. Only one other possible addition would be to allow connection
on board from other programmers such as the micro-engineering's EPIC +.
A lot of us have investments in other manufactures tools. A simple 5x2 connector would do the job. Great work.
I checked again programming of PIC16F877 with P16PRO and there is no need to change the DEVICE.INI entry for this PIC. If you use programming hardware with only one VPP, then hardware setup must be changed so the VPP and VPP1 are the same (don't change DEVICE.INI). PIC16F877 can be programmed much faster as PIC16F84 with progdelay of 2m seconds (but can also be programmed with 10ms delays).
Bojan Dobaj (Author P16Pro)
7407 Config table:
It was with great interest that I read your latest web page entry on the DT106SMP board. As you know I am already using this board and as far as I knew wasn't having any problems. As it turned out I was. The 'Lock-out' problem as mentioned in my last letter (31/8/99 ) turns out to be connected with the pin 11 isolation problem. After cutting pin11 on both of my boards this fault disappeared. I also had a problem with the green led remaining on whenever the switch on my DT001 was in the LOAD position. The unit seemed to program alright and I put this down to a internal chip thing? This also seems to have been cured, although one of my boards still very faintly illuminates the green led. The F877's on both of my boards are soldered in, so cutting the track to pin 11 was impossible. I simply cut the pin off the chip altogether. The faintly glowing led i'm still putting down to a internal chip thing?
I noticed that you have a suggested hardware setup page for the P16PRO
software. The method I used to get this software to work really was a band-aid
fix to a incorrectly configured hardware setup. I have since restored my
original DEVICE.INI file and changed the Vpp1 setting to D3 instead of
D4 as in my original setup. All works well. To avoid possible confusion
to other/future users of the P16PRO software I suggest my dodgy fix should
Once again your web page has saved the day. Keep up the excellent work and I wish you all the best.
Kind regards Brian Dennis
I "ported" my 16C73 code to the 16F876 simply by making the
1) changing the PROCESSOR directive to 16F876 from 16C73B
2) changing the include file at the top of the source to
16F876.INC instead of 16C73B.INC
3) disabling LVP and DEBUG in the config word (As Andy stated,
you cannot used the same CONFIG word.)
Other than the items above, I made no changes to source code.
Oh, and don't forget, that if you have a home brew programmer, you
need to place a pull down resistor of about 10K on RB3 to prevent
it from going into low voltage programming mode the first time you
program it since they factory default is to have LVP on.
Just discovered a gremlin with the DT106 & Picallw.
DT106 with 16F877 installed. Ribbon cable from DT106 to target PCB where it connects to to target PIC's socket.
Target is a 16F876, but the problem should still be there with an 877 target.
I'm using PicallW to drive the DT001/DT106 programmer.
I was getting program failures, mainly during the burning of the fuses, but also occasionally at the start of burning the main code.
What's happening is that the DT001/PicallW switches +5 on & off to the PIC several times during the burning process. My target board was powered up & was back-feeding volts to the PIC via various I/O lines & the clamp diodes, causing the PIC to misbehave. The fix was to set VPP & VPP1 to 7 with Negate checked. This keeps the PIC powered up all the time & the problem ceases to be.
The relay mod I did to the DT001 so that I don't have to flick the load/run switch at every burn works 100%. So it now takes just 1 key stroke on the IBM to reload the data file & burn the PIC :)
You said in an earlier message you'd seen correct signals on pins - did you count the pulses off the CRO screen, and compare with the Microchip EEPROM Memory Programming Specification, document DS39025E? Checking pulses with the probe on the IC legs will confirm if your programmer hardware and software are working correctly together, whether the right volts and pulses are getting to the right pins at the right time. But probably requires a storage oscilloscope - if you're in Perth and you don't have access to one, email me direct, I do. The Microchip spec is available for download from their site, and also includes how to map ID, configuration, and EEPROM data memory bytes into your hex file:
User program is locations: 0x0000 to 0x1FFF (8K for 16F877)
4 ID words are locations: 0x2000 to 0x2003
Configuration word (fuses) is location: 0x2007
Data memory is locations: 0x2100 to 0x21FF (256 bytes for 16F877, one byte per address, LSB aligned)
Something that gave trouble when I first programmed on DT001/106 was the 5V supply to the PIC. This is switched on and off at high speed by the Propic software I was using. However, the voltage took a significant number of microseconds to ramp up to 5V, it had to charge the big supply capacitor C12 on the DT106 board. So the first few clock and data pulses had been and gone before the PIC was powered up properly, it wouldn't program. Removing C12 solved the problem.
OutData Clock Vdd Vpp Vpp1 Data In
(x) D0 ( ) D0 ( ) D0
( ) D0 ( ) D0
( ) D1 (x) D1 ( ) D1 ( ) D1 ( ) D1
( ) D2 ( ) D2 (x) D2 ( ) D2 ( ) D2
( ) D3 ( ) D3 ( ) D3 (x) D3 (x) D3 ( ) ERROR
( ) D4 ( ) D4 ( ) D4 ( ) D4 ( ) D4 ( ) SELECT
( ) D5 ( ) D5 ( ) D5 ( ) D5 ( ) D5 ( ) PAPER END
( ) D6 ( ) D6 ( ) D6 ( ) D6 ( ) D6 (x) ACK
( ) D7 ( ) D7 ( ) D7 ( ) D7 ( ) D7 ( ) BUSY
( ) Neg ( ) Neg (x) Neg (x) Neg (x) Neg ( ) Neg
< Cancel > < OK >
As requested, some text explaining the MPLab adaptor is below. Please feel free to modify as you require :
Connecting the Microchip MPLab-ICD firmware to the SimmBus can be readily
achieved by an easy mod. to a DT106 board. The connection requires fitting
an RJ12 modular socket to the pcb, and as it happens, there is a suitable
group of pads on the board that make this straight forward. The modification
allows two alternates for code development : with the ICD cable attached
the MPLab-ICD can be used, or the DT106 can be used normally and, through
the RS232 on a DT001 or DT003, access third party software such as MicroCode
Studio Plus. A zif socket makes PIC removal easy. The ICD uses ports B.6
and B.7 of PIC 28 and 40 pin flash parts. If these ports are going to be
used by external circuits, they have to be isolated
from the bus for ICD use. Alternatively, they can remain connected to the bus but not used. The photographs shows the isolated version, with links brought to the top of the board for easy access. The pads used for fitting the RJ12 socket (shown on the left of the photograph) were U7 pins 1,2 and 3; and U2 pins 3, 4 and 5. For mechanical strength, it is best to leave the locating plugs on the socket, drilling matching holes in the pcb and, after final assembly, gluing the socket to the board (plastic modelers cement is suitable). Drilling the holes is a bit of a challenge as they break out past the edge of the board. (Drill smaller
holes in the correct position and then carefully file so the plugs on the socket will fit - some glue will fix up any mishaps).
To isolate the RJ12 pads noted above they have to have all the tracks to these pads cut on both sides of the pcb. After assembly, track cutting requires that two connections have to be rewired (wirewrap wire is a good choice) - port B.0 to 40 pin header pin 16, and C.7 to header pin 30. In the photograph, the following DT106 parts have been used : R1, R2, R6,
Res, C11, C12 and C14, and on the solder side, C13 and R3. The other components were the zif socket, 40 pin header and two 90 deg headers and links. The RJ12 connections used wire soldered between the socket and the following :
RJ12 pin no. 1 2 3 4 5 6
PIC 40 pin no. 1 Vcc Gnd 40 39 NC
The headers used the isolated pads of J2 (for B.7) and JP4 (for B.6). The wiring required for this is tedious to describe, but easy to accomplish using the tracks and vias on the board. Tip : check your assembly sequence before you start work.
Don - I hope this is OK
Copyright © 1996-2006 Dontronics
|Top of Page|