|Excellence in Analog & Digital Electronics|
2900-1 Crescent Drive
Tallahassee, FL 32301
(850) 942-7905 voice
(850) 942-7905 fax
Tech support: firstname.lastname@example.org
|What can the Chickadee be used for?return to top
The Chickadee can be used for a wide range of machine control, process control, data logging and monitoring applications. It excels in applications where:
The list of applications in which the Chickadee is used is growing. So far the Chickadee is controlling and monitoring telescopes, irrigation systems, chemical process instruments, air compressors, and laundry processing equipment.
How do I store my application program on the Chickadee?return to top
Your application program goes into the ROM/flash memory socket on the Chickadee. Assuming your compiler produces a DOS .EXE, there are two ways to put your program into ROM/flash:
What programming languages can I use with the Chickadee?return to top
The Sunflower C libraries that come with the Chickadee are written in Borland C v3.0. Full source code is included. Some modification of source code may be necessary for use with Microsoft or earlier/later Borland C compilers. The source code adheres to ANSI C, with the exception of inline assembly directives (#asm) and register pseudo-variables (_AX, _BX, etc.).
Chickadee XL users: we now have a language-neutral software interface integrated into the BIOS, where calls to a software interrupt will access special BIOS extensions to operate all Chickadee hardware. This allows any language supporting software interrupts to access Chickadee hardware without the need to link in foreign code modules. This also reduces the size of the .EXE.
How do I develop and debug my application program on the Chickadee?return to top
You can put debugging printf( ) messages in your code to output to the serial port, LCD, or an I/O port. You cannot use Turbo Debugger Remote since it requires 100% PC-compatible hardware.
Why aren't PC-compatible interrupt controllers, DMA controllers, and timers used on the Chickadee?return to top
When the first PC's were made, they used individual chips with special functions: the 8259 interrupt controller, the 8237 DMA controller, and the 8253 counter/timer. The standard PC architecture was built around these chips. When Intel designed the 80C188, the idea was to integrate these functions into the CPU. However, they did not use a design that was compatible with the PC! Later, several chip companies decided to integrate these functions into a single chip called "core logic". Unfortunately, long-life embedded designs cannot use these core logic chips because the latter have production lifetimes of less than a year, due to the rapid pace of PC technology. It is still possible to build a PC-compatible computer from the original chips, but the size and power consumption would make it unsuitable for most embedded applications. To obtain lowest cost, longest production lifetime, and smallest size, we chose to use the 80C188 with its built-in core logic.
What is the maximum sample rate of the ADC?return to top
The ADC is interfaced to the CPU by a serial bit-bang interface. The maximum sample rate is dependent on the CPU speed. An 8 MHz CPU can achieve a sample rate of about 2 kHz. A 25 MHz CPU can achieve a sample rate of about 6 kHz.
Why would I need the galvanic isolation option for the second serial port?return to top
If you are using the Chickadee to control a machine or process that runs on a different power circuit than the equipment connected to the Chickadee serial port, you may have problems with grounding. Industrial building wiring with differing ground potentials can be especially problematic. Galvanic isolation eliminates grounding problems by electrically isolating the circuits. The serial data lines are passed through opto-isolators and the serial transceiver circuitry on the non-isolated side is powered by a DC-DC converter. Galvanic isolation may also be needed when using RS-485 multi-drop networking.
How do I program flash memory for the Chickadee?return to top
If you are using Chickadee XL, the BIOS has a flash read/write interface which is used by the DOS-ROM file system, so no explicit action is required to program flash memory other than opening, writing, and closing a file. If you are using the Paradigm LOCATE tools, you must make calls to the flash routines in the Sunflower C library. These routines do not support a file system; you simply read and write physical blocks of flash memory.
How do I connect the Chickadee to an opto rack?return to top
Using our JP11 cable, you simply connect one end to the JP11 header on the Chickadee, and the other end to the 25x2 header on the opto rack. Then you plug in the I/O modules you need on the opto rack. You can use 4-, 8-, 12-, 16-, and 24-position opto racks, with up to 19 positions usable (3 counter or timer, 16 I/O). Compatible opto racks are available from several companies, such as Gordos, Opto 22, and Potter & Brumfield
What else can I do with the relay driver outputs?return to top
The relay drivers outputs can be used to interface with anything that requires less than their rated current and voltage, such as solenoids, LED's, small incandescent bulbs, small DC motors, etc. The relay driver outputs can also be used as open-collector interfaces for other logic.
What is the timed powerup feature and how does it work?return to top
The timed powerup feature enables the Chickadee to turn itself on at a programmed time, do some work, and then turn itself off. During the off time, no power is consumed. This makes the Chickadee ideal for data logging and timed control applications where solar or battery power is the only power source available. This feature requires the real time clock (RTC) option. To use, simply read the current 32-bit time count from the RTC. Then, add the number of seconds you want to delay until the next powerup. For example, if you want to powerup one hour from now, add 3600 to the time count. Then, program this result into the RTC alarm register. Then, execute the powerdown sequence. One hour from now, the Chickadee will power itself up, using no power until then. The Sunflower C library contains a demo program for this feature.
What is the Sunflower C library?return to top
The Sunflower C library is a collection of C, ASM, and C/ASM functions which support the hardware features of the Chickadee. Functions are provided to operate the LCD, keypad, and serial ports, real time clock, serial EEPROM, 8255 I/O, relay driver outputs, AC/DC inputs, watchdog timer, ADC, and flash memory. Demo programs showing library function usage are also included.
The Sunflower C library functions are duplicated in the Chickadee XL BIOS and are available by an interrupt call, so any language may call them without the need to compile and link them in.
What can I use the AC/DC inputs for?return to top
The AC/DC inputs can be used for monitoring any input which may have a wide variation in input voltage. Any on-state AC or DC voltage from 3 to 48 V will register as "on". The AC/DC inputs also provide galvanic isolation. This is useful when inputs are from far away or on another power system. When monitoring AC inputs, it is necessary to "filter" the inputs in software, since the zero-crossing point of AC causes a brief "off" state. This is easy to accomplish by reading the AC/DC inputs every 6 ms and taking the best 2 out of 3 readings.
How fast is the Chickadee CPU?return to top
At 8 MHz, the Chickadee CPU is about 70% faster than the original IBM PC. Certainly not a powerhouse, but adequate for many embedded applications. At 25 MHz, it approaches 90% of the speed of the original IBM AT, which was based on a 80286 CPU and 16-bit bus. The Chickadee is capable of good performance in applications which do not require fast video graphics or fast floating point math.
What display modules can be used with the Chickadee?return to top
The Chickadee LCD port is designed for use with LCD character modules based on the 44780 LCD controller chip. The Chickadee has LCD connectors for all standard sizes (1x16, 2x16, 4x20, 4x40, etc.) and types of headers (14x1, 7x2, and 8x2). Many companies, such as Densitron, Hantronix, Hyundai, Okaya, Optrex, and Planar Standish make these modules. Extended temperature modules are easily accommodated, since the Chickadee LCD contrast circuit can generate negative bias voltages as low as -5 V.
What keypads can be used with the Chickadee?return to top
The Chickadee keypad port is designed for easy connection to Storm series keypads from MGR Industries. Any matrix keypad can be used up to 4 rows by 4 columns. The Sunflower C library contains functions to manage a matrix keypad.
Why would I need the voltage regulator option?return to top
The Chickadee CPU and associated circuitry requires +5 V to operate. If your application does not have a regulated +5 V supply, you need the voltage regulator option. A small amount of +5 V power can be drawn from the Chickadee regulator to power other circuitry. For example, an opto rack +5 V input can be powered from the Chickadee, or other PC/104 modules plugged into the Chickadee. The regulator is protected from surges and reverse polarity.
The Chickadee is so close to what I need. If only it also had...return to top
At Bagotronix, we do custom and semi-custom designs, too. Often, this is the only way to achieve all the design goals for a project. Call or e-mail us with your special needs.
Is the Chickadee Year 2000 ready?return to top
Yes. The real time clock used in the Chickadee is the Dallas Semiconductor DS2404. It keeps time as a 32-bit count in seconds. The "zero second" reference date can be anything you want it to be. The Sunflower C library has functions to convert a 32-bit time count to the month, date, day, year, etc. and back again. The reference date used is January 1, 1970, giving a valid time count up to the year 2106.
The Chickadee XL BIOS is Year 2000 ready and will produce valid date information up to Dec. 31, 2099.
Can the Chickadee do floating point arithmetic?return to top
If your programming language supports floating point emulation, the Chickadee can do floating point arithmetic. With the Borland C/C++ compilers, be sure to set the DOS environment variable "87=NO" if using DOS-ROM, or link in BCPPFLT.OBJ if using Paradigm LOCATE. With the Microsoft C/C++ compilers, be sure to link in the "alternate" floating point library if using DOS-ROM.