Note: All of the examples in this book use the C# reader library. This only works with reader firmware version V3.x.x. This version was developed simultaneously with the reader library and therefore a firmware update is required.
The firmware for the Elektor Electronics RFID reader was developed with the 8051 development environment Keil µV4.
The P89LPC936 microcontroller on the reader board can be programmed directly via USB using the free PC program, Flash Magic. Flash Magic requires the VCP drivers, so these must already be installed. To program the controller, the two jumpers are on the reader board are set (JP1 and JP2).
After starting FlashMagic, choose the COM port that is assigned to the USB. The correct COM port is obtained through the Windows Device Manager.
The following parameters must be correctly selected in Flash Magic: Device 89LPC936, 19200 baud rate and interface None (ISP). It’s also important to check the “Erase blocks used by Hex file” box. The “Browse” button brings up a file dialog for opening the HEX file.
Note: Flash Magic’s Erase all Flash option allows the entire flash memory, including boot loader, to be erased. Accidental deletion of the boot loader can be very easily overcome, as the firmware is simply compiled with the boot loader code included.
The default values in the Advanced Options configuration menu are correct for the Elektor-RFID-Reader. Is a little confusing, but Keil MCB 900 must be selected as the hardware.
There is a critical setting in Advanced Options - Security. Make sure that the checkbox next to Protect ISP Code. All other settings are unimportant.
Also watch out with the ISP / Device configuration: selecting the wrong clock here will stop everything from working. The P89LPC936 oscillator clock is also required during programming. Therefore, it is imperative to use the setting High Frequency Crystal / Resonator (4MHz-12MHz) option.
If the Elektor-RFID-Reader is connected via a USB cable and the two jumpers are set, the reader is in programming mode. You can the test whether the interface is working correctly by selecting ISP / Blank Check from the menu. To begin the programming process, simply click theStart button. The programming process should not be interrupted under any circumstances.
After programming, you must remove the two jumpers, or else the microcontroller will remain in programming mode. For the firmware to start up correctly, it is necessary to separate the reader from the USB port briefly and then reconnect it.
The current reader firmware version can easily be checked if a LCD is connected to the RFID reader. After turning on the supply voltage, the version will be displayed for about one second.
In the Figure below, all the C source code files and their functions are shown. Furthermore, the picture shows all the Elektor-RFID-Reader's basic software architecture.