Ayuda DTMF CM8870

HOLA!!! yo denuevo!!. logre hacerlo funcionar!!!
paso a contarles, ayer despues de seguir probando... logre hacer que funcione todo!

para probarlo bien, habia usado un protoboard, y puse tanto el CM8870pi y el MT8870 para probarlos, armando el circuito solo con esta primera parte de deteccion y funcionamiento!
Resulto que el telefono que yo usaba tambien estaba en malas condiciones! probe con otro nokia 1100 y este sacaba más tono en el auricular... con mas fuerza (supongo que porque el otro estaba dañado) probe de la forma simple, con LEDS en la salida de cada patita del CM , y tambien con un led que indica cada pulso. no se como en algun momento pude hacer que funcione cada pulso!! y empeso a cambiar ... osea las salidas de los leds... entonces me di cuenta tambien, que me parece que influye segun como pongas el cristal!! cosa muy rara para mi... pero es posible? el cristal tiene polaridad?...
la cuestion es que despues de haberlo puesto al revez de como lo puse al principio en el circuito completo, y haber puesto el CM8870pi , el circuito luego comenzo a funcionar perfectamente!!! (y sin añadir ningun capacitor en la resistencia de 330k..) ... asi que el pic ahora lee los codigos binarios, y decide que salida activar o no... recuerden que hice el circuito de la pagina que mensione arriba!
Bueno espero haber ayudado en algo con mi problema...

conclusion para mi...
1_ El cristal puede que tenga que ver como lo pones! probar cada lado ( no estoy seguro si tenia o no polaridad)
2_ Probar con un telefono como el nokia 1100 (en buenas condiciones jaja) y sacar los tonos desde el auricular (no importa si dejan el audifono conectado) simplemente a mi me funciono asi. y tambien proble de los dos lados, y no parece importar como lo conectes, siempre que conectes los dos!.
3_ Con el MT8870 (nose si hay variedad) no me funciono en absoluto el mismo circuito despues de haber funcionado con el CM8870pi .. por lo tanto lo descarto al MT8870!!! me resulto maloo... y caro! (20$) . el CM8870pi resulto ser el mejor! y sale mas barato almenos (16$) bua! . y ademas funciona mejor...
El MT al prenderlo solo se prendia despues de unos segundos el led del StD !! y quedaba asi!! ... mal...

Bueno y por ultimo, aconsejo probar aparte! o en un protoboard el funcionamiento del CM8870pi si no les anda en el circuito completo, asi ven que pasa.. a mi me funciono =)

Bueno espero haberles ayudado de algo en mi problema! que por suerte solucione yo solo...
Gracias!! saludos!!! y exito!!! ;)
 
ue tal yo ya hice ese circuito hace poco y funciona bien.
1.- el led del CM8870PI (que fu el que yo utilice) tiene que prender cada vez que tu tecleas un numero de tu celular, si dejas presionado un numero de tu celular el led debe permanecer prendido (al momento que tu llamas al celular que esta conectado no es lo mismo ya que no se queda prendido, solo parpadea pero si lo identifica.. para verificar ponle unos leds a las salidas del CM8870pi para que puedas ver el numero en binario) cuidado porque utilice una vez un blackberry y el circuito no lo reconoció. pero con el que tu tienes si es seguro que funciona.
Ah y el pic no tiene nada que ver con el cm8870pi, ya que este funcione ahora si vete a la parte del pic.
2.- probablemente tengas mal conectado los cables del auricular al circuito. yo los verifique en un osciloscopio.. tengo un video que hice para la explicacion exacta del funcionamiento del dtmf y como va conectado el auricular


 
Última edición por un moderador:
ue tal yo ya hice ese circuito hace poco y funciona bien.
1.- el led del CM8870PI (que fu el que yo utilice) tiene que prender cada vez que tu tecleas un numero de tu celular, si dejas presionado un numero de tu celular el led debe permanecer prendido (al momento que tu llamas al celular que esta conectado no es lo mismo ya que no se queda prendido, solo parpadea pero si lo identifica.. para verificar ponle unos leds a las salidas del CM8870pi para que puedas ver el numero en binario) cuidado porque utilice una vez un blackberry y el circuito no lo reconoció. pero con el que tu tienes si es seguro que funciona.
Ah y el pic no tiene nada que ver con el cm8870pi, ya que este funcione ahora si vete a la parte del pic.
2.- probablemente tengas mal conectado los cables del auricular al circuito. yo los verifique en un osciloscopio.. tengo un video que hice para la explicacion exacta del funcionamiento del dtmf y como va conectado el auricular




