Inbyggd 2k EEPROM i AT89C51ED2
Inbyggd 2k EEPROM i AT89C51ED2
Någon som vet hur man skriver (på ett fungerande sätt) till dessa?
Har försökt att använda exempelkoden för liknande processorer, men får det inte att fastna där!
Någon som använt sig av EEPROM:en som lagringsutrymme på någon 8051:a?
Tacksam för tips!
Mvh
speakman
Har försökt att använda exempelkoden för liknande processorer, men får det inte att fastna där!
Någon som använt sig av EEPROM:en som lagringsutrymme på någon 8051:a?
Tacksam för tips!
Mvh
speakman
Har du kollat i data bladet för AT89C51ED2
Write Data:
Check EEBUSY flag
If the user application interrupts routines use XRAM memory space: Save and disable interrupts.
Load DPTR with the address to write
Store A register with the data to be written
Set bit EEE of EECON register
Execute a MOVX @DPTR, A
Clear bit EEE of EECON register
Restore interrupts.
EEBUSY flag in EECON is then set by hardware to indicate that programming is in
progress and that the EEPROM segment is not available for reading or writing.
The end of programming is indicated by a hardware clear of the EEBUSY flag.

Write Data:
Check EEBUSY flag
If the user application interrupts routines use XRAM memory space: Save and disable interrupts.
Load DPTR with the address to write
Store A register with the data to be written
Set bit EEE of EECON register
Execute a MOVX @DPTR, A
Clear bit EEE of EECON register
Restore interrupts.
EEBUSY flag in EECON is then set by hardware to indicate that programming is in
progress and that the EEPROM segment is not available for reading or writing.
The end of programming is indicated by a hardware clear of the EEBUSY flag.

Ja, det är bl.a. den jag utgått ifrån.
Därmot nämner den inget om att man måste skriva 0xAx och 0x5x till EECON-registret för att skriva till EEPROMen det som man just skrivit till latcharna.
Ska ta å göra en mycket förenklad variant av det hela, och felsöka det den vägen.
Ett annat problem är att man inte vet om det är läsningen eller skrivningen som går fel... Men det som skrivs, kommer inte ut iallafall.
Mvh
speakman
Därmot nämner den inget om att man måste skriva 0xAx och 0x5x till EECON-registret för att skriva till EEPROMen det som man just skrivit till latcharna.
Ska ta å göra en mycket förenklad variant av det hela, och felsöka det den vägen.
Ett annat problem är att man inte vet om det är läsningen eller skrivningen som går fel... Men det som skrivs, kommer inte ut iallafall.

Mvh
speakman
ED2:an fanns inte med i listan i gamla programvaran, så jag använde mig av RD2 som inte har någon EEPROM.
Laddade hem senaste programvaran av Galep, och där fanns även ED2 med.
Så nu ser jag EEPROMen och vad som är däri.
Efter lite mer tester så verkar den skriva, men bara till första byten!
Har även gjort så den skriver en byte i taget, och väntar efter varje skrivning på att EEBUSY ska nollas innan den skriver nästa osv..
Alla exempel går ju ut på att skriva till första byten också, så om dom ändå hade ett exempel där dom skrev flera så kanske man var mer hjälpt.
MOV DPTR, 0x0000 ;går bra
MOV DPTR, 0x0001 ;här skrivs inget
Borde det kanske skrivas på något annat vis?
Mvh
speakman
Laddade hem senaste programvaran av Galep, och där fanns även ED2 med.
Så nu ser jag EEPROMen och vad som är däri.
Efter lite mer tester så verkar den skriva, men bara till första byten!
Har även gjort så den skriver en byte i taget, och väntar efter varje skrivning på att EEBUSY ska nollas innan den skriver nästa osv..
Alla exempel går ju ut på att skriva till första byten också, så om dom ändå hade ett exempel där dom skrev flera så kanske man var mer hjälpt.
MOV DPTR, 0x0000 ;går bra
MOV DPTR, 0x0001 ;här skrivs inget
Borde det kanske skrivas på något annat vis?
Mvh
speakman