# Conexión correcta de CD4016 o CD4066



## ruben_dj (Abr 10, 2009)

Hola amigos del foro, quería preguntar cual era la forma correcta de concetar el cd4016 o el cd4066, pues mis integrados no responden como los estoy conectando y tengo dudas de que me los hayan vendido quemados. Pero para salir de dudas les pregunto: ¿cómo debo conectar los pines 7 y 14?¿a corriente continua o a corriente alterna?¿necesitaría una fuente?¿como tendría que ser esta?
Muchas gracias por su respuesta y un saludo desde la distancia


----------



## blackpic (Abr 11, 2009)

Amigo por que no pones el circuito que estas usando haci es mas facil a clararte la duda.. y los pines correspondiente a 7 y 14, estos son tierra (GND) y positivo (+VCC) consecutivamente, voltaje DC no voltaje AC ya que si por el contrario lo conectas en AC los dañarias (los quemarias)... mira esta imagen de su data haver si te sirve de algo http://www.premiumorange.com/daniel.robert9/Digit/images/4016_4066.GIF oh si no te recomiendo que pongas una imagen del circuito...


----------



## ruben_dj (Abr 11, 2009)

Gracias por la respuesta Blackpic. Ahí pongo el circuito, bueno en realidad este lo armé para probar el bendito integrado (cd4016 y cd4066), se supone que si es un switch bidireccional analógico debería funcionar bien para prender esos LEDs al presionar su respectivo pulsador, pero esto no sucede. Lo que no entinendo es la parte que pongo con rojo eso que a veces aparece GND o VSS y también VCC o VDD, no entiendo la diferencia. Tampoco entiendo si debo ponerle una fuente y eso de corriente alterna y corriente 
continua y si es que lo puedo conectar a una batería de 9V. 
Les agradezco por su ayuda. Saludos.

PD: ya se habrán dado cuenta: soy principiante jeje


----------



## blackpic (Abr 11, 2009)

amigo espero que con esta imagen puedas soluccionar tu problema hay te muestro 2 maneras de como puedes poner a funcionar el 4066, si te fijas en el primer circuito apago los led ya que los swich estan conectados a tierra y en un segundo los enciendo, ya que los swich estan conectados al positivo... y tienes que saber tambien que los led llevan sus respectivas resistencia de limite para no dañarlo ya que estos operan con un voltaje que circula entre los 2v-3.5v dependiendo del color del led.... ah (VSS-GND), son los mismo y corresponde al pin de tierra.. y (VCC-VDD) son igual tambien y corresponden al pin positivo de tu fuente oh bateria... espero haverte ayudado......


----------



## ruben_dj (Abr 12, 2009)

Gracias por tu respuesta nuevamente. Me parece que en tu segundo circuito los switch no estan bien ubicados, ya que deben ir en los pines de control (6, 5, 12, 13), pues sino practicamente se estaría anulandose el integrado, sería como si no se usara, aunque no estoy muy seguro (soy principiante). Bueno he probado los circuitos que pusiste. Probé incluso lo más basico posible, lo más simplificado: con un solo led, pero tampoco funciono. El LED se mantiene prendido sin presionar el pulsador. Este circuito mas simple es el que pongo en la imagen. Quizas.... sea el voltaje o tal vez... se necesite una fuente simétrica o un rectificador (no entiendo bien que son esas cosas)? No se cómo hacer para que funcione.

Gracias de antemano

Saludos


----------



## Dr. Zoidberg (Abr 13, 2009)

En el esquema modificado que te adjunto está lo que tenes que hacer para que funcione. Ya te lo han explicado antes, pero seguis insistiendo con el mismo esquema que está equivocado.

Vos decís que sos principiante, pero se puede apreciar que no sabés nada de tecnicas analógicas y digitales, así que sería bueno que tomes un libro y vayas leyendo y estudiando, por que en caso contrario nos vamos a pasar el año intentando que enciendas un led.

Por otra parte, te aviso que el esquema que estas usando no es adecuado para encender un LED, por que la capacidad de corriente del switch analógico del CD4066/4016 es insuficiente para manejar los 10 miliamperes que requiere un LED para encender bien y es probable que termines dañando el chip si lo haces....pero quemando se aprende.

La resistencia de 820 ohms que he colado en serie con el LED es imprescindible que vaya puesta ahí y te va a limitar la corriente del LED a menos de 10 mA, pro que el switch analógico también tiene una cierta resistencia interna, que podes ver el valor en la hoja de datos, y que cambia a medida que cambia la tensión de alimentación del chip.

