E m b e d d e d S o l u t i o n s P g 8 o f 2 0
Programming
Programming IP-CF requires only the ability to read and write data in the host’s I/O
space. The base address is determined by the IP Carrier board.
Please refer to the CompactFLASH programmers manual for detailed bit-map
information and other programming details. The manual is available from the
manufacturers website. Dynamic Engineering currently uses Sandisk CompactFLASH
modules.
The IP acts as a bridge between the IP bus interface and the CompactFLASH module.
There are a few settings to insure proper operation. This manual covers the internal
registers of the IP-CF. Most of the operational interface is controlled by the
CompactFLASH module and is covered by the CompactFLASH Manual.
The engineering kit provides reference software which Dynamic Engineering uses to
test the IP-CF. The IP-CF is mounted to a PCI3IP carrier.
[
http://www.dyneng.com/pci_3_ip.html
] Windows 7 is the OS. The Identify Disk
information is read and checked. The model, serial number and firmware revision are
displayed. The IDPROM is read and checked. The vector register has a loop-back test.
The FLASH memory is programmed and read-back. The read-write test to the FLASH
finds the first non-programmed sector, programs that sector and then reads the data
back. If the test is looped the data is read many times and only programmed once. If
the software is re-launched then the next sector will be written to and then read back.
We do the sector marking to keep from doing excessive writes in test. The
CompactFLASH interrupts and control functions are tested during the identify and r/w
tests. The source code for the application is included for your reference. In addition to
the software, the engineering kit includes a reference schematic plus the IP-Debug-Bus
and the IP-Debug-IO.
Linux and VxWorks drivers will be available soon. If you need a custom version of the
card or a custom driver please contact Dynamic Engineering.
Please note that some carrier boards do not use the interrupt vector. Some carriers
require the interrupt vector. If needed, the vector register and the interrupt service
routine should be loaded and the mask set.