|Home||Products||Prices||Site Map||Order||Contact||What's New||Books||Free Files||Links||FAQ|
|Bottom of Page|
I built a minimalist DT102 today - OK, stop laughing for a minute I know, it's crazy - who would do such a thing? But, since I did, here are two issues:
1. The notes from Claudio about adding wires to allow for programming the PIC in a DT001 say to connect IC1 Pin 5 to Bus pin 8 (RES). This should be : connect IC1 Pin 4 to Bus pin 8.
2. The schematic appears to have the wrong wiring listed for J4. If you are going to connect something to J4, check the signal connections first.
If figure the web says Don
has 950+ DT102's in stock so we have to hope somebody eventually buys them
- and when they do, they will want to know this.
BTW, the minimalist board I put together uses just 3 resistors, a resonator, a 10K variable resistor, 4 wires links, and 4 jumper wires. With the PCB, the PIC, and the LCD, it probably cost a total of about $9 USD
The Dontronics DT102 PCB has been designed on a 2.5" SimmStick platform, and is same size as the DT205 Relay board.
It has provision for six "Hat Key" type push button switches, and a standard 2 by 14/16 LCD. The board is designed for the Truly brand LCD, however many others will fit the standard 14/16 pin header strip provided. Pins 15 and 16 are normally for back lite type displays, however some standard displays, like the Truly brand, have the extra holes, as they use the same artwork pattern for both types of displays, even though the extra two holes aren't used.
Mounting holes are provided for the Truly display which mounts via female/male header pins on the component side of the board, and above components such as the PIC16F84 micro. Yes, the micro will fit in a socket if need be, right under the display. The display is very simply removed.
Two RJ-45 connectors allow RS-485 communications via an 8 wire standard cables. Two jacks means RS-485 can be used on multiple connections or drops. These RJ-45 PCB mount jacks need to be mounted on the solder side of the board.
Also on the solder side of the board, you will find a spot to mount a 5 pin DIN PCB connector, same as the one in your standard PC. This allows an "AT" type keyboard to be plugged in as an alternative to the 6 push button switches.
Max-232 and single wire comms will be catered for to some degree. Details to be available in the future.
Configuration jumpers for various programmed feature selections.
On board Piezo buzzer
PIC16F84 4Mhz crystal or resonator operation. (PIC16C61 and others can be used)
LCD contrast control.
Powered from RS-485 bus or SimmBus.
Power ON LED
Debugger LED and link. (RS-485)
Termination resistor and link. (RS-485)
On board +5V regulator and support circuitry.
Special notes regarding the circuitry used.
The keypad matrix uses a technique described on the microchip website. http://www.microchip.com/10/Appnote/Category/12CXXX/Logic/4_012/index.htm
Configuration jumpers ( J4 ) use another multiplexing technique. Essentially when the PIC needs to read the configuration jumpers the i/o port is configured to be an input and the 'E' ( RA2 ) pin is configured to be an output with a logic low. The configuration information is then obtained by reading the appropriate input ports. The resistor pack bias resistors ( RP1 ) for the configuration jumpers are needed to prevent any interaction between the normal functions of the i/o lines and the configuration jumpers.
In 'normal' operation ( when not reading the configuration jumpers )
either the PIC or the LCD would be driving the i/o lines. The bias resistors
common line is connected to the 'E' ( RA2 ) line to make sure that the
voltage levels are present on the i/o lines during all phases of operation.
There are three possible hardware interfaces for the serial communications to and from the DT102.
At the time of writing, software isn't available to make use of the
"AT" keyboard input, however code can be found at Steve Lawther's site
This may need to be re-configured to suit the DT102 board. Code can also
be found at Mauricio Culibrk's site at: http://www.arne.si/~mauricio/PIC.HTM
Steve Lawther's "AT Keyboard/LCD" Schematic
Other Software will be available and full details will be announced
in the near future;
Here are some of the specifications:
LCD software specs.
Functionally similar to Peter Andersons http://www.phanderson.com/PIC/ser_lcd_kit.html
Baud rates either 2400 or 9600, jumper selectable.
Either rs232/rs485/logic, jumper selectable. ( 485 and logic may be in second release )
Addition of 6 way keypad and ability to read from keypad and from LCD.
Will use 'spare' function codes among the 'FE' sequence to access.
Read / Write to EEProm.
Self test mode ( pressing particular keys on reset enters test mode )
Demo test software to run on PC?
Dontronics now have dealers in many countries. These dealers can be
1 by DT102 PCB
1 by 7805 IC4 +5 Voltage regulator (Optional)
Serial Communications RS-232: (Optional) 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 IC3 (or equivalent)
When using the DT102 in a simmstick bus talking to another simmstick, don't fit the rs232 chip, it won't work! Unless you swap the rx and tx data lines. Just fit J3 and J5 and a simmstick cpu board will talk direct to the DT102 at ttl levels. RS232 works OK as stand alone and is OK if no simmstick cpu board fitted. It may also pay to install a 16 pin socket for the Max-232, as you may have to remove it for some configurations.
1 by Capacitor C5 100uf/25V Electrolytic (Power Supply) 1 by Capacitor C6 100uf/25V Electrolytic (Power Supply) 1 by Capacitor C7 .01uf (or .1uf) Ceramic (Power Supply) 1 by Capacitor C8 .01uf (or .1uf) Ceramic (Power Supply) 1 by Capacitor C9 15pf to 22pf Ceramic (Install only if Crystal is installed) 1 by Capacitor C10 15pf to 22pf Ceramic (Install only if Crystal is installed) 1 by Capacitor C11 .01uf (or .1uf) Ceramic (Reset cct)
1 by Resistor R1 1K .25 watt (Reset cct) 1 by Resistor R2 15K .25 watt (Reset cct) 1 by Resistor R3 10K .25 watt (Comms Pullup) 1 by Resistor R4 470 .25 watt (Clock cct) 1 by Resistor R5 1K .25 watt (Comms cct) 1 by Resistor R6 680 .25 watt (for RS-485 comms) 1 by Resistor R7 1K5 .25 watt (for Power LED) 1 by Resistor R8 xxx .25 watt (Value to be calculated for Back lite LCD) 1 by Resistor R9 120 .25 watt (for RS-485 comms) 1 by Resistor R10 10K .25 watt (For Backlite switch) 1 by Potentiometer RV1 10K Center Tapped. (Brightness LCD)
1 by 6 pin Resistor network (5 by 2K2) or 2.2K This is used for the configuration Jumpers at JP4. The value used is fairly critical as there are a number of different run time configurations due to the various ports driving these lines. This bus is between the PIC and the LCD. J4: Pin 1-2 is A, 3-4 is B, 5-6 is C, 7-8 is D, and 9-10 is E.
1 by 1N4148 Diode D1 (Reset Circuit) 1 by 1N4148 Diode D2 (Small Keypad) 1 by 1N4148 Diode D3 (Small Keypad) 1 by 1N4148 Diode D4 (Small Keypad) 1 by 1N4148 Diode D5 (Small Keypad) 1 by 1N4148 Diode D6 (Small Keypad) 1 by 1N4148 Diode D7 (Small Keypad) 1 by 1N4004 Diode D8 (Power In from SimmBus) 1 by 1Nxxxx Diode D9 (Not Used, incorrect label) 1 by 1N4004 Diode D10 (Power In from RS-485 bus)
1 by LTC485/Max-485 IC2 (Max-485 Comms) 1 by BC-548 Transistor (for LCD back lite switch) 1 by Piezzo Buzzer B1 (Optional) 6 by "Hat Key" type push button switches (Small keypad)
1 by 5mm LED For LED1 Power indicator. 1 by 5mm LED For LED2 RS-485 debugger.
1 by 5 pin DIN type PCB mounted connector for AT Keyboard installation. 1 by 5 pin PS@ type PCB mounted connector for AT Keyboard installation. (Optional and you can't install both types)
2 by RJ45 PCB mount connectors RJ1 and RJ2. (Max-485 comms)1 by PIC16F84F84-04-P (IC1) Micro. (many other 18 pin PICmicro's and various speeds will suit)
1 by 2x16 line Truly brand LCD. The DT102 board is designed for the Truly brand LCD, however many others will fit the standard 14/16 pin header.
The rest of the components are made up of single and dual line headers
for control and I/O.
Used to connect the RS-485 comms debugging LED
A test link and two male posts are used for this.
Installing a link in J2 allows the DT102 board to supply the +12V PWR to the Max-485 bus.
J3, J5, and J6:
Used to connect or isolate TTL comms signals to the SimmBus.
Has a 1 by 6 pin Resistor network (5 by 2K2) or 2.2K
This is used for the configuration Jumpers at J4.
The value used is fairly critical as there are a
number of different run time configurations due
to the various ports driving these lines.
Pin 1-2 is A, 3-4 is B, 5-6 is C, 7-8 is D, and 9-10 is E.
Connection point for Max-232 Comms to the outside world. Could be used to connect a DE-9 type connector.
Links installed selects the small keypad signals. Not installed allows the AT keyboard connectors access.
Connects ground to LCD pin 16 for back lite displays.
Connects power to LCD pin 15 for back lite displays.
Installs a terminating resistor for RS-485 comms.
Function of D10
Almost the opposite description of D8. J2 pads can be used to short out D10, so that power can be fed from the SimmStick bus to the RJ-45 bus. If power is fed up the RJ-45, then D10 can be shorted out with a wire link.
Not wanting to dampen any enthusiasm :)
1. Holes for 1N4004 diodes are too small (at least the diodes
I had) D8, D10
(Now enlarged, design fault)
2. Holes for RV1 are too small to take an open frame trimpot, though they would probably fit with a more expensive cermet type trimpot
3. Holes for J2, J3, J, J6, J9, J10 are too small to take standard
square jumper posts. Also, the spacing between the two posts on each
of these jumpers are a than .1" apart, so I had to break apart header strips
to fit them in. Standard shorting jumpers don't fit, so I wire wrapped
Circuit designer feedback:
All of the jumpers mentioned are what I would consider 'build time' configuration jumpers. I wouldn't expect anyone to need change them after construction, wheras the jumpers that can take the 0.1" header are 'run time' jumpers. YMMV
Bloke what was responsible in some part for all of this! <grin>
Other than that, I hope to finish the Atmel link tonight. If I can find a digital camera, I will send a pic.
Sage Telecommunications wrote:
> Just out of interest did you guys actually get an RJ45 from Jaycar? The
> samples that I sent were from Altronics. I checked the Jaycar catalogue and
> there is no specs for the RJ45 connecters that I can see.
> The Altronics RJ's have the same footprint as Molex, which is pretty much a
> standard footprint.
> And both the right angle and 'straight' RJ45's had the same footprint.
> The odd one out appears to be the Jaycar one!
Yes, I did go to Jarcar and get them, I have been assured that the footprint
has changed since I got them. Good old Jaycar!
(These are Australian companies, however Rod has mentioned that Molex has the same footprint.)
The following distributors have RJ45's with the same footprint as the
Altronics samples used for the DT102 PCB layout.
XON / Prospec part number is TS2K88
Farnell part number 257-102
Molex part number 95009-2881
Don, just my .02 $ about DT102.
I find it very flexible to accommodate many different projects, but
can't be used for direct programming on DT001 due to a lack of connection
to the simmstick bus. Let me solve this problem.
(for future AT/PS2 keyboard interface software needs)
c9, c10 capacitor 15pf
RV1 10K pot
R1, R5 wire jumper
C11 not install
D1 not install
jumper from J5.1 to J3.2 and J3.1 to J5.2
( to use MAX232 installed on DT001/DT003)
wire from simmbus pin7 to VCC
(VCC from simmbus)
from simmbus pin8 to IC1.5 (MCLR)
from simmbus pin21 to IC1.12 (RB6)
from simmbus pin22 to IC1.13 (RB7)
Here is 84dt102.zip (3K) in order to check
the circuit just for output (RS232 to LCD). As soon as I can I will send
you also the AT Keyboard to RS232 routine. If you think it will useful
for some your customer you can put it on your WEB.
ciao Claudio Rachiele IW0DZG
Don, as I promise you here I am again to give you a snippet ( non
really a snippet, 1447 lines of code!) to test the DT102 with a PS2/AT
IBM Keyboard. Why a test pgm and not a really terminal pgm? As you
know very well IBM Keyboard just output a scan code when a key is pressed
and another code when the key is release. The PC BIOS with the OS, according with the keyboard
definition file (i.e. Keyb.IT for italian keyboard in DOS) translate the scan code in the ASCII character and use the function keys to move the cursor. So the code for a real terminal depends of the application you need.
HARDWARE PROBLEM: Clock and data from keyboard are OPEN COLLECTOR
need to put two 4K7 tie-up resistor, one from RB0 to VCC and the other from RB1 to Vcc. You can put them on the back of DIN/miniDIN connector or under the 16f84 from pin6 to pin14 and from pin7 to pin14.
I haven't tried this solution but as the
16F84 ( and a lot of other pin
compatable PIC's ) have a s/w configurable pull up resistor for port B the
hardware error is actually a software configuration error! Just enable the
port b pullups on the PIC and don't need to worry about hardware mods.
Rod Egan 13-Dec-99
I modify a pgm founded on the WEB to fit the different HW of DT102 and I test it on LM52L 16x2 LCD that fits the DT102. This code can be used to view the data between an AT keyboard and computer.
The LCD will show on the top line, the codes on the keyboard bus, and on the lower line, a decoded version of the code i.e. ASCII character for printable characters, or a 2/3 character description of non-printable codes according to the IBM US Keyboard layout. The display scrolls right to left, as the codes are received. The program is receive only and would require extra code if wanting to send data to the keyboard, i.e. to set the CAPS LOCK / NUM LOCK / SCRL LOCK LEDs.
Source code is very big and complex then I send you only the .HEX
ready to be programmed on
Download keydt102.zip (2K)
ciao Claudio Rachiele IW0DZG
I've just finished writing an RS232 terminal program to run on the DT102, which I think may be of interest to you. It runs on a 10Mhz PIC16F84. It supports the AT keyboard interface, and requires a 16*2 LCD. Here is a list of features:
* Software selectable baud rate of 300, 600, 1200, 2400, 4800, or 9600
* Interrupt driven, true full duplex RS232 engine
* Recognizes CR, LF, FF, BS, VT, and BEL control codes
* Software assignable function keys
* Use with on-board keys or external AT keyboard
* All settings stored in EEPROM
To enter configuration mode, hold down SW1 and SW6 during power up. The top line of the LCD will show a version number, and the lower line with show the currently selected option. The options are:
* SW1-SW6 - ASCII value assigned to each of the switches. The value is shown in hexadecimal and in char form on the display. When using an external keyboard the function keys F1-F6 will also be assigned these values.
* Baud: - Currently selected baud rate. Can be 300, 600, 1200, 2400,
or 9600. Default is 9600.
* Timer: - This is the timer reload value used by the interrupt service routine. This can be used to fine tune the baud rate, and is mainly for debugging purposes. ***Don't mess with this unless you know what you are doing. Default value is CFH.
* INT/EXT keyboard select. INT selects SW1-SW6 which can each be assigned an ASCII value. EXT selects the external AT keyboard. Default is EXT.
The onboard switches perform the following functions in configuration mode:
* SW1 - Option Down
* SW2 - Option Up
* SW3 - Value Down
* SW4 - Value Up
* SW5 - Exit without saving
* SW6 - Save settings in EEPROM and exit
* With an AT keyboard the CAPS LOCK will perform like a SHIFT LOCK. Also pressing any of the shift keys will release the CAPS LOCK, like an old style typewriter. The CAPS LOCK LED on the keyboard is not supported currently.
* Only the typewriter portion of the AT keyboard is supported. None of the numeric keypad or cursor control keys are recognized.
* The CTRL and ALT keys are not recognized. However control codes can be assigned to the function (F1-F6) keys.
The program is copyright, however I am granting permission for private (non-profit) use on the understanding that it is provided AS IS. Commercial use is prohibited without my express written permission. If you decide to put the binary up on your page please mention this disclaimer.
It is an extremely tight squeeze to fit all of this in a 16F84. Literally every single byte of program and data EEPROM memory is used, so the addition of more features may prove difficult. Still, I think it has enough features to be quite useful. Let me know what you think. I'd also like feedback as to any bugs/ improvements, etc. I haven't yet tested it on all baud rates, so if someone has the time to do so, it would be appreciated.
BTW, as Rod Egan commented, pullup resistors are not needed for the
AT keyboard. This program uses the internal pullups. One thing I will say
about the DT102 though; The RS232 TX and RX lines are on the same simmstick
bus auxiliary lines as other (microcontroller) simmsticks. Since the most
probable use of this device is to communicate with another simmstick, it
would have made more sense for them to be the other way around. Perhaps future versions of the DT102 should have links to set this.
I may consider releasing the source code in the future if there is enough demand, and once I'm satisfied that it is stable. Anyway, for now, the hexfile is attached. (See Below)
I've decided to release the source code for the terminal program I wrote for the DT102 (attached). You're welcome to put it up on your page if you like. There were a couple of people on the PIClist asking for some source for an interrupt driven RS232 routine a couple of weeks ago. The RS232 engine in this program might be useful to them and others. Usual disclaimer applies.
newterm.zip 12K Both hex and source.
|Home||Products||Prices||Site Map||Order||Contact||What's New||Books||Free Files||Links||FAQ|
Copyright © 1996-2006 Dontronics
|Top of Page|