# problemas con decodificador DTMF



## remramon2007 (Nov 24, 2007)

hola gente del foro como estan?
bueno yo aca ando con un problemita en un decodificador DTMF que estoy armando con un circuito integrado CM8870PI probe 3 integrados y uno lo compre estos dias asi que no creo que sea eso..
el circuito que estoy armando es el que se puede encontar en el siguiente link:

http://www.pablin.com.ar/electron/circuito/telefon/decdtmf/index.htm

y tambiuen estube mirando el que esta en 
https://www.forosdeelectronica.com/download.php?id=626 

el segundo link lo saque de esta misma pagina y realise las pruebas que en dicha pagina se comentaban, dandome todas bien hasta llegar a la que se tenia que obtener una tension en el pin15 y en los pines 14,13,12,11.

la tension con que alimente el integrado fue con 3.86 volts y despues la ahumente a 5 volts.

estoy tomando la señal de mi linea de telefono (no probe tomarla del audicular).

dos grandes dudas que tengo son:
1 - en ves de usar una resistencia de 300 K estoy usando una de 330 K
2 - como dije antes estoy tomando señal de mi linea de telefono y para probar el circuito lo que hago es levantar el audicular y pulsar las teclas.
mi duda en el item 2 es si esta bien que levante el tubo del telefono y comiense a marcar o lo que tengo que hacer es si levanto yo el tubo tengo que tomar señal del parlante y si la llamada es una llamada entrante ahi si puedo tomar señal de la linea de telefono.

otra cosa ya consulte los datasheet del integrado y arme esos circuitos conectandolos a la linea de telefono y lo probe levantando el audicular y pulsando las teclas del telefono.

otro dato soy de argentina y tengo telefonica y tengo speedy no se si esto afectara en algo.

un abrazo y gracias.


----------



## El nombre (Nov 24, 2007)

Lo tengo montado y va bien. 
Ahora bien:
Quita la r3 y coloca un puente rectificador antes para garantizar que siempre colocas el positivo al condensador y el negativo quede en su sitio. 

Esa R no te aparece en ningun datasheet.

Saludos y cuenta como te ha ido


----------



## remramon2007 (Nov 24, 2007)

gracias "el nombre" probe lo que me dijiste pero sigue sin funcionar :s y son 3 integrados los que estoy probando coloque un puente rectificador conecte la linea y de la salida  + me mande al integrado y con la otra a masa.


----------



## El nombre (Nov 24, 2007)

has quitado la R?


----------



## El nombre (Nov 24, 2007)

coloca unos leds con su R limitadora a la salida quitando los inversores a ver si encienden correctamente.


----------



## remramon2007 (Nov 24, 2007)

hola paso a contarte si quite la resistencia que me decias y programe un pic con el comando dtmfout para tener una señal dtmf y la meti en el capacitor y si me anda el circuito probe los tres integrados y todo bien .
pero... la placa me sigue sin funcionar cuando conecto la linea de telefono, probe armar un circuito rectificador para evitar conectar la linea de telefono al revez, es decir conectar el positivo a masa y el negativo al capacitor. igual medi la linea y la conecte "bien" sin el circuito rectificador.
esto me esta volviendo loco y por lo visto el problema es la linea ya que la placa funciona bien. el telefono esta en pulsos y lo unico raro es que tengo speedy y tengo todo conectado a la caja qeu te deja la gente de telefonica para que funcione el telefono asi que esto no tendria que ser problema a y otra cosa ya probe la placa directo a la caja de tel de la pared quitando todos los accesorios para internet

mi otra duda lei que el integrado mt88l70 se conecta a la linea de tel y que el cm8870pi (que es el que estoy usando) va conectado al parltante del telefono. esto sera asi?

llevo un rato buscando un generador de tonos dtmf para mi pc para salir con la señal y meterla en el decodificador, aunque ya probe con el pic :s seria para sacarme la duda del todo de que la placa anda.

y por ultimo esto va conectado en forma paralela a la linea de tel nop?, que veo que va en serie y le estoy errando en eso.

gracias por la ayuda que me estan dando


----------



## remramon2007 (Nov 24, 2007)

