Документ взят из кэша поисковой машины. Адрес оригинального документа : http://www.naic.edu/~phil/td/serial_eeprom_changes_0220113_c.pdf
Дата изменения: Tue Mar 20 18:22:23 2012
Дата индексирования: Sun Feb 3 18:39:36 2013
Кодировка:
TN246
Z180-Based Boards and Changes to the Serial EEPROM
The slower write speed of serial EEPROMs (manufacturer part # 24LC04B) used on Z180-based boards may cause problems if you use an external EPROM burner instead of directly compiling your application to the board. However, not all Z180 board customers who use an external EPROM burner will experience problems. The determining factor is if your BIOS bin file has a patch that compensates for the slower write speed of the 24LC04B EEPROM. Some Z180-based boards are unaffected; they are: the BL10xxx series, the BL11xx series, the BL12xx series and the BL13xx series. There is no problem if you are using the BIOS bin file that came with your new board. The problem occurs when older bin files are used with newer boards. The symptoms of the problem are vague because the failed write will be silent and its result depends on the application.

BIOS .bin Files
If your application is not running correctly, and it ran fine prior to moving to 24LC04B, check to make sure you have the BIOS patch. In Table 1 there is a list of bin files and the addresses for the required patch. The patch is to change "0A" to "00" at the specified address. The changed value is a loop counter used by a DJNZ instruction, which decrements the value before looking at it. Using "00" means it will loop 256 times. After a .bin file is patched, it must be programmed into the development system's EPROM or flash memory device. Then, the patched BIOS will be used when the application .bin file is created.
Table 1. BIOS bin Files Requiring a Patch
BIOS bin File Patch Address Board Type

2421.bin 2608.bin 2611.bin 2658.bin 2707.bin 2900A.bin 2902.bin 2903.bin 2951.bin
022-0113 Rev. C

0x1423 0x140e 0x069e 0x084a 0x13df 0x14A8 0x086D 0x06a1 0x14e0
rabbit.com

PK21xx PK22xx PK2240 PK227x BL16xx CM71xx CM71xx CM71xx CM7110
1


CM71xx Series
The CM71xx series of boards is a special case because new boards are shipped without an EPROM. The BIOS .bin file burned onto the EPROM of a RoHS compliant CM71xx board must be patched for any application using that board to be able to write to its EEPROM. The .bin file is typic "Compile | Compile .bin file was created was created from an ally created from an application using the "Compile | Compile to File" option or the to File with *.RTI File" option. The BIOS on the EPROM of the board from which the must be patched and typically is one of the BIOS files listed in Table 1. If the .bin file RTI file, the BIOS in use when the RTI file was created must be patched.

You can patch an RTI file yourself, but since the location varies depending on the BIOS version used when the RTI file was created, we recommend finding the patch address by searching with a binary editor such as the freeware XVI32.exe. The following location lists links to a number of available binary editors for free download: www.chmaas.handshake.de/ The hex string to search for is "7A E6 07 5F 16 00 19 5E EB 16 0A". The last character, 0A, should be changed to "00". The file can then be saved and used in Dynamic C 32 with the "Compile to File with *.RTI File" option to create patched .bin files. If the search hex string is not found, search with the last character changed to "00" to verify that the file is already patched. If the search hex string is still not found, please contact Rabbit Semiconductor and provide the .bin and/or .rti files which require patching.

BIOS Files on EPROMS
The patch is also required for the BIOS files programmed onto EPROMs that have the part numbers listed in Table 2. The patch is the same, namely changing "0A" to "00" at the specified address. EPROMs listed in column 4 ("BIOS unpatched") of Table 2 are never paired with 24LC04B EEPROMs on factory-shipped boards, so a BIOS patch is not needed. If you are using one of the EPROMs listed in column 5, the patch should have been made at the factory. If you are experiencing problems that started after moving to the 24LC04B, check the EPROM content to make sure the BIOS is patched. The EPROM must be erased and reprogrammed using the patched BIOS.

2

rabbit.com

TN246


.

Table 2. Programmed EPROMs and the BIOS Patch Board Type EPROM Type BIOS File Part # Part # of EPROM* Part # of EPROM (BIOS unpatched) (BIOS patched) Patch Address

BL1600 BL16xx BL16xx BL1600/10 BL16xx

UVEPROM UVEPROM Flash Flash UVEPROM

691-0167 691-0055 691-0040 691-0021 691-0173 691-0051 691-0060 691-0178 691-0070 691-0076 691-0052 691-0059 691-0071 691-0078 691-0022 691-0069

693-0002 693-0014 694-0019 694-0008 693-0022 693-0011 693-0019 693-0021 694-0027 694-0035 693-0012 693-0018 694-0030 694-0037 694-0009 694-0029

693-0026 693-0028 694-0049 694-0050 693-0029 693-0030 693-0031 693-0032 694-0051 694-0052 693-0024 693-0025 694-0048 694-0047 694-0045 694-0046

0x13DF 0x13DF 0x13DF 0x06AF 0x13DF 0x1423 0x1423 0x1423 0x1423 0x1423 0x140E 0x140E 0x140E 0x140E 0x140E 0x069E

PK2100/10/20/30 UVEPROM PK2100/10/20/30 UVEPROM PK2100 PK2100 UVEPROM Flash

PK2100/10/20/30 Flash PK2210/30 PK2200/20 PK2200/20 PK2210/30 PK2200/20 PK2240 UVEPROM UVEPROM Flash Flash Flash Flash

* These EPROMs are not paired with 24LC04B EEPROMs. These EPROMs are paired with 24LC04B EEPROMs.

WatchDog Timeout
The slower speed of 24LC04B can cause another problem to occur if a large amount of data is written. If the amount of time it takes to write the data is too long the watchdog times out. The solution is to add a call to hitwd() within the loop that is writing the data. This function hits the watchdog timer, postponing a hardware reset for 2 seconds. The slower speed of 24LC04B can only cause a watchdog timeout if there is no call to either VdInit() or uplc_init() or if interrupts are turned off.

TN246

rabbit.com

3


Write-Protection Scheme
Several years ago, before the change to 24LC04B, Z180-based boards used serial EEPROMs that allowed the upper half to be write-protected while the lower half was write-enabled. Boards purchased several years ago used such EEPROMs. Lack of availability, however, forced a change to a new part. The new serial EEPROM had a write protection scheme that was all or nothing. It was no longer possible to writeenable the lower half while write-protecting the upper half. Serial EEPROMs with part # 24LC04B use this same all or nothing write protection scheme. All Z180-based boards using serial EEPROMs with the all or nothing write protection scheme are shipped with the EEPROM write-enabled; this includes the boards listed on page 1 as unaffected by the slower write speed of 24LC04B (the BL10xx series, the BL11xx series, the BL12xx series and the BL13xx series). When the write-protect jumper is moved from its factory-shipped position (see your board's manual for exact jumper settings) it will write-protect the entire chip. Earlier revisions of board manuals describe the write-protect jumper as being able to write protect the upper half of the flash, leaving the lower half write-enabled. This is no longer true. Table 3 gives the write-protect and write-enable jumper positions for the relevant boards.
Table 3. Jumper Positions
Board Family BL10xx BL11xx BL12xx BL13xx CM71xx BL16xx PK21xx PK22xx SmartBlock Jumper Location J16 J21 J11 J2 Trace J1 J3 JP5 J2 Protect 1-2 1-2 1-2 1-2 Cut 17-19 1-2 1-2 1-2 Enable 2-3 2-3 2-3 2-3 Uncut 19-21 2-3 2-3 2-3

For CM71xx boards, there is a trace that controls the write-protect status. See Figure 1 for the location of the trace.
Figure 1. Trace Location on CM71xx Boards
U4

RAM

U2

RTC

U3 U1 (H3)

EPROM

Break trace to write-protect EEPROM

H2 H1

4

rabbit.com

TN246


Summary
The information given in this document running correctly and you suspect it has make sure the write-protect jumper is se from Table 1 or a programmed EPROM patch. applies only to Z180-based boards. If your application is not something to do with the serial EEPROM part # 24LC04B, first t correctly. If that checks out and you are using a BIOS bin file from Table 2, make sure that the BIOS contains the appropriate

If you are still experiencing problems and need some help, contact our technical support team online at: www.rabbitsemiconductor.com/support/questionSubmit.shtml

TN246

rabbit.com

5