!!!! 6 0 1 617920879 ! 8570 ! 256-by-8 bit Static CMOS RAM ! revision A.02.00 !safeguard is "high_out_cmos" sequential vector cycle 10u receive delay 9.9u assign VCC to pins 8 assign GND to pins 4 assign Test to pins 7 assign Address to pins 3,2,1 assign Serial_clock to pins 6 assign Serial_data to pins 5 power VCC,GND family TTL inputs Test,Address,Serial_clock bidirectional Serial_data !The bidirectional data line, Serial_data, does not enter a tri-state !mode. When the bus is available (not busy) Serial_data is high. !*********************** Backtrace Information ***************** trace Serial_data to Serial_clock,Address,Test !This test anticipates all possible topologies. The units that !are not necessary can be commented out. !The pin 'Test' (pin 7) has not been tested since it requires a voltage !of 1V to 2V to force the device into the power saving mode. For normal !operation, 'Test' is set to 0V. !Note that when 'Test' is 1V to 2V, the device enters the power !saving mode and 'Test',Serial_data,and Serial_clock take on the !voltage VDDR which is the voltage maintained by 'Test' until !'Test' is brought back to 0V. !Note that pull-ups are required on pins 5 and 6 for this test to operate !properly. warning "Pull-ups required on Serial_data and Serial_clock (pins 5,6)" warning "for entire test to run." set load on groups Serial_data to pull up !******************************************************************** !************************* VECTOR SECTION *********************** !******************************************************************** vector Set_values drive Serial_data set Address to "000" set Serial_clock to "1" set Test to "0" set Serial_data to "1" end vector vector Keep_values drive Serial_data set Address to "kkk" set Serial_clock to "k" set Test to "k" set Serial_data to "k" end vector vector Keep_values_receive receive Serial_data set Address to "kkk" set Serial_clock to "k" set Test to "k" set Serial_data to "k" end vector vector Clock_receive_high initialize to Keep_values_receive set Serial_clock to "1" end vector vector Clock_high initialize to Keep_values set Serial_clock to "1" end vector vector Clock_low initialize to Keep_values set Serial_clock to "0" end vector vector Data_0 initialize to Keep_values drive Serial_data set Serial_data to "0" end vector vector Data_1 initialize to Keep_values drive Serial_data set Serial_data to "1" end vector vector Data_receive_0 initialize to Keep_values_receive receive Serial_data set Serial_data to "0" end vector vector Data_receive_1 initialize to Keep_values_receive receive Serial_data set Serial_data to "1" end vector vector Address_000 initialize to Keep_values set Address to "000" end vector vector Address_001 initialize to Keep_values set Address to "001" end vector vector Address_010 initialize to Keep_values set Address to "010" end vector vector Address_011 initialize to Keep_values set Address to "011" end vector vector Address_100 initialize to Keep_values set Address to "100" end vector vector Address_101 initialize to Keep_values set Address to "101" end vector vector Address_110 initialize to Keep_values set Address to "110" end vector vector Address_111 initialize to Keep_values set Address to "111" end vector !******************************************************************** !************************ SUBROUTINE SECTION ********************* !******************************************************************** sub Start !Start condition. execute Clock_high execute Data_1 execute Data_0 execute Clock_low end sub sub Stop !Stop condition. execute Clock_high execute Data_0 execute Data_1 execute Clock_low execute Clock_high execute Clock_low end sub sub Slave_Address !The first 4 bits of the slave address for repeat 2 times !the 8570. execute Data_1 execute Clock_high execute Clock_low execute Data_0 execute Clock_high execute Clock_low end repeat end sub !******************************************************************** !************************* UNIT SECTION *********************** !******************************************************************** unit "Test Address 000" execute Set_values execute Address_000 !Set address of device. call Start call Slave_address !Enable the device. repeat 3 times execute Data_0 execute Clock_high execute Clock_low end repeat execute Data_0 !Write bit. execute Clock_high execute Clock_low execute Clock_receive_high !Acknowledge bit from the device. execute Data_receive_0 execute Clock_low repeat 4 times !Write to address F0h. execute Data_1 execute Clock_high execute Clock_low end repeat repeat 4 times execute Data_0 execute Clock_high execute Clock_low end repeat execute Clock_receive_high execute Data_receive_0 !Acknowledge received from device. execute Clock_low repeat 4 times !Write AAh to address F0h. execute Data_1 execute Clock_high execute Clock_low execute Data_0 execute Clock_high execute Clock_low end repeat execute Clock_receive_high !Acknowledge from the device. execute Data_receive_0 execute Clock_low call Stop call Start call Slave_address !Write to a different device. execute Data_0 execute Clock_high execute Clock_low execute Data_1 execute Clock_high execute Clock_low execute Data_0 execute Clock_high execute Clock_low execute Data_0 !Write bit. execute Clock_high execute Clock_low execute Data_1 !Acknowledge bit. execute Clock_high execute Clock_low repeat 4 times !Write to memory address F0h. execute Data_1 execute Clock_high execute Clock_low end repeat repeat 4 times execute Data_0 execute Clock_high execute Clock_low end repeat execute Data_1 !Acknowledge bit. execute Clock_high execute Clock_low repeat 4 times !Write 55h to address F0h. execute Data_0 execute Clock_high execute Clock_low execute Data_1 execute Clock_high execute Clock_low end repeat execute Data_1 !Acknowledge bit. execute Clock_high execute Clock_low call Stop call Start call Slave_address !Access the device. repeat 3 times execute Data_0 execute Clock_high execute Clock_low end repeat execute Data_0 !Write bit. execute Clock_high execute Clock_low execute Clock_receive_high execute Data_receive_0 !Acknowledge received from device. execute Clock_low repeat 4 times !Access memory address F0h. execute Data_1 execute Clock_high execute Clock_low end repeat repeat 4 times execute Data_0 execute Clock_high execute Clock_low end repeat execute Clock_receive_high execute Data_receive_0 !Acknowledge from device. execute Clock_low call Start call Slave_address repeat 3 times execute Data_0 execute Clock_high execute Clock_low end repeat execute Data_1 !Read bit. execute Clock_high execute Clock_low execute Data_receive_0 !Acknowledge from device. execute Clock_receive_high execute Clock_low repeat 4 times !Transmit data AAh. execute Data_receive_1 execute Clock_receive_high execute Clock_low execute Data_receive_0 execute Clock_receive_high execute Clock_low end repeat call Stop end unit unit "Test Address 001" execute Set_values execute Address_001 !Set address of device. call Start call Slave_address !Address the particular device. repeat 2 times execute Data_0 execute Clock_high execute Clock_low end repeat execute Data_1 execute Clock_high execute Clock_low execute Data_0 !Write bit. execute Clock_high execute Clock_low execute Clock_receive_high !Acknowledge from the device. execute Data_receive_0 execute Clock_low repeat 4 times execute Data_0 !Write to memory address 55h execute Clock_high execute Clock_low execute Data_1 execute Clock_high execute Clock_low end repeat execute Data_receive_0 !Acknowledge from device. execute Clock_receive_high execute Clock_low repeat 2 times !Write CCh to memory address 55h. execute Data_1 execute Clock_high execute Clock_low execute Data_1 execute Clock_high execute Clock_low execute Data_0 execute Clock_high execute Clock_low execute Data_0 execute Clock_high execute Clock_low end repeat execute Clock_receive_high execute Data_receive_0 !Acknowledge from device. execute Clock_low call Stop call Start call Slave_address !Address a different device. repeat 3 times execute Data_0 execute Clock_high execute Clock_low end repeat execute Data_0 !Write bit. execute Clock_high execute Clock_low execute Data_1 !Acknowledge bit. execute Clock_high execute Clock_low repeat 4 times execute Data_0 !Write to memory address 55h execute Clock_high execute Clock_low execute Data_1 execute Clock_high execute Clock_low end repeat execute Data_1 !Acknowledge bit. execute Clock_high execute Clock_low repeat 2 times !Write 33h to the specified Address. execute Data_0 execute Clock_high execute Clock_low execute Data_0 execute Clock_high execute Clock_low execute Data_1 execute Clock_high execute Clock_low execute Data_1 execute Clock_high execute Clock_low end repeat execute Data_1 !Acknowledge bit. execute Clock_high execute Clock_low call Stop call Start call Slave_address !Address the particular device. repeat 2 times execute Data_0 execute Clock_high execute Clock_low end repeat execute Data_1 execute Clock_high execute Clock_low execute Data_0 !Write to memory address. execute Clock_high execute Clock_low execute Clock_receive_high execute Data_receive_0 !Acknowledge from device. execute Clock_low repeat 4 times !Access memory address 55h. execute Data_0 execute Clock_high execute Clock_low execute Data_1 execute Clock_high execute Clock_low end repeat execute Data_receive_0 !Acknowledge from device. execute Clock_receive_high execute Clock_low call Start call Slave_address !Address the particular device. repeat 2 times execute Data_0 execute Clock_high execute Clock_low end repeat execute Data_1 execute Clock_high execute Clock_low execute Data_1 !Read bit. execute Clock_high execute Clock_low execute Data_receive_0 !Acknowledge from device. execute Clock_receive_high execute Clock_low repeat 2 times execute Data_receive_1 !Transmit Data CCh. execute Clock_receive_high execute Clock_low execute Data_receive_1 execute Clock_receive_high execute Clock_low execute Data_receive_0 execute Clock_receive_high execute Clock_low execute Data_receive_0 execute Clock_receive_high execute Clock_low end repeat call Stop end unit unit "Test Address 010" execute Set_values execute Address_010 !Set address of device. call Start call Slave_address !Enable the device. execute Data_0 execute Clock_high execute Clock_low execute Data_1 execute Clock_high execute Clock_low execute Data_0 execute Clock_high execute Clock_low execute Data_0 !Write bit. execute Clock_high execute Clock_low execute Clock_receive_high !Acknowledge bit from the device. execute Data_receive_0 execute Clock_low repeat 4 times !Write to address AAh. execute Data_1 execute Clock_high execute Clock_low execute Data_0 execute Clock_high execute Clock_low end repeat execute Clock_receive_high execute Data_receive_0 !Acknowledge received from device. execute Clock_low repeat 4 times !Write AAh to the specified Address. execute Data_1 execute Clock_high execute Clock_low execute Data_0 execute Clock_high execute Clock_low end repeat execute Clock_receive_high !Acknowledge from the device. execute Data_receive_0 execute Clock_low call Stop call Start call Slave_address !Write to a different device. execute Data_1 execute Clock_high execute Clock_low execute Data_1 execute Clock_high execute Clock_low execute Data_0 execute Clock_high execute Clock_low execute Data_0 !Write bit. execute Clock_high execute Clock_low execute Data_1 !Acknowledge bit. execute Clock_high execute Clock_low repeat 4 times !Write to memory address AAh. execute Data_1 execute Clock_high execute Clock_low execute Data_0 execute Clock_high execute Clock_low end repeat execute Data_1 !Acknowledge bit. execute Clock_high execute Clock_low repeat 4 times !Write 55h to address. execute Data_0 execute Clock_high execute Clock_low execute Data_1 execute Clock_high execute Clock_low end repeat execute Data_1 !Acknowledge bit. execute Clock_high execute Clock_low call Stop call Start call Slave_address !Access the device. execute Data_0 execute Clock_high execute Clock_low execute Data_1 execute Clock_high execute Clock_low execute Data_0 execute Clock_high execute Clock_low execute Data_0 !Write bit. execute Clock_high execute Clock_low execute Clock_receive_high execute Data_receive_0 !Acknowledge received from device. execute Clock_low repeat 4 times !Access memory address AAh. execute Data_1 execute Clock_high execute Clock_low execute Data_0 execute Clock_high execute Clock_low end repeat execute Clock_receive_high execute Data_receive_0 !Acknowledge from device. execute Clock_low call Start call Slave_address !Access the device. execute Data_0 execute Clock_high execute Clock_low execute Data_1 execute Clock_high execute Clock_low execute Data_0 execute Clock_high execute Clock_low execute Data_1 !Read bit. execute Clock_high execute Clock_low execute Data_receive_0 !Acknowledge from device. execute Clock_receive_high execute Clock_low repeat 4 times !Transmit data AAh. execute Data_receive_1 execute Clock_receive_high execute Clock_low execute Data_receive_0 execute Clock_receive_high execute Clock_low end repeat call Stop end unit unit "Test Address 011" execute Set_values execute Address_011 !Set address of device. call Start call Slave_address !Address the particular device. execute Data_0 execute Clock_high execute Clock_low repeat 2 times execute Data_1 execute Clock_high execute Clock_low end repeat execute Data_0 !Write bit. execute Clock_high execute Clock_low execute Clock_receive_high !Acknowledge from the device. execute Data_receive_0 execute Clock_low repeat 2 times execute Data_0 !Write to memory address 33h execute Clock_high execute Clock_low execute Data_0 execute Clock_high execute Clock_low execute Data_1 execute Clock_high execute Clock_low execute Data_1 execute Clock_high execute Clock_low end repeat execute Data_receive_0 !Acknowledge from device. execute Clock_receive_high execute Clock_low repeat 2 times !Write CCh to memory address 33h. execute Data_1 execute Clock_high execute Clock_low execute Data_1 execute Clock_high execute Clock_low execute Data_0 execute Clock_high execute Clock_low execute Data_0 execute Clock_high execute Clock_low end repeat execute Clock_receive_high execute Data_receive_0 !Acknowledge from device. execute Clock_low call Stop call Start call Slave_address !Address a different device. repeat 3 times execute Data_1 execute Clock_high execute Clock_low end repeat execute Data_0 !Write bit. execute Clock_high execute Clock_low execute Data_1 !Acknowledge bit. execute Clock_high execute Clock_low repeat 2 times !Write to memory address 33h. execute Data_0 execute Clock_high execute Clock_low execute Data_0 execute Clock_high execute Clock_low execute Data_1 execute Clock_high execute Clock_low execute Data_1 execute Clock_high execute Clock_low end repeat execute Data_1 !Acknowledge bit. execute Clock_high execute Clock_low repeat 2 times !Write 33h to the specified Address. execute Data_0 execute Clock_high execute Clock_low execute Data_0 execute Clock_high execute Clock_low execute Data_1 execute Clock_high execute Clock_low execute Data_1 execute Clock_high execute Clock_low end repeat execute Data_1 !Acknowledge bit. execute Clock_high execute Clock_low call Stop call Start call Slave_address !Address the particular device. execute Data_0 execute Clock_high execute Clock_low repeat 2 times execute Data_1 execute Clock_high execute Clock_low end repeat execute Data_0 !Write to memory address. execute Clock_high execute Clock_low execute Clock_receive_high execute Data_receive_0 !Acknowledge from device. execute Clock_low repeat 2 times !Access memory address 33h. execute Data_0 execute Clock_high execute Clock_low execute Data_0 execute Clock_high execute Clock_low execute Data_1 execute Clock_high execute Clock_low execute Data_1 execute Clock_high execute Clock_low end repeat execute Data_receive_0 !Acknowledge from device. execute Clock_receive_high execute Clock_low call Start call Slave_address !Address the particular device. execute Data_0 execute Clock_high execute Clock_low repeat 2 times execute Data_1 execute Clock_high execute Clock_low end repeat execute Data_1 !Read bit. execute Clock_high execute Clock_low execute Data_receive_0 !Acknowledge from device. execute Clock_receive_high execute Clock_low repeat 2 times !Transmit data CCh. execute Data_receive_1 execute Clock_receive_high execute Clock_low execute Data_receive_1 execute Clock_receive_high execute Clock_low execute Data_receive_0 execute Clock_receive_high execute Clock_low execute Data_receive_0 execute Clock_receive_high execute Clock_low end repeat call Stop end unit unit "Test Address 100" execute Set_values execute Address_100 !Set address of device. call Start call Slave_address !Enable the device. execute Data_1 execute Clock_high execute Clock_low repeat 2 times execute Data_0 execute Clock_high execute Clock_low end repeat execute Data_0 !Write bit. execute Clock_high execute Clock_low execute Clock_receive_high !Acknowledge bit from the device. execute Data_receive_0 execute Clock_low repeat 2 times !Write to address CCh. execute Data_1 execute Clock_high execute Clock_low execute Data_1 execute Clock_high execute Clock_low execute Data_0 execute Clock_high execute Clock_low execute Data_0 execute Clock_high execute Clock_low end repeat execute Clock_receive_high execute Data_receive_0 !Acknowledge received from device. execute Clock_low repeat 4 times !Write AAh to the specified Address. execute Data_1 execute Clock_high execute Clock_low execute Data_0 execute Clock_high execute Clock_low end repeat execute Clock_receive_high !Acknowledge from the device. execute Data_receive_0 execute Clock_low call Stop call Start call Slave_address !Write to a different device. repeat 3 times execute Data_0 execute Clock_high execute Clock_low end repeat execute Data_0 !Write bit. execute Clock_high execute Clock_low execute Data_1 !Acknowledge bit. execute Clock_high execute Clock_low repeat 2 times !Write to memory address CCh. execute Data_1 execute Clock_high execute Clock_low execute Data_1 execute Clock_high execute Clock_low execute Data_0 execute Clock_high execute Clock_low execute Data_0 execute Clock_high execute Clock_low end repeat execute Data_1 !Acknowledge bit. execute Clock_high execute Clock_low repeat 4 times !Write 55h to address. execute Data_0 execute Clock_high execute Clock_low execute Data_1 execute Clock_high execute Clock_low end repeat execute Data_1 !Acknowledge bit. execute Clock_high execute Clock_low call Stop call Start call Slave_address !Access the device. execute Data_1 execute Clock_high execute Clock_low repeat 2 times execute Data_0 execute Clock_high execute Clock_low end repeat execute Data_0 !Write bit. execute Clock_high execute Clock_low execute Clock_receive_high execute Data_receive_0 !Acknowledge received from device. execute Clock_low repeat 2 times !Access memory address CCh. execute Data_1 execute Clock_high execute Clock_low execute Data_1 execute Clock_high execute Clock_low execute Data_0 execute Clock_high execute Clock_low execute Data_0 execute Clock_high execute Clock_low end repeat execute Clock_receive_high execute Data_receive_0 !Acknowledge from device. execute Clock_low call Start call Slave_address !Access device. execute Data_1 execute Clock_high execute Clock_low repeat 2 times execute Data_0 execute Clock_high execute Clock_low end repeat execute Data_1 !Read bit. execute Clock_high execute Clock_low execute Data_receive_0 !Acknowledge from device. execute Clock_receive_high execute Clock_low repeat 4 times !Transmit data AAh. execute Data_receive_1 execute Clock_receive_high execute Clock_low execute Data_receive_0 execute Clock_receive_high execute Clock_low end repeat call Stop end unit unit "Test Address 101" execute Set_values execute Address_101 !Set address of device. call Start call Slave_address !Address the particular device. execute Data_1 execute Clock_high execute Clock_low execute Data_0 execute Clock_high execute Clock_low execute Data_1 execute Clock_high execute Clock_low execute Data_0 !Write bit. execute Clock_high execute Clock_low execute Clock_receive_high !Acknowledge from the device. execute Data_receive_0 execute Clock_low repeat 8 times !Write to memory address 00h. execute Data_0 execute Clock_high execute Clock_low end repeat execute Data_receive_0 !Acknowledge from device. execute Clock_receive_high execute Clock_low repeat 2 times !Write CCh to memory address 00h. execute Data_1 execute Clock_high execute Clock_low execute Data_1 execute Clock_high execute Clock_low execute Data_0 execute Clock_high execute Clock_low execute Data_0 execute Clock_high execute Clock_low end repeat execute Clock_receive_high execute Data_receive_0 !Acknowledge from device. execute Clock_low call Stop call Start call Slave_address !Address a different device. repeat 3 times execute Data_1 execute Clock_high execute Clock_low end repeat execute Data_0 !Write bit. execute Clock_high execute Clock_low execute Data_1 !Acknowledge bit. execute Clock_high execute Clock_low repeat 8 times !Write to memory address 00h. execute Data_0 execute Clock_high execute Clock_low end repeat execute Data_1 !Acknowledge bit. execute Clock_high execute Clock_low repeat 2 times !Write 33h to the specified Address. execute Data_0 execute Clock_high execute Clock_low execute Data_0 execute Clock_high execute Clock_low execute Data_1 execute Clock_high execute Clock_low execute Data_1 execute Clock_high execute Clock_low end repeat execute Data_1 !Acknowledge bit. execute Clock_high execute Clock_low call Stop call Start call Slave_address !Address the particular device. execute Data_1 execute Clock_high execute Clock_low execute Data_0 execute Clock_high execute Clock_low execute Data_1 execute Clock_high execute Clock_low execute Data_0 !Write to memory address. execute Clock_high execute Clock_low execute Clock_receive_high execute Data_receive_0 !Acknowledge from device. execute Clock_low repeat 8 times !Access memory address 00h. execute Data_0 execute Clock_high execute Clock_low end repeat execute Data_receive_0 !Acknowledge from device. execute Clock_receive_high execute Clock_low call Start call Slave_address !Address the particular device. execute Data_1 execute Clock_high execute Clock_low execute Data_0 execute Clock_high execute Clock_low execute Data_1 execute Clock_high execute Clock_low execute Data_1 !Read bit. execute Clock_high execute Clock_low execute Data_receive_0 !Acknowledge from device. execute Clock_receive_high execute Clock_low repeat 2 times !Transmit data CCh. execute Data_receive_1 execute Clock_receive_high execute Clock_low execute Data_receive_1 execute Clock_receive_high execute Clock_low execute Data_receive_0 execute Clock_receive_high execute Clock_low execute Data_receive_0 execute Clock_receive_high execute Clock_low end repeat call Stop end unit unit "Test Address 110" execute Set_values execute Address_110 !Set address of device. call Start call Slave_address !Enable the device. repeat 2 times execute Data_1 execute Clock_high execute Clock_low end repeat execute Data_0 execute Clock_high execute Clock_low execute Data_0 !Write bit. execute Clock_high execute Clock_low execute Clock_receive_high !Acknowledge bit from the device. execute Data_receive_0 execute Clock_low repeat 8 times !Write to address FFh. execute Data_1 execute Clock_high execute Clock_low end repeat execute Data_receive_0 !Acknowledge received from device. execute Clock_receive_high execute Clock_low repeat 4 times !Write AAh to address FFh. execute Data_1 execute Clock_high execute Clock_low execute Data_0 execute Clock_high execute Clock_low end repeat execute Clock_receive_high !Acknowledge from the device. execute Data_receive_0 execute Clock_low call Stop call Start call Slave_address !Write to a different device. repeat 3 times execute Data_1 execute Clock_high execute Clock_low end repeat execute Data_0 !Write bit. execute Clock_high execute Clock_low execute Data_1 !Acknowledge bit. execute Clock_high execute Clock_low repeat 4 times !Write to memory address FFh. execute Data_1 execute Clock_high execute Clock_low end repeat execute Data_1 !Acknowledge bit. execute Clock_high execute Clock_low repeat 4 times !Write 55h to address. execute Data_0 execute Clock_high execute Clock_low execute Data_1 execute Clock_high execute Clock_low end repeat execute Data_1 !Acknowledge bit. execute Clock_high execute Clock_low call Stop call Start call Slave_address !Access the device. repeat 2 times execute Data_1 execute Clock_high execute Clock_low end repeat execute Data_0 execute Clock_high execute Clock_low execute Data_0 !Write bit. execute Clock_high execute Clock_low execute Clock_receive_high execute Data_receive_0 !Acknowledge received from device. execute Clock_low repeat 8 times !Access memory address FFh. execute Data_1 execute Clock_high execute Clock_low end repeat execute Data_receive_0 !Acknowledge from device. execute Clock_receive_high execute Clock_low call Start call Slave_address !Access device. repeat 2 times execute Data_1 execute Clock_high execute Clock_low end repeat execute Data_0 execute Clock_high execute Clock_low execute Data_1 !Read bit. execute Clock_high execute Clock_low execute Data_receive_0 !Acknowledge from device. execute Clock_receive_high execute Clock_low repeat 4 times !Transmit data AAh. execute Data_receive_1 execute Clock_receive_high execute Clock_low execute Data_receive_0 execute Clock_receive_high execute Clock_low end repeat call Stop end unit unit "Test Address 111" execute Set_values execute Address_111 !Set address of device. call Start call Slave_address !Address the particular device. repeat 3 times execute Data_1 execute Clock_high execute Clock_low end repeat execute Data_0 !Write bit. execute Clock_high execute Clock_low execute Clock_receive_high !Acknowledge from the device. execute Data_receive_0 execute Clock_low repeat 4 times execute Data_0 !Write to memory address 0Fh execute Clock_high execute Clock_low end repeat repeat 4 times execute Data_1 execute Clock_high execute Clock_low end repeat execute Data_receive_0 !Acknowledge from device. execute Clock_receive_high execute Clock_low repeat 2 times !Write CCh to memory address 0Fh. execute Data_1 execute Clock_high execute Clock_low execute Data_1 execute Clock_high execute Clock_low execute Data_0 execute Clock_high execute Clock_low execute Data_0 execute Clock_high execute Clock_low end repeat execute Clock_receive_high execute Data_receive_0 !Acknowledge from device. execute Clock_low call Stop call Start call Slave_address !Address a different device. execute Data_0 execute Clock_high execute Clock_low repeat 2 times execute Data_1 execute Clock_high execute Clock_low end repeat execute Data_0 !Write bit. execute Clock_high execute Clock_low execute Data_1 !Acknowledge bit. execute Clock_high execute Clock_low repeat 4 times execute Data_0 !Write to memory address 0Fh execute Clock_high execute Clock_low end repeat repeat 4 times execute Data_1 execute Clock_high execute Clock_low end repeat execute Data_1 !Acknowledge bit. execute Clock_high execute Clock_low repeat 2 times !Write 33h to the specified Address. execute Data_0 execute Clock_high execute Clock_low execute Data_0 execute Clock_high execute Clock_low execute Data_1 execute Clock_high execute Clock_low execute Data_1 execute Clock_high execute Clock_low end repeat execute Data_1 !Acknowledge bit. execute Clock_high execute Clock_low call Stop call Start call Slave_address !Address the particular device. repeat 3 times execute Data_1 execute Clock_high execute Clock_low end repeat execute Data_0 !Write to memory address. execute Clock_high execute Clock_low execute Clock_receive_high execute Data_receive_0 !Acknowledge from device. execute Clock_low repeat 4 times !Access memory address 0Fh. execute Data_0 execute Clock_high execute Clock_low end repeat repeat 4 times execute Data_1 execute Clock_high execute Clock_low end repeat execute Data_receive_0 !Acknowledge from device. execute Clock_receive_high execute Clock_low call Start call Slave_address !Address the particular device. repeat 3 times execute Data_1 execute Clock_high execute Clock_low end repeat execute Data_1 !Read bit. execute Clock_high execute Clock_low execute Data_receive_0 !Acknowledge from device. execute Clock_receive_high execute Clock_low repeat 2 times !Transmit data CCh. execute Data_receive_1 execute Clock_receive_high execute Clock_low execute Data_receive_1 execute Clock_receive_high execute Clock_low execute Data_receive_0 execute Clock_receive_high execute Clock_low execute Data_receive_0 execute Clock_receive_high execute Clock_low end repeat call Stop end unit