http://www.pablin.com.ar/electron/circuito/telefon/decdtmf2/index.htm

http://www.pablin.com.ar/electron/circuito/telefon/decdtmf/index.htm

creo que encontre la respuesta a mi problema miren los link y los nombres de los integrados... creo que son distintos y que no trabajan igual.


----------



## remramon2007 (Nov 25, 2007)

buenas gente, yo devuelta por aca... paso a contarles que ya tengo funcionando la placa.
arme el circuito que se encuentra en el datasheet del cm8870pi y para la etapa de conexion de la linea telefonica arme lel circuito que se encuentra en la pagina 7 figura 6.
ahora el problema que tengo es una descarga en la linea.
el circuito sensa sin ningun problema las teclas que se precionan pero... al hablar el ruido es un tanto molesto.

bueno creo que solo falta poco jajaja.


----------



## El nombre (Nov 25, 2007)

El ruido es por la fuente. Prueba con otra, o batería y mira si desaparece.


----------



## remramon2007 (Nov 26, 2007)

hola gente aca estamos despues de haber quemado un par de patas del 16f877a que estoy usando para esto sigo adelante mejorando y agregando cada ves mas cosas a mi placa.
ahora me estoy encontrando con un nuevo desafio.
estoy queriendo simular el descuelgue del tubo del telefono, encontre el siguiente link http://www.pablin.com.ar/electron/circuito/telefon/hangup/index.htm  lo monte pero no me funciono   , me gustaria saber si alguien conoce alguna otra forma de montar este simulador.
digamos que por lo que llevo armado seria lo ultimo que me falta para ya armar algo completo de lo que estoy haciendo.
algo mas para ir sabiendo a cuenta como detecto qeu una linea esta ocupada cuando llamo? y otra cosa como puedo saber si me atendieron del otro lado, para esto ultimo pense en enviar del equipo que responde una señal al equipo que llama, pero me gustaria saber si hay alguna manera de saber que me atendieron.
gracias por ayudarme.
un abrazo


----------



## remramon2007 (Nov 26, 2007)

volvi recien mande un mensaje y aca tiro otro mas no pasaron 2 minutos de que envie el anterior pero digamos que solucione una parte.
paso a contarles, el simulador de orquilla descolgada funciona bien, lo que no me anda es para llamar es decir llamo de mi celular a mi casa y me atiende la placa, preciono teclas en mi celular y el cm8870pi que tengo conectado a la linea de telefono me lee bien las teclas que presione en el celular, pero.... si quiero llamar de mi casa a mi celular no me funciona, si levanto el tubo del telefono el numero que marco en el pic con comandos dtmf salen perfectos y me suena el celular pero... si quiero llamar utilizando el simulador de orquilla descolgada :s no pasa nada no llama, lo que si los pulsos del pic salen y el cm8870pi me los lee, asi que los datos DTMF estan llegando bien a la linea de telefono pero... porque no me suena el celular?


----------



## remramon2007 (Nov 30, 2007)

buenas gente, el problema de la simulacion del  descuelgue de la linea ya esta solucionado, ahora me surge el diguiente problema
por la pata std del 8870 se pone en 5V cuando al integrado le llega una señal DTMF y se pone en 0 V cuando la señal desaparece, pense en el siguiente codigo pero... para mi asombro no funciona bien, siendo que teoricamente tendria que funcionar bien, jajaja la teoria me fallo jejee
aca les paso una parte del codigo

portd.0 esta configurado como entrada y ese pin esta conectado al std del 8870
'n' es quien se encarga de aceptar un numero maximo de digitos
num_telefono[10] es un array donde se guarda el dato leido

leer:                        
    if portd.0 = 1 and n < 10 then
        variable = portc
        pause 50
        num_telefono[n] = variable
        n = n + 1    
    endif
    if n = 10 then ver
    goto leer

ver:    
    if portd.0 = 0 then goto leer   'espera que el valor en portd = 0 es decir que std sea 0   
    pause 200
    goto ver

    end