La resistencia de 100K a masa también es necesaria, ya que fija el potencial de la entrada de control del switch cuando el interruptor a Vcc está abierto. Sin ella, es probable que el LED quede siempre encendido o que destelle cuando el interruptor está abierto, debido a la impedancia de entrada de la pata de control.

Saludos!


----------



## vgarzom (Dic 15, 2009)

hola a todos espero que me puedan ayudar, estoy diseñando un dispositivo en el que preciso manejar el control remoto de un TV por medio de un PIC la cuestion es que el control basicamente activa los botones cortocircuitando ciertos pines, yo lo que quiero hacer es conectar esos dos pines a un CD4016 y al activar el habilitador, sean cortocircuitados y le hagan creer al control que se presionó el botón. Mi pregunta es, lo puedo hacer con el CD4016 o existe algo mas recomendable, les comento también que he intentado con el 4016 pero definitivamente no pasa nada, hice la conexión que muestra el amigo ezavalla donde basicamente a los pines 1 y 2 conectaba era los pines del control, pero nada pasa cuando presiono el boton. Otra cosa, en el data Sheet dice que puedo polarizar con 5V, lo que para mi sería muy bueno porque el pic es TTL, la pregunta es: que tan recomendable es polarizar con 5V o es mejor con 12V?, gracias por la ayuda que puedan prestar.


----------



## ruben_dj (Dic 20, 2009)

Hola. Al igual que tú he probado todos los circuitos que se publicaron arriba y ninguno me funcionó. Claro que cuando uno lo prueba en algun programa de simulación de circuitos sí funciona, pero cuando uno lo arma no resulta. Mira, buscando y buscando encontré este link http://www.doctronics.co.uk/4016.htm allí hay una imagen de un circuito de prueba con leds (mostrado abajo) que fue el único que a mí me funcionó.







Parece que son necesarias esas resistencias y sobre todo el condensador, pero lo que no entiendo mucho es cuál es su función.

Ahora respecto al voltaje, debes recordar que este switch CD4016 tiene una resistencia que varía respecto al voltaje que le suministres y a la temperatura. En la hoja de datos están esos datos para algunos voltajes. Me parece que mientras mayor es el voltaje menor es la resistencia. Ah y menor resistencia ofrece su hermano CD4066. Por lo tanto debes elegir el voltaje de acuerdo a lo que tu circuito requiera.

Espero haberte ayudado anuque sea un mínimo.

Saludos


----------



## vgarzom (Dic 22, 2009)

Hola Ruben gracias por responder, te comento que el problema ya lo había corregido y pues olvidé anunciarlo aquí, pero te agradezco mucho la respuesta, aprovecho para comentar que el circuito que muestras allí debe funcionar perfectamente, porque algo parecido fue lo que monté aunque no necesitaba las resistencias porque mi conexión no era hacia un interruptor sino hacía un microcontrolador, esa resistencia de 10K que se muestra se debe utilizar para que el CD vea tierra cuando el interruptor esté abierto y no vea un circuito abierto (es necesaria, porque el CD se deshabilita cuando se hace conexión a tierra, si no ve la tierra siempre se queda habilitado), la resistencia de 470 supongo que la utilizan para limitar la corriente que fluye hacia el LED y evitar que se queme (es de 470 porque tienen una fuente de 9V, si pones una de 5V con una R de 220 estaría bien) el capacitor no estoy seguro, supongo que es para eliminar el rizado que pueda tener la fuente de voltaje y hacerla mas DC pero no te aseguro nada. De nuevo agradezco por responder ahh y agrego el CD4016 si se puede polarizar con 5V, la verdad mi problema resultó ser que la protoboard tenía una línea rota y no estaba llegando la conexión a tierra hasta el integrado, solo lo descubrí haciendo muchas medidas y la verdad son los problemas que uno menos espera. gracias


----------



## palanis (May 13, 2010)

Estuve leyendo y vi que he hecho mal, prebe conectar el 4066 y la hice sin las R. Se quema el IC?

Gracias


----------



## matalcacer (Sep 16, 2010)

Perdon que me entrometa en este tema pero estaba buscando informacion del CD4066 y del 74HC4066.

