LINKS TO OTHER INFORMATION
How do I get started with my embedded controller?
Run your favorite telecomm program on your PC. Telemate works well with our products. Configure the telecomm program for 9600 baud, no parity, one stop bit, no line wrap. Hardware handshaking and software flow control should be disabled.
Connect the 9-pin "D" end of a ribbon cable to the serial port of your PC. Connect the other end of the cable to the console port on the JK microsystems single board controller console port. Pin 1 on the dual 10 pin header should be up.
Power up the board. A message similar to this should appear on your screen:
JK Microsystems Flashlite Bios Version 1.3
JK Microsystems Embedded DOS Version 3.3a
(C) Copyright HBS Corp and JK Microsystems, Inc.
1991-1994, All Rights Reserved
Specified filename invalid
The message "specified filename invalid" indicates that there was no file named STARTUP.BAT, STARTUP.COM, or STARTUP.EXE found on drive B. At the prompt, you can now do a DIR of drive A and drive B.
Unzip the Utilities Disk file BASIC.ZIP and copy the file BJ.BAS to the upload directory on your PC.
To upload the program into the Flashlite, run the program UP.COM from drive B. At the prompt, enter BJ.BAS, press return and start the upload with your telecomm program.
Type Load BJ and the Run. A blackjack program in Tiny Basic will run. To exit blackjack, press Ctrl-C. To exit Tiny basic, type SYSTEM.
After you are finished with the demo programs on drive B, you may erase them to provide space for your development work.
I'm having trouble communicating with my Flashlite, what should I do?
To check test everything except the Flashlite, unplug the console cable from the Flashlite and connect pins 3 and 5. Verify that characters typed at the PC keyboard echo on the screen. If the characters do not echo, there is a problem with your setup. If the characters echo, you should be able to communicate with the Flashlite. If you experience trouble downloading, verify that the Carrier Detect signal (pin 1 on the DB-9 connector) is at least +3 volts into your PC.
How do I configure HyperTerminal to communicate with my SBC?
See our tutorial on configuring HyperTerminal.
How can you run DOS without disk drives?
We place an image of a disk drive into a flash memory chip. The image has the same logical structure as the physical disk. The Flashlite BIOS then translates head/track/sector addressing used for a physical disk into segment:offset addressing used by the flash chip.
How are the flash disks laid out?
On the 8MHz Flashlite-V25, chip U2 contains the BIOS and drive A, chip U3 contains drive B. Drive A is reserved for DOS and utilities that come with the Flashlite board. Since altering the structure of drive A might corrupt the DOS image, drive A is read only. Drive B is read/write and all of it is available to the developer. On the 10MHz V25 and the 386Ex Flashlites, a single chip is partitioned to contain the BIOS, drive A (read only) and drive B (read/write).
Will the flash memory wear out?
Not if you understand and observe it's limitations. The SST flash chips are amazingly durable and we have never worn one out. Nonetheless, it is still important to observe good engineering practice in the use of the flash storage. We recommend that the flash drive be used for program storage and infrequently changed parameters. We suggest that you contact us if your application requires frequent flash disk writes. Flashlite boards used for development and having many write cycles should probably not be shipped to customers.
How can you run DOS without a video adapter and IBM style keyboard?
With more trickery in the BIOS. All of the translatable BIOS calls to the video adapter are redirected to the serial port 0 transmitter. Likewise, all of the characters that the serial port 0 receiver gets are presented as keyboard output by the BIOS. Normally, for program development, the JK microsystems single-board controller is connected to the serial port of a PC and a telecomm program such as Procomm is run. With the telecomm program in terminal mode, the PC becomes the SBC's console.
How do I get my programs into the flash drive?
Easy, from the telecomm program run the Flashlite utility UP.COM. It will prompt you for a filename. Enter the name of your program and press Enter. Next, initiate an upload with your telecomm program, usually by pressing Pg Up. Your telecomm program will prompt you for a protocol and a filename. Enter X-Modem and the filename and the program will be uploaded into drive B.
My program is pretty large, is there a faster way to transfer it to the SBC?
The console on port on all of our products will communicate at 56k baud without problems. Below are examples of how to change the port speed on both V25 and 386Ex based SBC's. Note that SBC will still boot at 9600 baud every time. The utility can be placed in the STARTUP.BAT file and automatically executed. IMPORTANT: When attempting to break the startup process on 386Ex systems, the CTRL-C characters must be sent at 9600 baud.
For the Flashlite-V25, the baud rate is determined by the following equation:
baud = fclk / (2^(n+1) * G)
where fclk = 10E6 (cpu frequency)
n is a user value in the serial control
reg (0 to 8)
port 0, SSC0 at F000:FF69
port 1, SSC1 at F000:FF79
G is the baud rate divisor in the baud rate generator reg (2 to 255)
port 0, BRG0 at F000:FF6A
port 1, BRG1 at F000:FF7A
so for 9600:
or for 56k:
The console is on port 0.
The 56K_V25.COM utility (written with debug) will change the console port to 56k. The listing follows:
1438:0100 B800F0MOVAX,F000 1438:0103 8ED8MOVDS,AX 1438:0105 B016MOVAL,16 1438:0107 A26AFFMOV[FF6A],AL 1438:010A B8004CMOVAX,4C00 1438:010D CD21INT21
For the Flashlite 386Ex (or other boards based on the Intel 386Ex processor) the baudrate equation is:
divisor = 115200/baud
The divisor is a 16 bit integer value.
for 9600 the divisor will be: 000Ch
or for 56k the divisor will be: 0002h
When changing the divisor in the 16450 UARTs, the divisor latch bit must be set, then the divisor is written, and the divisor latch is cleared. The divisor latch is bit 7 of the Line Control Register, located at the bas address+3 (03FBh for COM2). The low byte of the divisor is written to the base address, the high byte is written to base+1.
The 56K_386.COM utility (written with debug) will change the console port to 56k baud. The listing follows:
15AE:0100 BAFB02 MOVDX,02FB
15AE:0103 EC INAL,DX
15AE:0104 0C80 ORAL,80
15AE:0106 EE OUTDX,AL
15AE:0107 BAF802 MOVDX,02F8
15AE:010A B002 MOVAL,02
15AE:010C EE OUTDX,AL
15AE:010D BAFB02 MOVDX,02FB
15AE:0110 EC INAL,DX
15AE:0111 247F ANDAL,7F
15AE:0113 EE OUTDX,AL
15AE:0114 B8004C MOVAX,4C00
15AE:0117 CD21 INT21
Another alternative when using systems with ethernet is TFTPD.ZIP. A server runs on the JK microsystems board and a client is used on the development system. Free TFTP clients for most operating systems can be found on the internet.
What kind of DOS does the Flashlite use?
The DOS was written by Thierry Giron of HBS. It is largely compatible with Microsoft DOS 3.31 or IBM PC-DOS 3.3. We have the source code to the DOS and will provide software support for our Flashlite customers.
Where did you get the BIOS?
We wrote it, in Masm. To our knowledge, we were the first to bring up DOS on a V-25 chip. As a result we have a good understanding of the workings of the V-25 and how they relate to DOS.
Are the serial ports registers compatible with the PC?
For our Intel 386Ex based products, they are.
For the V25, unfortunately they are not. However, we do have a full-featured driver for the serial ports that is callable from Microsoft high level languages. The driver supports data rates from 110 to 115.2k baud, selectable stop bits, data bits and parity, and has a buffered, interrupt driven receive function. COMM.ZIP contains the driver in Masm .ASM and linkable .OBJ files.
Can I develop my applications in Quickbasic?
Most definitely. We have done major applications in Quickbasic. They were completed quickly and performed well. Be sure to observe the console I/O guidelines in the products User's Manual.
Do you have information to help me program the LCD?
See our LCD tutorial.
Do you have information about programming in 'C'?
See our C programming page.
How do you start a project using the Borland Integrated Environment?
I'm having troubles configuring ports A, B and C on the Flashlite 386Ex.
Ports A, B, and C are all controlled by the 82C55 peripheral interface chip. See the 82C55A Programmable Peripheral Interface Data Sheet for the exact meaning of the bits in the control register. The control register is located at port 63h. A word of caution, any time the 82C55 control register is writen to, any output bit that is in the ON state will be turned OFF. This is a feature of the silicon aimed at protecting outputs from driving unknown loads that could possibly damage the chip.
I'm using a Flashlite 386Ex and my application needs 2 serial ports. Can I disable the Console?
After the application is loaded on the Flashlite 386Ex, run QUIET. QUIET will disconnect the console from the serial port leaving it available for applications. Once QUIET has been run, the Flashlite will not transmit (or receive) any characters. The only exception is durring the first second of startup when the BIOS looks for a CTRL-C on the port. If a CTRL-C is received, none of the initialization batch files are processed (AUTOEXEC.BAT or STARTUP.BAT) and the console will be active (quiet mode ignored). In order for the console to remain enabled, NOQUIET must be run. Both QUIET and NOQUIET are located on drive A of the Flashlite 386Ex. QUIET can be placed in the STARTUP.BAT file, but it need only be run once.
QUIET can be used on several of JK microsystems single board controllers.
Can you help me locate the Intel App. Builder?
Apbuilder is a useful utility for 386Ex development written by Intel. Apbuilder generates C and assembly code snippets for configuring all of the on-chip peripherals on the 386Ex microprocessor.
Can you recommend a TCP/IP stack that works with your products?
We recommend WatTCP. It's free, it works well, and our web server uses it. WatTCP source and libraries are available at www.wattcp.com. We have put together a guide Getting Started with WatTCP (16K) for WatTCP and our embedded ethernet enabled products.
Where can I learn about the PC architecture?
There is a lot of information available on the Internet and in print. Areas of interest generally include UARTs and Interrupts. Unfortunately much of the printed material is no longer available. The HelpPC Reference Utility is a handy tool. Also see our Links page for other information about interrupts and interfacing to the PC architecture.
How hard is it to interface to the processor bus?
It's very simple. For I/O devices, just decode the lower 9 bits of the address bus and logically AND the decode with IORD/ or IOWR/. Use the qualified IORD/ or IOWR/ to strobe data out or latch data in, respectively.
If you are not concerned about future compatibility with our expansion products, you can simply decode as few of the address bits as your I/O device requires.
For memory expansion, there is an unused 256k byte space between 80000h and CFFFFh. You may use all of it if you are not concerned about compatibility with our future peripherals. We reserve the upper 8k (CE0000h to CFFFFh) for future products.
Decode the full address that you need and qualify it with MREQ/, MSTB/, and RW/. Details are in the V-25 User Manual.
What if I need help with my design?
Give us a call and let us connect you with the JK Alliance. This growing network of independent contractors provide experienced system integration and development services available to assist in your project completion.
My application requires more features than available on one JK microsystems board. Do I need to look elsewhere?
No, all of our embedded controllers are expandable, giving our single-board computers the flexibility to meet your needs. Check out our peripheral boards and accessories.
Do you supply schematics?
Schematics are included in the development kits and peripheral kits for most of our products.
Where can I get data on the flash memory?
The Flash chips are made by SST. See our Documentation page for information on other components used in our products.
My controller is unstable driving inductive loads.
See our application note regarding design concerns when driving inductive loads.