a simple vista esto tendria que funcionar pero.... e aqui el problema por ejemplo pulso la tecla 1 en mi telefono aparecen los 5 volts en std pero... cuando la suelto no alcansa los 0 volts en forma inmediata es decir que se demora un instante y en esa demora aparece el problema ya que se me guarda en el array 2 o mas veces el valor de la tecla pulsada, siendo que solo tendria que guardarse una sola ves.
lo que pense es poner una demora pero... apeligro perder datos hay alguna forma de aligerar el cambio de 0 volts a 5 volts en el std del 8870?


----------



## Ivan N. (Dic 1, 2007)

Hola que tal, me alegro q hallas podido hacer andar el circuito. Al principio es medio mañoso pero despues agarra viaje .
Con el tema de que te lee mas veces la tecla de lo q la apretaste yo lo solucione de la siguiente manera (lo escribo en lenguaje pseudocodigo inventado ):

LEER STD1:     LEER PINX
                       GOTO LEER STD1, HASTA PIN HIGH
                       DELAY 20ms
LEER STD2:     LEER PINX
                       GOTO LEER STD2, HASTA PIN LOW

Despues guardas el dato como quieras y volves a LEER STD1 para esperar una nueva tecla... con eso solucione todos mis problemas, el delay de 20ms es para evitar los posibles picos transitorios en el momento incial q tocas la tecla (nadie puede apretar y soltar una tecla mas rapido de 20ms por lo q no pedes datos) y despues esperas a q la suelte para asegurarte de q no vuelvas a esperar el ingreso de un std high mientras el tipo todavia esta apretando la tecla.
Por otro lado con el tema del ruido q habias dicho si todavia no lo solucionaste, tenes que tener una fuente muy bien filtrada (en lo posible con 7805) y ademas te combiene tener las 2 resistencias de 100k en la entrada, tanto la q va a in+ como la q va a masa ya q ayudan a compensar la impedancia de la linea. 
Cualquier cosa aca estamos.


----------



## remramon2007 (Dic 6, 2007)

gracias por responderme y fue de mucha ayuda tu respuesta es decir era justo lo que necesitaba y andubo todo mas que bien 
gracias por la ayuda.
un abrazo


----------



## Ivan N. (Dic 6, 2007)

De nada, cualquier duda consulta que se lo frustrante que puede llegar a ser este integrado .


----------



## remramon2007 (Dic 6, 2007)

lo que no le pude quitar es el ruido me hace una descarga en la linea ya que tengo que poner la masa de la linea directo a la masa de la placa y no me anda cuando pongo entre la masa de la linea y la masa de la placa la resistencia de 100 k que se debe colocar :s
lo extraño es que un amigo armo el mismo y le funciona bien, sin nada de ruido.


----------



## Ivan N. (Dic 7, 2007)

Mira con el tema del ruido se debe probablemente a esa resistencia, lo q hacen es "balancear" la linea. Ya de por si las lineas telefonicas son lineas balanceadas y colocando una sola de las resitencias se desbalancea produciendo el ruido.
El circuito q viste q he posteado hace un tiempo anda sin ningun tipo de problemas, so te lo puedo asegurar. Entonces si armas el mismo circuito y no anda puede ser por 2 razones, o q el circuito esta mal armado (falso contacto etc) o que tus caracteristicas de linea esta causando problemas.
Te sugiero que primero revises bien el circuito con la resistencia de 100k y asegurarte q esta bien (con cm nuevo y todo) y si sigue molestando ensaya la linea telefonica y sacale los valores de tension y corriente con el tubo colgado y descolgado y vemos si hay algo raro.
Por otro lado por el tema de speedy q preguntabas antes no trae ningun problema siempre y cuando uses los filtros de linea.
Probalo y conta q paso. Saludos!


----------



## remramon2007 (Dic 11, 2007)

hola ivan n. perdona que no escribi antes pero me colgue en responder, paso a contarte que arme el mismo circuito que vos subiste hace un tiempo y tampoco me anda es rarisimo pero es asi, logro que el circuito me funcione solo poniendo la masa de la linea del telefono directo a la masa de la alimentacion de la placa.
un amigo armo el mismo circuito que yo tengo en casa y le anda bien. aparte probe meterle al cicuito del cm8870 tonos dtmf que los genero con un pic y anda bien. tiene que ser la linea de telefono de mi casa, despues medire tensiones y las posteare aqui en el foro para ver si hay algo raro .
igual a pesar de todo esto sigo trabajando en este proyecto y ya lo estoy en la recta final  ahora me surge una duda mas jajaa

