Conexión correcta de CD4016 o CD4066

bueno a lo mejor quedo algo confuso yo lo que decia era esto:

Dibujo.JPG

no debe haber ningun problema si se envia la trama (address+subaddress+data) por el SDA respectivo correctamente.

pd. en el diseño puse un circuito diferente al TDA porque en proteus no hay ese TDA.
 
Última edición:
verdad, mejor hago scl's y sda's para cada uno para evitar posibles errores.

si, no hay modelo del tda, para mis simulaciones yo uso una eeprom que además me muestra el mapa de memoria para saber qué dato le llega.
 
que lenguaje usas? ( no me contestes que español e ingles :LOL:)



notese que no tengo nada que hacer XD

mira no hay posibles errores...
si es en C porque puedes crear un stream:

Código:
#use i2c(Master,Slow,sda=PIN_c1,scl=PIN_C0,stream=TDA1)
#use i2c(Master,Slow,sda=PIN_C2,scl=PIN_C0,stream=TDA2)

//enviara TDA1
i2c_start(TDA1);    // Start condition
i2c_write(TDA1,ADD);// Device address
i2c_write(TDA1,SUBA);// subadress
i2c_write(TDA1,DAT);// DATA
i2c_stop();     // Stop condition

//enviara TDA2
i2c_start(TDA2);    // Start condition
i2c_write(TDA2,ADD);// Device address
i2c_write(TDA2,SUBA);// subadress
i2c_write(TDA2,DAT);// DATA
i2c_stop();     // Stop condition

}

si es en basic menos, porque dirijes el puerto desde la instruccion:
Código:
I2CWRITE PORTC.1,PORTC.0,add,suba,dat ' TDA1
I2CWRITE PORTC.2,PORTC.0,add,suba,dat 'TDA2

si es en ASM no discuto nada, ahi hay bugs desde la primer linea :LOL:
 
Última edición:
creo que me acabas de hacer los deberes.

si, uso el ccs y estaba viendo algo por ahí. lo que no entiendo es eso de los streams. estoy investigando. por ahora veo que puedo implementar dos canales i2c, espero que se pueda implementar más canales.
 
Hay posibilidad de errores porque la condicion de start se basa en un estado ilegal que juega tanto con clk como con data, no digo que no se pueda hacer pero al tener todos la misma direccion, y con el mismo clock, cualquier bug o ruido sera un problema. Revisen el protocolo I2C y veran por que lo digo.
 
lo que no entiendo es eso de los streams.

nose como explicar literalmente eso de los streams, pero son como subrutinas por decir algo.

por ahora veo que puedo implementar dos canales i2c, espero que se pueda implementar más canales.
si puedes, no se cuantos exactamente, dependeria de la capacidad del micro en la memoria flash.



Hay posibilidad de errores porque la condicion de start se basa en un estado ilegal que juega tanto con clk como con data, no digo que no se pueda hacer pero al tener todos la misma direccion, y con el mismo clock, cualquier bug o ruido sera un problema. Revisen el protocolo I2C y veran por que lo digo.

pero cual error si no le mandas la misma direccion a todos, solo a uno, y el clock no manda nada solo va de alto a bajo y nada mas.

yo por mas que le busco no encuentro como.
 
Última edición:
chclau, ésto es lo que estoy haciendo:


#use i2c(master, Slow, sda=PIN_C1, scl=PIN_C0, stream=TDA1)
#use i2c(master, Slow, sda=PIN_C4, scl=PIN_C3, stream=TDA2)


//código para tda2
//código para tda1
 
Última edición:
Hola,

Lo estas simulando?
Te comento que, como ya puse antes, no tengo mucha experiencia con PIC. Con I2C, un poco mas. Parece correcto, pero supongo que lo mas simple es simularlo primero.
 
Atrás
Arriba