INTERFACCIA M10-TANDY 102 CON BUS I2C DI IKIWJQ INFORMAZIONI INDIRIZZI I/O M10 E TANDY 102 E MODIFICHE SCRITTURA PORTA 186 (RS232), PER LETTURA PORTA 208 FARE COME SEGUE: (D5) COLLEGARE 1N4148 DA IC(M23) PIN 15 ->|- A PIN 4 (PORTA BCR A 9 PIN) (D6) " " " " 2 ->|- A PIN 3 " " " 2K7 *-\/\/\/----(VCC) *--(SCL)---> BC238B (C) | | RS232 PIN 3K3 *-------*--------------------* RTS--(4)---/\/\/\/---*----*(B) | 9 PIN __|__ *-------(0V) *----(4) D5 4148 /_\ (E) | (0V)-------(5) | (0V)-------(7) | (VCC)------(9) 0V---(7)---(0V)------* 2K7 *-\/\/\/----(VCC) *--(SDA)---> BC238B(C) | | 3K3 *-------*--------------------* DTR-(20)---/\/\/\/---*----*(B) | __|__ *-------(0V) *----(3) D6 4148 /_\ (E) | | (0V) USO PORTA 208 SOLO LETTURA: D0 = CD MODEM D4 = TBRE UART 74HC244 (M23) D1 = OE UART D5 = LIBERO D2 = FE UART D6 = LIBERO D3 = PE UART D7 = /LPS USO PORTE 8155: PA = 185 PA0-PA7 = TASTIERA PB = 186 PB0,PB1 = DISPLAY PC = 187 PB2 = CLOCK E CICALINO PB3 = RS232 = 0 PB4 = PCS PB5 = ALTOPARLANTE = 1 PB6 = /DTR = 0/1 PB7 = /RTS = 0/1 INPUT 186 = 39 (VALORE FISSO) SCRITTURA PORTA 186: LETTURA PORTA 208 (D5,D6): 39 = (RTS=1/SCL=0, DTR=1/SDA=0) SCL=1/D5=32 39+128+64 = (RTS=0/SCL=1, DTR=0/SDA=1) SDA=1/D6=64 39+128 = (RTS=0/SCL=1, DTR=1/SDA=0) SCL E SDA = 1 = 240 (TANDY) 39+64 = (RTS=1/SCL=0, DTR=0/SDA=1) SCL E SDA = 1 = 241 (M10) SCL = 1 SDA = 0 = 177 SCL = 0 SDA = 1 = 209 EEPROM CONNESSIONI SCL = 0 SDA = 0 = 145 ===___=== (0V)---(1) 2 (8)----(VCC) INDIRIZZO DISPOSITIVO 24C16: (0V)---(2) 4 (7)----(0V) D7 D6 D5 D4 D3 D2 D1 D0 (0V)---(3) C (6)----(SCL) 1 0 1 0 A2 A1 A0 1/0 (0V)---(4) X (5)----(SDA) ========== =========== MODO ========= A BANCO 0-7 R/W (160 DECIMALE) CON 24C32: A2-A1-A0 = 0 SCHEMA D'USO DISPOSITIVO I2C PER 24C16 E SIMILI. SCRITTURA DI UN SOLO DATO: 1) START 2) TX INDIRIZZO DISPOSITIVO = 160 (A0H) + BANCO + D0=0 (SCRITTURA) 3) TX INDIRIZZO LOCAZIONE MEMORIA = 0-255 4) TX DATO 5) STOP SCRITTURA DI UNA STRINGA DI DATI: 1) START 2) TX INDIRIZZO DISPOSITIVO = 160 (A0H) + BANCO + D0=0 (SCRITTURA) 3) TX INDIRIZZO LOCAZIONE MEMORIA = 0-255 4) TX SCRITTURA DATO(1), DATO(2), DATO(3), -> DATO(N) 5) STOP LETTURA DI UN DATO CON INDIRIZZO MEMORIA CASUALE: 1) START 2) TX INDIRIZZO DISPOSITIVO = A0H + BANCO + D0=0 (SCRITTURA) 3) TX INDIRIZZO LOCAZIONE MEMORIA = 0-255 4) START 5) TX INDIRIZZO DISPOSITIVO = A0H + BANCO + D0=1 (LETTURA) 6) RX DATO 7) STOP LETTURA DI UNA STRINGA DI DATI DALL'INDIRIZZO ATTUALE: 1) START 2) TX INDIRIZZO DISPOSITIVO = 160 (A0H) + BANCO + D0=1 (LETTURA) 3) RX DATO(1), RX DATO(2), RX DATO(3), -> RX DATO(N) 4) STOP LETTURA DEL DATO ALL'INDIRIZZO ATTUALE: 1) START 2) TX INDIRIZZO DISPOSITIVO = 160 (A0H) + BANCO + D0=1 (LETTURA) 3) RX DATO 4) STOP ESEMPIO DI LETTURA CASUALE PER 24C32: 1) START 2) TX INDIRIZZO DISPOSITIVO = 160 (A0H) + D0=0 (SCRITTURA) 3) TX INDIRIZZO BANCO 0-15 4) TX INDIRIZZO LOCAZIONE MEMORIA 0-255 5) TX INDIRIZZO DISPOSITIVO = 160 (A0H) + D0=1 (LETTURA) 6) RX DATO 7) STOP NOTA: AL TERMINE DEL DATO TRASMESSO O RICEVUTO IL PROGRAMMA INVIA UN SEGNALE DI CLOCK COME SINCRONISMO (Esempio di programma per 24C16)..(e per 24c32) (Vai a pagina1)