*necesito detectar que dejaron el telefono descolgado*, haber si me explico mejor tengo conectada la placa que estoy armando a la linea de telefono, levanto el tubo del telefono me da tono para marcar el numero al que quiero llamar y no marco ningun numero y me olvido el tubo descolgado o llamo y despues de finalizar la comunicacion me olvido de colgar y dejo el telefono descolgado, el mismo comienza a realizar un ruido tuc silencio tuc, jajaa creo que se entiende, lo que necesito es saber como detectar que se olvidaron el tubo descolgado.

bueno gente gracias y alguna duda sobre esto pregunten no mas ya que estoy aprendiendo bastante y vengo superando muchos obstaculos jajaja con ayuda de la gente del foro, asi que lo minimo que puedo hacer es AYUDAR!

un abrazo


----------



## matiex911 (Feb 12, 2008)

hola, soy nuevo en el foro y tambien tengo problemas con el 8870, he probado varias formas de conectarlo y ninguna me ha funcionado. yo lo estoy usando para mi proyecto final de la escuela, y lo unico que me falta es este integradito.
he probado como ustedes lo han propuesto y no anduvo, o capaz que lo malinterprete. podrian mostrarme la forma de conectarlo correctamente?
desde ya muchas gracias...


----------



## matiex911 (Feb 12, 2008)

proba conectando un seguidor de tensión a la R de la linea y de ahi a un temporizador... el 4541 es bueno para los tiempos largos...


----------



## bactering (Feb 12, 2008)

El esquema del datasheet funciona bien. coloca un puente rectificador para tener el positivo en su sitio. Va bien seguro.


----------



## matiex911 (Feb 12, 2008)

es que no puedo hacer andar el cristal... y he probado el cristal en otro circuito y funciono excelente.
y cuando alimento el circuito me pone un uno en el pin 16 y en el 18... y pruevo con otro integrado y no los prende, pero tampoco me oscila ni reconose los tonos.
tengo un 3er integrado sin usar para cuando este seguro de como conectar. 
Pregunta: puede que se me hayan quemado los que he estado usando por conectar leds a la salida con sus respectivas R limitadoras?, pregunto esto porque he visto un par de circuitos con leds que tenian seguidores de tension.
               y sin querer cuando media la frecuencia uni los dos pines del oscilador y me apago los leds y cuando las uni denuevo los prendio, pudo haberle hecho algo al CI?


----------



## El nombre (Feb 12, 2008)

si haces lo mismo que el data rula seguro.
LA 5 y la 6 la tienes a masa?


----------



## matiex911 (Feb 12, 2008)

y si... 5 y 6 a masa... voy a  probar con el otro integrado y sin los leds...
lo que me complica la cosa es que yo vivo en san juan - argentina y aca no hay casi nada de electronica, por eso quiero estar seguro de no quemar el ultimo integrado...  
no les conte de que trata mi proyecto... es un controlador telefonico del hogar. y ya tengo todo listo menos el dtmf. bueno graciias voy a probar a ver que pasa


----------



## remramon2007 (Feb 12, 2008)

hola *matiex911* bueno  espero que disfrutes la información que podras encontrar en esta pagina jajaja es bastante de lo que queres y perdona que no conteste antes pero recien chequee el correo y vi que tenia una respuesta en el foro.
disfruta la información que es bastante
un abrazo ramon
p.d: mira esta pagina jejeje pensaste que me estaba olvidando? http://www.pablin.com.ar/ y entra en el link electronica y luego telefonia.


----------



## matiex911 (Mar 4, 2008)

gracias por la ayuda, mi problema era el experimentor, pero lo arme y me anduvo de 10...!


----------



## Jairo (Sep 6, 2008)

