Rev. 1.50 40 August 28, 2017 Rev. 1.50 41 August 28, 2017
HT66F0175/HT66F0185
A/D Flash MCU with EEPROM
HT66F0175/HT66F0185
A/D Flash MCU with EEPROM
Programming Considerations
CaremustbetakenthatdataisnotinadvertentlywrittentotheEEPROM.ProtectioncanbePeriodic
byensuringthattheWriteEnablebitisnormallyclearedtozerowhennotwriting.AlsotheBank
Pointerregistercouldbenormallyclearedtozeroasthiswouldinhibitaccesstobank1wherethe
EEPROMcontrolregisterexist.Althoughcertainlynotnecessary,considerationmightbegiven
intheapplicationprogramtothecheckingofthevalidityofnewwritedatabyasimplereadback
process.WhenwritingdatatheWRbitmustbesethighimmediatelyaftertheWRENbithasbeen
sethigh,toensurethewritecycleexecutescorrectly.TheglobalinterruptbitEMIshouldalsobe
clearedbeforeawritecycleisexecutedandthenre-enabledafterthewritecyclestarts.Notethat
thedeviceshouldnotentertheIDLEorSLEEPmodeuntiltheEEPROMreadorwriteoperationis
totallycomplete.Otherwise,theEEPROMreadorwriteoperationwillfail.
Programming Example
Reading data from the EEPROM − polling method
MOV A, EEPROM_ADRES ; user dened address
MOV EEA, A
MOV A, 040H ; setup memory pointer MP1
MOV MP1, A ; MP1 points to EEC register
MOV A, 01H ; setup Bank Pointer BP
MOV BP, A
SET IAR1.1 ; set RDEN bit, enable read operations
SET IAR1.0 ; start Read Cycle - set RD bit
BACK:
SZ IAR1.0 ; check for read cycle end
JMP BACK
CLR IAR1 ; disable EEPROM write
CLR BP
MOV A, EED ; move read data to register
MOV READ_DATA, A
Writing Data to the EEPROM − polling method
MOV A, EEPROM_ADRES ; user dened address
MOV EEA, A
MOV A, EEPROM_DATA ; user dened data
MOV EED, A
MOV A, 040H ; setup memory pointer MP1
MOV MP1, A ; MP1 points to EEC register
MOV A, 01H ; setup Bank Pointer BP
MOV BP, A
CLR EMI
SET IAR1.3 ; set WREN bit, enable write operations
SET IAR1.2 ; start Write Cycle - set WR bit
SET EMI
BACK:
SZ IAR1.2 ; check for write cycle end
JMP BACK
CLR IAR1 ; disable EEPROM write
CLR BP