This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Replace Novoton W78E516B with W78E516D

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

Parents
  • >> 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

Reply
  • >> 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

Children
No data