Saludos a todos..
Estoy haciendo un proyecto con un PIC 16f876A el cual tiene que llamar cuando se produce una situacion, lo probe en mi casa y funciona perfecto, llamaba a celular o a local sin ningun problema y con un cristal de 4 Mhz, luego lleve a instalarlo y no funciona, la linea me dice que el numero es incorrecto o a veces sigue sonando como  cuando pide que marque el numero, tengo que descolgar un telefono en paralelo para que funcione, donde esta instalado es un local que tiene servidores y cosas asi, no se si eso afecte mucho.

Luego lei que el comando dtmfout funcionaba mejor con un xt de 20 mhz, lo cambie y volvi a probar en mi casa igual funcionaba de maravilla, pero lo volvi a probe en el lugar donde tengo que instalarlo y me da casi el mismo problema, probe en una base celular... y cuando llama a local si funciona pero cuando llama a celular me da el mismo problema que el numero esta mal y para que funcione tengo que descolgar un telefono en paralelo.

Si me pueden ayudar muchas gracias, y otra duda en ese mismo local tengo lineas multiplexadas, puede funcionar en ese tipo de lineas? o que signifioca eso y en que le afecta muchas gracias...

Muchas gracias, necesito solucionar el porque no llama en ese lugar, se me acaban las ideas

Jairo


----------



## El nombre (Sep 7, 2008)

¿Qué tensión tienes cuando descuelga tu módulo? 
Igual se soluciona bajando la R que hace de carga y aumentando el condensador que elimina la componenete continua.


----------



## Jairo (Sep 7, 2008)

Saludos, adjunto el hardware que estoy utilizando para realizar la llamada, este mismo es el que contesta la llamada, lo hice para no utilizar dos pines, donde dice fono le coloco la salida del pic, este primero coloca un 1 logico y luego de un tienpo envia la señal dtmout, y luega cuelga con el mismo pin, cabe recalcar qu e sigo probando en mi casa y funciona perfecto.
En donde dice + telefono y - telefono va la linea de telefono, y tengo que colocar en esa polaridad caso contrario, es como que estuviera descolgado aunq no mande la orden el micro

"El nombre" me recomienda que disminuya la R que hace de carga, en mi caso seria la de 1 Mega ohmio, verdad? a cuanto le bajo? o que otra solucion puedo hacer?

Jairo


----------



## El nombre (Sep 7, 2008)

AGGG!
Mañana te subo mi esquema. 
Yo uso 330 ohm 1W Eso hace que te baje la tensión a 5V y además le introduzco un puente rectificador y con un condensador le elimino la componente continua evitando el optoacoplador.
De todas formas bajando la R te debe funcionar prueba a meterle 300 Ohm (incluso con 150 ohm funciona) 
Recuerda que te limita y te deja en unos 5V la tensión (mas la caida del transistor)


----------



## Jairo (Sep 7, 2008)

Muchas gracias espero que subas el diagrama para modificar el circuito, mi pregunta es porque 1 W, si solo es de 330 y aproximadamente caeria 5 voltios cuando se lo descuelga y cuando no se lo descuelga no caería nada, porque el transistor no conduciria, por cierto si le añadi un puente para no tener el problema de las polaridades donde conecto la linea...

otra pregunta no entiendo porque citas esto al ultimo "Recuerda que te limita y te deja en unos 5V la tensión (mas la caida del transistor)"

Muchas gracias por la respuesta


----------



## El nombre (Sep 8, 2008)