Alguien me puede decir que integrado puedo utilizar para hecar lo siguiente ????:
Quiero que al oprimir un pulsador sin retencion, este pulso se convierta en 4 salidas. 2 salidas que permanezcan cerradas mientras el pulsador esta apretado y las otras dos que se mantegnan cerradas aunque soltemos el boton y que, para que vuelvan a estar abiertas, tengamos que pulsar nuevamente. En definitiva tengo que convertir un pulsador simple en uno con 2 salidas de pulsador y 2 tipo switch On/off.

Perdonen pero mis conocimientos de electrónica no son muchos pero soy bastante bueno siguiendo esquemas pero, de alli a diseñarlo..........

Desde ya muchas gracias y disculpen por colarme en este tema.

Saludos:
Matías.


----------



## Cacho (Sep 16, 2010)

matalcacer dijo:


> Quiero que al oprimir un pulsador sin retencion[...]2 salidas que permanezcan cerradas mientras el pulsador esta apretado...


Para esto no necesitás ningún circuito 


matalcacer dijo:


> ...y las otras dos que se mantegnan cerradas aunque soltemos el boton...


Un Flip Flop y tomás las dos salidas de ahí.

No busques una solución compleja si hay una simple 


Saludos


----------



## gonbaldan (Dic 4, 2010)

Hola Amigos del foro, estoy usando un cd4016 en forma de switch analógico, quisiera saber cual es la razon por la que al enviar un uno por la pata de control (ej. 13) se produce una caida de voltaje a la entrada (seria pin 1), dejando pasar a la salida un valor mas bajo. Por ejemplo lo que esta pasando es lo siguiente:
Tengo 3V a la entrada en el pin 1 cuando el pin de control de ese puerto esta a GND, pero cuando pongo el control a VCC la tension que hay a la entrada del pin 1 cae de 3v a 2,45v dejando pasar este nuevo valor a la salida.
(es normal que se produzca semejante caida de tension???)
alguien me puede dar una mano??


----------



## Fogonazo (Dic 4, 2010)

gonbaldan dijo:


> Hola Amigos del foro, estoy usando un cd4016.....


¿ Esquema ? la descripción *NO* se entiende


----------



## gonbaldan (Dic 4, 2010)

ok, aca envio el esqeumático,

http://img10.imageshack.us/i/switch4016.png/

Básicamente son 4 señales que vienen de relojes de temperatura, presión, etc. de una máquina en forma de onda contínua de 0 a 5V. 
El Micro es un pic18f452 que básicamente lee las señales de voltaje, y devez en cuando deja pasar de a pares las señales, seleccionando los puertos de control (pines 12,13,5,6) del 4016, a través de las salidas del pic (CONT1/4).
y Aqui resumo el problema que tengo, ya sea en el circuito, el cual ya esta implementado, o cuando pruebo el 4016/4066 solo en protoboard, lo que pasa es que cuando llega una señal de por ej 3v a una entrada, y cambia el estado de la pata de control del 4016, de "cerrado" a "abierto", se produce una caida de voltaje, significativa, pasando de 3v a 2,4, midiendo 2,4V tanto a la entrada como a la salida.

He probado con alimentacion de 12v y 5v, usando ese mismo voltaje para excitar los puertos de control, tambien probé colocando resistencias de 100k o 10k a masa (en todas las entradas de control).

Sospecho que puede ser algun problema de corriente, pero no me doy cuenta como solucionarlo, 
espero que algun iluminado se pueda ver que es...
Gracias desde ya!

las IN2, IN3, IN4, IN5 son las entradas analogicas que multiplexa el 4016.


----------



## Meta (Ene 25, 2011)

En la imagen parece ser que el interrutor está cerrado, el Led se apaga, pensé que era que si un PIC le da 5V y cierra el circuito, el Led se enciende y aquí el famoso CD4016 lo hace al revés de lo que creía.

Ver el archivo adjunto 16828


----------



## Juanjopli (Ago 1, 2011)

Hola estoy intentando controlar una una señal senoidal con el integrado CD4066 mi intención es que el paso de esta señal este controlado a través de un arduino. Pero no consigo que funcione correctamente.
Adjunto pongo como lo tengo conectado( R1 es de 10K) y unas capturas de lo que obtengo.

Si os fijáis en las capturas que hice en el osciloscopio  la señal senoidal que obtengo a la salida viene con offset y ademas de cuando no tiene activa la señal de control(5 V) pasa la señal con una amplitud(200 mVpp Aprox.) cuando no debería haber nada.