Hola Hector!!
Exacto. es como vos decis... y ya por suerte como dije arriba , pude lograr hacerlo funcionar!.. y tengo el pic 16f84 programado! el tema es que estoy probando y probando porque quiero programar el pic con un programa! pero quiero modificarlo para que en la salida 8 de los relays o leds que le ponga, haga un pulso de 1 segundo masomenos! y que se apague, no que se quede prendido... como lo puedo lograr? soy nuevo programando los pic! y solo se lo basico del assambler...

puedo poner el codigo aqui para que me ayuden y lo vean? o tengo que hacer un nuevo tema?
gracias!!!!
saludoss!!!
 
jum me salvaron la vida!! tenía un problema con la entrada de la señal de audio pero era porque no la había sacado bien del auricular, bueno muchas gracias, mi proyecto se basa en un sistema a control remoto para abril un garaje, y una puerta con motores paso a paso(otro circuito lógico) y el control de las luces internas de una casa con una alarma, cabe aclarar y pues es lógico que es a pequeña escala! ;)
 
hola que tal, disculpen por revivir este post, quisiera saber como se conecta la placa de los reles con la placa de control, porque no logre entenderlo como se hace. y despues electrosebados, si me podes mandar tu email por privado, para que me puedas ayudar, ya que tu ya lo armaste. gracias
 
Tu post esta en infracción por insinuar a otro forista que se comunique por priavado......
LEE EL REGLAMENTO Y PRESTA ATENCIÓN A LAS NORMAS DE PARTICIPACIÓN


Por otro lado porque ser egoista y aprender vos solo..... cuando si se postea por aqui le servira a muchos?

Esa actitud también atenta contra el espritú del foro
 
hola que tal, si lo lei discupen no sabia de eso, y despues sobre lo otro no es ser egoista, es para no revivir un post que no es relativamente nuevo, nada mas.

Espero tu respuesta electrocebados, gracias ;)
 
yo uso el cm8870 y detecto tonos dtmf de un nokia 5530..
usando solo el IC 8870 filtra y detecta ala perfeccion..
el problema es que al conectas sus salidas al pic16f628a.. al presionar una tecla el std. me parpadea como 5 veces por tono detectado.
la alimentacion de 5 vcc la optenia de mi pc. y crei que solo era suficiente para alimentar uno de los dos....
pero sorpresa.. la conecte a una fuente externa de 5vcc y el ploblema aun seguia...
inmediatamente crei que esta muy mal filtrada mi fuente... pero no fue eso..

el problema esta en que el pic genera ruido... si asie es.. genera ruido..
bueno almenos eso pienzo..

la solucion fue poner un diodo entre el VCC del pic y la fuente alimentacion..

listo.. un pulso por tono valido...

gracias a esto puedes controlar distintas cargas con el pic, segun las teclas que oprimas...
incluso activacion por clave....

salu2 ato2....
 
les cuento q he armado el mt8870de de todas las formas y no hace ni pio. una de las cosas q he visto es q los ines INH y PDWN van como al aire o a leds alguien me puede ayudar? el problema es que aca no se consigue el cm8870 que es el que he visto que le funciona a todos


MT8870D-circuits.jpg


r1 y r2 son de 100k r3 de 300k los caacitores de 100nf cristal de 3.5795Mhz de std a q1 coloque resitencias de 10k con leds y los INH y PDWN los he colocado al aire y a tierra y nada que funciona.


lo robe conectando la entrada a el auricular del teléfono fijo y también al manos libres del celular un 5700
 
Última edición:
Lo unico que hice fue colocar dos capacitores de 20pF en los pines del oscilador a tierra y arranco no se que paso por que ni siquiera la hoja de datos los muerta los puse por que en los pics se colocan
 

Adjuntos

  • mt8870.jpg
    mt8870.jpg
    55 KB · Visitas: 151
