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)
');
//-->