A ver si alguien que haya trabajado con este integrado puede ayudarme.

Gracias de antemano.


----------



## Black Tiger1954 (Ago 1, 2011)

Qué amplitud tiene la señal sinusoidal?
La tensión de control (5V) me parece muy baja, para una alimentación de 10 volts recomiendan 7 volts, si la placa de control maneja 5 volts, te aconsejo bajar la alimentación del 4066 a ese mismo valor, o en su defecto usá un transistor extra para controlarlo.
A la salida le estás poniendo alguna carga?
El osciloscopio está conectado en DC?


----------



## Juanjopli (Ago 1, 2011)

Hola Black Tiger1954, gracias por responder:
A la salida tengo unas resistencia de 100K
he conectado el switch a 5 V y sale lo mismo, pero sigue saliendo lo mismo aunque deje la patilla al aire.
La señal tiene una amplitud de unos 2 voltios la cual puedo regular ya que la salida de este integrado tengo que amplificarla. Por ello quiero quitar el problema del offset y del paso de señal cuando no deberia.


----------



## Black Tiger1954 (Ago 1, 2011)

Ok Juanjo. El primer detalle es que para tener un offset de 0 volts, el CD4066 lo tenés que alimentar con +/- no con +/gnd, en este caso +5/-5 debería funcionar bien.
Eso te puede complicar un poquito el control pero no mucho.
La pata de control no debe dejarse al "aire", o va a Vdd o a Vss, pero nunca al aire.

PD: también podés desacoplar las señales mediante capacitores, pero seguro que va a producir un "plop" cuando conmute.


----------



## THE BAD BOY ELECTRONIC (Dic 8, 2011)

estoy armando un circuito para mi tesis de educacion media tecnica pero como ando apenas estudiando pic no lo se usar correctamente y ps ando haciando un circuito q comute un motor de limpia parabrisas de 12v que jiere a un lado, luego al otro y se detenga he estado investigando y ps como ya estado usasndo un rele quise sustituir un rele por un 4066 para cortar la corriente y el motor se detenga pero no consigo q lo aga el enviare el circuito una imagen y por liverwire para el q lo tenga si sabe mi herror por favor ayuda


----------



## BKAR (Dic 9, 2011)

porque pensaste que el 4066 serviría?
a los integrados CMOS no les puedes exigir mucha corriente, con la justas para encender LEDs
mucho menos para interrumpir una linea que controla motores
al igual que el 4017, ponle resistencias a los LEDs
porque no usas algún transistor como TIPs para interrumpir el Relay


----------



## elaficionado (Dic 9, 2011)

Hola.

Como ya te han dicho el 4066 sólo soporta hasta 10mA.

Hice unos pequeños cambios. (no entiendo para qoe están los LEDs. Debes ponerles una resitencia limitadora.)




Chao.
elaficioando.


----------



## xalapigonia (Ene 30, 2012)

Hola, necesito multiplexar seÑales del puerto serie, leyendo y revisando lo que aqui se ha tratado, he pensado en este circuito, por favor si tienen alguna correcion haganmela llegar, muchas gracias, aca les dejo adjunto el circuito.



Les explico, la idea que tengo es esta, inicialmente el micro recibira data de la pc ya que el pin de control estara en cero al iniciar el micro, luego cuando se requieran datos del otro micro se activa la salida y recibira los datos del otro micro, no se si me dejo entender, quisiera saber si esto funcionara?????,,   y tambien si esto funcionara para usar un bootloader con el micro 16f877a que es el principal. Espero me haya dejado entender, espero su ayuda gracias de antemano.


----------



## Meta (Ene 31, 2012)

xalapigonia dijo:


> Hola, necesito multiplexar seÑales del puerto serie, leyendo y revisando lo que aqui se ha tratado, he pensado en este circuito, por favor si tienen alguna correcion haganmela llegar, muchas gracias, aca les dejo adjunto el circuito.
> 
> 
> 
> Les explico, la idea que tengo es esta, inicialmente el micro recibira data de la pc ya que el pin de control estara en cero al iniciar el micro, luego cuando se requieran datos del otro micro se activa la salida y recibira los datos del otro micro, no se si me dejo entender, quisiera saber si esto funcionara?????,,   y tambien si esto funcionara para usar un bootloader con el micro 16f877a que es el principal. Espero me haya dejado entender, espero su ayuda gracias de antemano.



Échate una leída con este manual del puerto serie.

