Ok, after some hard fights with JAVA GUI programming and native serial communication using JAVA, I have the first working combination of Arduino-firmware and Java Client running.
Current Arduino firmware features are:
- Communication at 57600 baud
- Read content of EEPROM as hex data
- Read content of EEPROM as binary data
- Write data binary to EEPROM
- Provide "Version String" with supported commands
Current Java Client Features:
- Load ROM-Files (max 32k) into the application
- select COM-Port
- select EEPROM type (8k,16k,32k) (has influence on the number of bytes read/written)
- burn loaded ROM image to EEPROM
- load data from EEPROM binary to internal buffer
- read hex data from EEPROM (directly written to console window for testing)
- count number of different bytes between internal rom image and data on EEPROM
- clear EEPROM with 0x00
- get the Version Sting from the MEEPROMMER
Here's a short collection of screenshots from the GUI:
GUI after start, selecting different EEPROM types, getting Version String, clearing EEPROM and loading a 8k ROM image:
GUI after making a diff between the cleared EEPROM and the loaded 8k ROM image, showing all 8192 bytes as different:
GUI after writing the ROM image to the EEPROM and then making a diff again.
Now showing that all bytes are equal:
I found one additional issue with the EEPROMs I'm using for my tests.
I have 5 Atmel "AT28C64-15PC (0828)". I tested two of them and I can write the 8k in about 8 seconds, using /DATA polling to get the end of a write cycle.
I have one Atmel "AT28C64B-15PU (1212)" that takes about 6 times longer to write. It took 47 seconds to clear the chip, or to write data to it. This was the chip I used initially for my first tests.
For reading there is no difference between these chips. I can read the whole 8k of the chip within 1.4 seconds with my Programmer and the Java tool.
Does anybody know about such big differences in write-times for these kind of EEPROM?