Hola amigos, haber si alguien me podria ayudar yo realize el proyecto de atva el mencionado anteriormente solo que remplaze el mt8870 por un ht9170 un pic 16f84a y un UNL2803A, el tema es que los tonos me los marca osea prende el led, pero mas que eso nada no me activa ningun relay osea a la salida del unl2803a no llega nada. el pic lo programe con un hex de esa pagina y el circuito lo uso conectado a un nokia 5130. Alguien sabria como ayudarme para hacerlo funcionar, no se si es el pic o que, gracias espero sus ayudas
 
Lo unico que hice fue colocar dos capacitores de 20pF en los pines del oscilador a tierra y arranco no se que paso por que ni siquiera la hoja de datos los muerta los puse por que en los pics se colocan

y que hizo con INH y PDWN las conecto a tierra??? conecto la entrada directamente a la linea telefonica o de la salida del auricular??? lo hizo con telefono fijo o celular????
 
Hola yo pienso hacer el mismo circuito pero utilizando otro integrado decodificador dtmf, los he buscado y pues solo un proveedor me proporciona estos dos que son el HM9270 y el LC7385, cuya operacion es similar al HT9170, pero quiero saber si ya probaron este circuito, les anexo el link, http://www.atva.com.ar/dtmf_x_4/dtmf_x_4.htm, también les anexo otro link de otro circuito similar http://products.foxdelta.com/repeater.htm , mi idea es cambiar el código de activación del circuito ya que pide una contraseña para activar los relés.

La contraseña la da de por si la pagina web en la descarga del archivo asm, pero mi idea es cambiarla por otra, en la edición del asm, me pregunto si ese mismo asm lo puedo utilizar para otro decodificador o solamente debe ser de un mismo modelo de decodificador, el pic claro es el PIC16F84, les adjunto el asm

; dtmf.asm - tone decoder with relay control.
; reads output from an 8870 DTMF decoder and controls a bank of relays.
; 4 digit security code (abcd) precedes all commands
; Code sequences "*abcd11#" through to "*abcd18#" turn on the corresponding relay
; code sequence "*abcd10#" turns on all relays
; Code sequences "*abcd21#" through to "*abcd28#" turn off the corresponding relay
; Code sequence "*abcd20#" turns off all relays
; Codes "*abcd?9#" through "*abcd?D#" are ignored.\
; Note "oa" is used for "0" in security code not"00"
list p=16f84a
include "p16f84a.inc"
__FUSES _CP_OFF & _XT_OSC & _WDT_OFF & _PWRTE_ON
OPTREG equ 01
TRIS_A equ 05
TRIS_B equ 06
relays equ 10
mfcode equ 11
cntdown equ 12
timeout equ 13
slocnt1 equ 14
slocnt2 equ 15
numa equ 16
numb equ 17
numc equ 18
numd equ 19
org 0000 ;tell assembler to start at 000H
init goto start
org 0004 ;interrupt vector
rtc_interrupt
decfsz slocnt1,F ;decrement 1st prescaler
goto rtc_int_1
decfsz slocnt2,F ;decrement 2nd prescaler
goto rtc_int_1
bcf relays,4 ;turn relay 6 off
bcf PORTB,4
rtc_int_1
decfsz cntdown,F ;count down and skip next if = 0
goto counting ;still counting if not reached zero
bsf timeout,0 ;set timed out bit
bcf INTCON,2 ;clear interrupt flag
retfie ;return
counting
bcf timeout,0 ;clear timed out bit
bcf INTCON,2 ;clear interrupt flag
retfie ;return
; subroutines
wait_strobe
btfsc timeout,0 ;see if timed out
goto set_z ;set Z flag if timeout ocurred
btfss PORTA,4 ;see if Strobe is active on RA4
goto wait_strobe ;loop until it is
movfw PORTA ;retreive the code from the 8870
movwf mfcode ;store it in mfcode
bcf mfcode,4 ;ensure strobe isn't seen as data
bcf STATUS,2 ;return with Z=0 if tone decoded
return
set_z bsf STATUS,2 ;return with Z=1 if timed out waiting
return
wait_no_strobe
btfsc PORTA,4 ;see if strobe is active on RA4
goto wait_no_strobe ;loop until it isn't
return
start_timer
movlw H'54' ;software prescaler for 7 seconds
movwf cntdown
return