http://electronica-pic.blogspot.com/2008/11/electrnica-pic.html

Un saludo.

Saludo.


----------



## perejil (Sep 25, 2013)

Hola, queria hacer un switch de audio de 4 canales con un par de cd4066.

Tengo dudas en la tensión a aplicar sobre los pines de control:

 Si aplico directamente más de 1/3 de la corriente de alimentación a este pin cambia a estado alto. Pero,

1) Para que cambie a estado bajo, bastaría con cortar el suministro de corriente a ctrl, por ejemplo mediante un interruptor? Hay que conectar ctrl a gnd? Alimentarlo con divisor resistivo?

Algún consejo?


Muchas gracias ...


----------



## Scooter (Sep 25, 2013)

No entiendo nada, los MOS no van por corriente, van por tensión y no sabes cual es la corriente de alimentación porque no sabes cuanto consume el circuito así que no sabes como forzar la corriente a un tercio y además el pin no lo admite porque está aislado.
Creo que confundes corriente con tensión. Ojo porque en el lenguaje coloquial se dice "la corriente de mi casa está a 220V" cuando son 230V y y el voltio es unidad de tensión, no de corriente.

No puedes dejar pines de entrada al aire en un circuito CMOS porque eso es una antena, o los pones a "1" o a "0" lógico, normalmente se pone un interruptor a positivo y una resistencia a negativo con un pequeño condensador en paralelo de forma que si cierras da un 1 lógico y si abres la resistencia da un 0 lógico.


----------



## perejil (Sep 25, 2013)

Si eso es, me refería a la tensión, mis disculpas por los errores, soy un aficionado.


Adjunto otro esquema más que creo, este si es correcto (si no es así, corrijanme por favor). Si estoy en lo cierto, para conmutar 4 canales de sonido hacen falta 2 circuitos como este.

Yo lo voy a usar para lineas de previo de un radiocd de auto, por lo que creo que no tendré distorsión. Me comentaba un compañero del foro que en caso de problemas de distorsión se puede usar alimentación simétrica.  Entiendo que sería mejor utilizar una tierra virtual para alimentar el chip desde una batería?


Un saludo


----------



## perejil (Oct 28, 2013)

Hola, he conectado un par de 4066 como en el dibujo adjunto, para conmutar audio (señal de previos) 

El problema: Cuando los contactos del 4066 estan abiertos el audio se sigue escuchando a un volumen muy bajito y distorsionado (es decir cuando control está conectado a 0v), y no debería escucharse audio alguno con los contactos del cmos abiertos.

¿Alguien sabe porque no se silencia el audio, si los contactos están abiertos?

Un saludo


----------



## el_patriarca (Abr 2, 2014)

hola, espero que me puedan ayudar con esto:

tengo un pic16f877 con el que deseo controlar varios tda7439 mediante i2c. el tda7439 tiene la misma dirección que es única y no es modificable, por lo tanto para direccionar un  tda en específico, decidí conectar de por medio un cd4016.

mi duda es si debo conectar las resistencias de pull up a la salida del pic, donde creo que la entrada del tda quedaría flotante. o debo conectarlas a la entrada del tda, o es que debo conectar dos resistencias de pull up. una en la entrada y otra a la salida.


dejo adjunto un diagrama donde se entiende mejor lo que pretendo hacer. agradezco de antemano si alguien puede aclarar mi duda o tiene una solución mejor. estare muy agradecido por la ayuda.


----------



## Fogonazo (Abr 2, 2014)

el_patriarca dijo:


> hola, espero que me puedan ayudar con esto: . . . .



No comprendo que es lo que deseas hacer.

¿ Que función cumplen las resistencias en tu esquema ?


----------



## el_patriarca (Abr 2, 2014)

Fogonazo dijo:


> No comprendo que es lo que deseas hacer.



deseo conectar las salidas i2c del pic16f877 a las entradas i2c del tda7439 mediante un interruptor bilateral 4016




Fogonazo dijo:


> ¿ Que función cumplen las resistencias en tu esquema ?



son resistencias de pull up.


----------



## chclau (Abr 2, 2014)

Si vas a poner varios TDA, para mi deberia funcionar poniendo una resistencia solamente a la salida para cada integrado.

No se si el i2c lo haces por Hw o por Sw, si lo haces por SW otra solucion seria generar multiples salidas SCL en lugar de usar sel y asi no necesitarias ningun HW adicional.


----------