Verás:
La línea de teléfono se regula por intensidad. y se calienta. Al poner mayor disipación se nota menos (donde se colocó el marcador no tenía que calentarse nada).
Como verás es indiferente la conexión al llevar un puente rectificador (esto se hace para que puedas alimentar el circuito con la misma tensión de la línea telefónica. También te evita la componente alterna de la llamada.

Un transistor Q1 se encarga de descolgar (r de carga 150 ohm R 17)
La modulación se hace por R2R (Esto es indiferente ya que lo puedes hacer como quieras) Q4 R33.

Si estudias un poco el circuito verás que lleva incorporado una detección de estado. Detecta si la línea esta descolgada. De esta forma se espera a que cuelgues para hacer la llamada.

El segundo es el circuito que se realizó (pequeñito con componentes usuales del taller)
El tercero un marcador con el MT8888 (casi igual al MT8880) Este CI lleva integrado la detección de tono y el marcado así como de llamada. Se puede hacer una alarma reversible y así poder interrogar o reprogramar números de activación desactivación vía teléfono.


----------



## Jairo (Sep 9, 2008)

Muchas gracias por los circuitos, los estoy revisando, pero tengo una duda, no entiendo eo de l moulacion y porque esta el arreglo r-2r, para que, donde esta la señal de marcado?

Saludos


----------



## El nombre (Sep 10, 2008)

No entiendo la pregunta


----------



## Jairo (Sep 10, 2008)

en tu ultimo mensaje me dices modulacion r2r, no entiendo para que esta eso, o mejor dicho como funciona eso...
Saludos


----------



## El nombre (Sep 12, 2008)

Es un corversor Digital/Analogico. De esa forma pudes hacer frecuencias (mediante tablas) con el micro que quieras.
La generación del tono es lo de menos. Observa las formas de inyectar la señal en la continua de la señal telefónica.


----------



## remramon2007 (Sep 12, 2008)

buenas gente esto esta tomando un rumbo interezante pero... todavia sigo sin enteder de que integrado estan hablando... ja lei el tema pero... no encontre de que integrado estan hablando que es un hibrido? es tipo la información que hay en la pagina de pablin?
y me intereza formar parte del tema


----------



## El nombre (Sep 13, 2008)

Esto se va de madre.
Vamos al marcador100.jpg
La pregunta que creo que quieres formular es:
¿Cómo se puede hacer una frecuencia con un 16F84? 
La que yo te haría es ¿Sabes cómo funciona un conversor Digital / Analógico con R2R?

Te dejo una nota de microchip para que veas las dos formas de hacer una frecuencia que te presentan. El problema estriba en la mezcla de las frecuencias por software.
Usé el R2R (ahora se entiende mejor). De esa forma hice unas bonitas prácticas para ver y estudiar los conversores D/A.

Partiendo de esto puedes hacer casi cualquier cosa.


----------



## francisco25 (Ene 7, 2009)

Estimados alguien puede facilitar la programacion del pic.

Gracias


----------



## remramon2007 (Ene 7, 2009)

hola bajate el programa microcode studio plus que es el último... otro igual te funcionará si bajas el plus viene con el compilador picbasicpro 2.50 si no te bajas algun otro que igual funciona...

esto te permitirá marcar un número de teéfono por soft solo necesitaras 1 pic16F628 (por ejemplo) 1 cristal 20Mhz con otro de menor frecuencia los tonos no saldran bien, estarán deformados y puede que no te funcione, volviendo a la lista de materiales 2 resistencias y 2 capacitores! y funciona muy bien...

codigo del programa funcionando solo tienes que instalar los programas que mencioné más arriba, se compila y listo sale llamando al número escrito como ejemplo abajo

'******************************************************************************************
include "bs2defs.bas"
define OSC 20

inicio:


llamar:
    pause 2000    
    dtmfout portb.7,["1","5","5","0","3","2","9","8","7"]
    pause 2000

    end 

'******************************************************************************************


esquemático:

pic ------------ Resistencia 1K ---------------------- Resistencia 1K ------------------> salida tonos DTMF
                             |                                                    |
                             |                                                    |
                             |                                                    |
                     capacitor .1uf                                 capacitor .1 uf
                             |                                                    |
                             |                                                    |
                          tierra                                             tierra


espero les sirva, un abrazo

salu2 ramón


----------



## COSMICO (Oct 4, 2010)

Saludos amigos, no se si es correcto ya que hace mucho no 
postean aqui..si estoy mal aganmelo saber..
Alguien tiene el codigo para trabajar con mt888..
en asm o ccs,necesito hacer marcacion de un numero telefonico por dtmf
..


----------



## lubeck (Oct 5, 2010)

Yo lo he echo sin codificador directamente genero el tono desde el pic pero lo hice en picbasic..y una linea telefónica fija para Moviles solo se conecta el capacitor de 1uF
mira este link
https://www.forosdeelectronica.com/f24/generar-sonido-pic16f628a-37544/
para las frecuencias use esto...
http://members.tripod.com/dsp_peru/
el esquema que use fue este...


----------