; Start of setup and decode routines:
start movlw B'00100000' ;select register page 1
movwf STATUS
clrf TRIS_B ;set all port B pins to output mode
movlw B'00011111' ;set all port A pins to input mode
movwf TRIS_A
movlw B'10000111'
movwf OPTREG ;sets: pull-up on port B OFF
; RTCC counts internal clock
; prescaler connected to RTCC
; prescaler divides by 256
; (other bits unimportant)
clrw ;clear the working register
movwf STATUS ;switch back to register page 0
clrf PORTB ;all outputs off
clrf relays
clrf timeout
movlw B'10100000'
movwf INTCON ;global and RTCC interrupts enabled
set_sec movlw H'01' ;put the 4 access codes into memory
movwf numa ;note for a 0 the hex is H'0A'
movlw H'02'
movwf numb
movlw H'03'
movwf numc
movlw H'04'
movwf numd
decode call wait_no_strobe ;start running when no tone present
clrf timeout ;set timeout condition until later
call wait_strobe ;wait for a tone to be received
movlw H'0B' ;0B is the code for DTMF "*"
subwf mfcode,W ;set zero flag if "*" was received
btfsc STATUS,2 ;skip next if it was not a "*"
goto got_star
goto decode ;look for another one
got_star
call start_timer ;start time-out timer
call wait_no_strobe ;wait for second tone
call wait_strobe
btfsc STATUS,2 ;abort if timed out
goto decode
movf numa,W
subwf mfcode,W ;set zero flag if second tone was 1
btfsc STATUS,2 ;skip next if it was not a 1
goto got_A
goto get_#
got_A call wait_no_strobe ;wait for third tone
call wait_strobe
btfsc STATUS,2 ;abort if timed out
goto decode
movf numb,W
subwf mfcode,W ;set zero flag if second tone was 1
btfsc STATUS,2 ;skip next if it was not a 1
goto got_B
goto get_#
got_B call wait_no_strobe ;wait for third tone
call wait_strobe
btfsc STATUS,2 ;abort if timed out
goto decode
movf numc,W
subwf mfcode,W ;set zero flag if second tone was 1
btfsc STATUS,2 ;skip next if it was not a 1
goto got_C
goto get_#
got_C call wait_no_strobe ;wait for third tone
call wait_strobe
btfsc STATUS,2 ;abort if timed out
goto decode
movf numd,W
subwf mfcode,W ;set zero flag if second tone was 1
btfsc STATUS,2 ;skip next if it was not a 1
goto got_D
goto get_#

got_D call wait_no_strobe ;wait for third tone
call wait_strobe
btfsc STATUS,2 ;abort if timed out
goto decode

movlw H'01'
subwf mfcode,W ;set zero flag if second tone was 1
btfsc STATUS,2 ;skip next if it was not a 1
goto got_1

movlw H'02'
subwf mfcode,W ;set zero flag if second tone was 0
btfsc STATUS,2 ;skip next if it was not a 0
goto got_2
goto get_# ;wait for # to end invalid sequence

; to reach here, the tone sequence "*<numa><numb><numc><numd>1" has been found, now decode request
; according to the next 2 tones but don't action it until a "#" is seen.
got_1 call wait_no_strobe
call wait_strobe ;wait for third tone
btfsc STATUS,2 ;abort if timed out
goto decode
call wait_no_strobe ;wait for tone to finish
movf mfcode,W ;pick up keyed digit
addwf PCL,F ;jump ahead to vector
goto decode ;5D (mf code 0000)
goto got_11
goto got_12
goto got_13
goto got_14
goto got_15
goto got_16
goto got_17
goto got_18
goto decode
goto got_10
goto decode ;*
goto decode ;#
goto decode ;5A
goto decode ;5B
goto decode ;5C (mf code 1111)
got_10 movlw B'11111111' ;all outputs on
movwf relays
goto get_#