## el_patriarca (Abr 3, 2014)

chclau dijo:


> Si vas a poner varios TDA, para mi deberia funcionar poniendo una resistencia solamente a la salida para cada integrado.
> 
> No se si el i2c lo haces por Hw o por Sw, si lo haces por SW otra solucion seria generar multiples salidas SCL en lugar de usar sel y asi no necesitarias ningun HW adicional.




la verdad es que estoy todavía aprendiendo, por eso no entendí los términos que empleaste. pero me interesa la parte donde dices que se pueden generar múltiples salidas scl desde el PIC, con eso ya no habría necesidad de utilizar un interruptor. te agradecería mucho si puedes darme más información al respecto o si puedes decirme donde puedo encontrar más detalles para eso.


----------



## chclau (Abr 3, 2014)

I2C en principio es un protocolo por HW. Si un micro soporta I2C, lo que quiere decir es que vos le escribis a un registro y el HW del micro convierte los datos del registro de paralelo a serie y los envia, o de serie a paralelo y te manda una interrupcion para avisar que recibio algo.

Pero el protocolo I2C es muy simple y se puede realizar por SW, basta encender y apagar dos puertos de la forma que lo requiere el protocolo. Eso si, va a ser mucho mas lento que su contraparte por HW. No se decirte especificamente para el PIC si hay ejemplos de como hacerlo... apostaria a que si. Busca notas de aplicacion de Microchip.


----------



## papirrin (Abr 3, 2014)

SW=Software HW=Hardware, yo tambien es la primer vez que veo esas siglas 



Estuve viendo el datasheet del TDA7439, y no requiere de velocidad , el i2c solo lo necesita para configuracion como volumen, mute, y cosas asi.

asi que por software se podria sin problema y no se necesitaria hardware adicional, eso si...  tener disponibles los pines en el pic necesarios, o poner un pic esclavo.
p.d. si estas  programado en ensamblador si seria mejor con el 4066 y el i2c por hardware, menos trabajo


----------



## el_patriarca (Abr 3, 2014)

les agradezco a ambos. pues si, el tda7439 según he visto no puede ser leído, solo recibe y se configura de acuerdo a lo que se le envía. 

lo que me sugieren es que, en vez de usar un interruptor bilateral, puedo programar el protocolo i2c y conectar varios tda a mis pines del pic. y luego por mi programa yo puedo enviar los datos por el puerto que quiera. o sea por dos pines cualquiera que harían de scl y sda. o entendí mal?

nuevamente gracias y me pondré manos a la obra ya mismo.


----------



## papirrin (Abr 3, 2014)

entendi que entendiste bien... XD

en lugar de usar dos puertos por TDA puedes compartir el SCL (clock) para todos.


----------



## el_patriarca (Abr 3, 2014)

mas fácil aún, claro...

 muchas gracias papirrín. voy a poner todo mi esfuerzo y les avisaré que tal me fue.


----------



## chclau (Abr 3, 2014)

Dado que hace este truco porque todos los esclavos tienen la misma direccion... y para evitar bugs dificiles de detectar... recomendaria usar SDA y SCL separados para cada esclavo.


----------



## papirrin (Abr 3, 2014)

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



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.


----------



## el_patriarca (Abr 3, 2014)

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.


----------



## papirrin (Abr 3, 2014)

que lenguaje usas? ( no me contestes que español e ingles )



notese que no tengo nada que hacer XD

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


```
#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:

```
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


----------



## el_patriarca (Abr 3, 2014)

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.


----------



## chclau (Abr 3, 2014)

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.


----------



## papirrin (Abr 3, 2014)

> 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.





chclau dijo:


> 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.


----------



## el_patriarca (Abr 3, 2014)

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


----------



## chclau (Abr 3, 2014)

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.


----------



## papirrin (Abr 3, 2014)

si... lo mas simple es que lo simules. si tienes dudas o te atoras pon la simulacion y el codigo que hagas, yo se un poco de C en CCS.


----------



## el_patriarca (Abr 4, 2014)

lo estoy simulando y ha funcionado, ahora estoy armando para poner la teoría en práctica . pero para no offtopiquear más este hilo, estoy colocando mi código y mis posts en éste otro:

https://www.forosdeelectronica.com/f30/pre-amplificador-digital-pcb-25732/



a ver si se pasan por allí ambos. gracias a vuestras ideas he podido avanzar mucho en éste proyecto.


----------

