I am trying to replace the Novoton(Winbond) W78E516B chip with W78E516D. However, the W78E516D device database is not supported by the current Keil database.
When implementing new chip without modifying original project settings, the Port 0 does not work. This port is responsible for the keypad button inputs in this project.
By comparing the datasheets, the new chip has two more interrupts and three more registers. So I cloned th 516B database data to create a database item for 516D. This database calls the 'Reg58.h' instead of 'Reg54.h'. Three registers WDTC, AUXR, and P0UPR were added in Reg58.h.
The new device database is as following: CPU=IRAM(0 - 0xFF) XRAM(0- 0xFF) IROM(0-0xFFFF) CLOCK(40000000) MON=S8051.DLL TP51.DLL("-p58") REGFILE=REG58.H("Winbond") SIM=S8051.DLL DP51.DLL("-p58") SFILE="LIB\STARTUP.A51" ("Standard 8051 Startup Code") BOOK0=DATASHTS\WINBOND\W78E516D.PDF("Data Sheet") BOOK1=DATASHTS\ADDBOOKS.PDF("Add on databooks") BOOK2=DATASHTS\INFINEON\M500.PDF("Instruction Set Manual")
Nontheless, the problem remains.
It will be great help, if anyone has suggestions. Thank you.
Ellen
>> i would use a more explicit name than reg58.h The REGFILE for the old chip W78E516B provided by Keil was Reg54.h. So I made a new one named 'Reg58.h' with extra SFRs added.
>> reg58.h is the interesting part, not what you show above The list showed was the database used for the new chip W78E516D. For the old chip, the list is: CPU=IRAM(0 - 0xFF) XRAM(0- 0xFF) IROM(0-0xFFFF) CLOCK(40000000) MON=S8051.DLL TP51.DLL("-p53") REGFILE=REG54.H("Winbond") SIM=S8051.DLL DP51.DLL("-p53") SFILE="LIB\STARTUP.A51" ("Standard 8051 Startup Code") BOOK0=DATASHTS\WINBOND\W78E516B.PDF("Data Sheet") BOOK1=DATASHTS\ADDBOOKS.PDF("Add on databooks") BOOK2=DATASHTS\INFINEON\M500.PDF("Instruction Set Manual")
I think there are probably some mistakes in the settings. I will appreciated it, if any advice.
Thank you. Ellen