got_11 bsf relays,0 ;set output 1 on
goto get_#
got_12 bsf relays,1 ;set output 2 on
goto get_#
got_13 bsf relays,3 ;set output 3 on
goto get_#
got_14 bsf relays,2 ;set output 4 on
goto get_#
got_15 bsf relays,5 ;set output 5 on
goto get_#
got_16 bsf relays,4 ;set output 6 on
goto get_#
got_17 bsf relays,6 ;set output 7 on
goto get_#
got_18 bsf relays,7 ;set output 8 on
goto get_#

; to reach here, the tone sequence "*<numa><numb><numc><numd>2" has been found, now decode request
; according to the next 2 tones but don't action it until a "#" is seen.
got_2 call wait_no_strobe
call wait_strobe ;wait for sixth tone
btfsc STATUS,2 ;abort if timed out
goto decode
call wait_no_strobe ;wait for tone to finish
movf mfcode,W ;pick up keyed digit
addwf PCL,F ;jump ahead to vector
goto decode ;5D (mf code 0000)
goto got_21
goto got_22
goto got_23
goto got_24
goto got_25
goto got_26
goto got_27
goto got_28
goto decode
goto got_20
goto decode ;*
goto decode ;#
goto decode ;5A
goto decode ;5B
goto decode ;5C (mf code 1111)
got_20 movlw B'0000000'
movwf relays ;set all outputs off
goto get_#

got_21 bcf relays,0 ;set output 1 off
goto get_#
got_22 bcf relays,1 ;set output 2 off
goto get_#
got_23 bcf relays,3 ;set output 3 off
goto get_#
got_24 bcf relays,2 ;set output 4 off
goto get_#
got_25 bcf relays,5 ;set output 5 Off
goto get_#
got_26 bcf relays,4 ;set output 6 Off
goto get_#
got_27 bcf relays,6 ;set output 7 Off
goto get_#
got_28 bcf relays,7 ;set output 8 Off
goto get_#
get_# call wait_strobe ;wait for 7th tone
btfsc STATUS,2 ;abort if timed out
goto decode
movlw H'0C' ;0C is the DTMF code for "#"
subwf mfcode,W ;if # received set Z flag
btfsc STATUS,2 ;skip next if not a #
goto got_#
call wait_no_strobe
goto get_# ;only # is valid, loop until found
;or timeout
got_# call wait_no_strobe ;wait for the tone to finish
movfw relays ;use the "relays" variable to set RB
movwf PORTB
goto decode ;all done, check for new sequence
retlw 'v'
retlw '1'
retlw '.'
retlw '3'
retlw '.'
retlw 'W'
retlw 'W'
retlw '2'
retlw 'R'
retlw ' '
retlw 'm'
retlw 'a'
retlw 'y'
retlw '2'
retlw '0'
retlw '0'
retlw '0'
end

Ah no confundan de que quiero utilizar el asm para el decodificador sino para el pic con la misma estructura pero con diferente decodificador, un circuito con la misma estructura pero diferente modelo de integrado de entrada que cumpla con lo que hace el original
 
Última edición:
yo uso el cm8870 y detecto tonos dtmf de un nokia 5530..
usando solo el IC 8870 filtra y detecta ala perfeccion..
el problema es que al conectas sus salidas al pic16f628a.. al presionar una tecla el std. me parpadea como 5 veces por tono detectado.
la alimentacion de 5 vcc la optenia de mi pc. y crei que solo era suficiente para alimentar uno de los dos....
pero sorpresa.. la conecte a una fuente externa de 5vcc y el ploblema aun seguia...
inmediatamente crei que esta muy mal filtrada mi fuente... pero no fue eso..

el problema esta en que el pic genera ruido... si asie es.. genera ruido..
bueno almenos eso pienzo..

la solucion fue poner un diodo entre el VCC del pic y la fuente alimentacion..

listo.. un pulso por tono valido...

gracias a esto puedes controlar distintas cargas con el pic, segun las teclas que oprimas...
incluso activacion por clave....

salu2 ato2....

Hola me gustaria saber como conectaste el auricular del ese celular, yo puse un plus de audifono y tengo un cable blanco otro rojo y oro que es masa, gracias
 
hola amigos, estoy haciendo un proyecto de controlar un motor paso a paso con los tonos de un telefono celular, pero lo tengo que hacer sin microcontroladores, solo con logica digital, gracias ¡¡¡
 
Atrás
Arriba