Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

19/02/2014 #81

Avatar de johenrod

DA_VINCI dijo: Ver Mensaje
No se si he llegado tarde al tema pero de todas formas quiero hacer un aporte ya que siempre utilizo el foro solo para sacar información y nunca para colaborar con algo......
saludos, apenas luego de tanto tiempo veo este tema, podria preguntarte un poco mas sobre el direccionamiento, por que no utilizar las primeras A0-A4, gracias
15/07/2014 #82


Problema con el APR9600 con PIC
Hola a todos tengo un problema cuando manejo el APR9600 con micro controlador, por ejemplo el pic16f877a.
Tengo mi APR9600 conectado como dice la imagen #1 y cuando pongo el APR en estado de Play y activo el disparador de cualquier mensaje (asiendo un puente a tierra manualmente) el mensaje se escucha fuerte y claro y cuando está en estado Rec graba sin problemas.
Pero cuando manejo el APR 9600 atabes de un micro controlado el mensaje X seleccionado suena bajo y con una interferencia que casi no se oye el mensaje.
Subí circuito que uso en este momento que cuenta con transistores en corte y saturación para hacer las veces de un interceptor
Cuando recibe el transistor el pulso positivo pone el transistor en saturación y completa el circuito para activar el disparado del APR y se escucha el mensaje x siempre y cuando el APR este en estado play , cosa que ya contemple.
Como aun no soy muy bueno calculando resistencias para colocar un transistor en corte y saturación, ubique el rango con un potenciómetro.
Pensado que esto era el problema (un cálculo exacto) remplace los transistores por el IC CD4600 que es un especie de un interruptor digital un poco más fácil de usar, pero el resultado fue el mismo, cuando activo el pulso del micro que cierra el interruptor suena bajo y feo.

Que puede ser lo que está haciendo que cuando activo el apr9600 con el micro se escuche bajo y feo, y cuando puenteo a tierra el terminal (pin) manualmente se escucha bien
R1= 10k, R2= 1k ,R3= 10 oh
Conexión del circuito que activa el disparador


Figura 1

Muchas gracias por todo
16/07/2014 #83
Moderador

Avatar de D@rkbytes

No veo por qué quieras usar un transistor para controlar al APR, si lo puedes controlar directamente.
Aparte, de la forma como lo estás haciendo con el transistor no es correcta.
Estás dejando el colector abierto, ahí es donde te hace falta una resistencia hacia VDD (Pull-up)
Debes poner una sola resistencia en serie con la base y quitar las dos que tienes hacia VSS.
La salida del PIC te puede dar los dos estados lógicos para conmutar al transistor sin necesidad de poner esas pull-down.
Los cálculos para la resistencia de base están por la web o también buscando aquí en el Foro.

Sin embargo, como te menciono, lo puedes controlar directamente si el APR9600 lo usas con el mismo voltaje con el que estás alimentando al PIC.
16/07/2014 #84


Conexión directa entre patillas
Hola D@rkbytes gracias por la información, voy a proceder hacer la conexión directa al pic puesto que los dos componentes (pic y APR) están a una misma fuente.
Pero tengo una duda al respecto, los terminales de mensaje del apr cuando están en reposo su esta es alto 5v y si conecto el terminal directo a la patilla del pic deberé programar que la patilla del pic este en estado alto (5 v) para que no se active el disparador.
Esto así no afecta al Apr que ambos terminarles con valor alto (5v) estén conectado directamente ?.
Disculpa si la pregunta es muy básica.
16/07/2014 #85
Moderador

Avatar de D@rkbytes

Lee la hoja de datos, si esos pines son entrada posiblemente tengan una resistencia pull-up interna y por eso es que mantienen un estado alto.
17/07/2014 #86


Ok estoy en las pruebas. Le comento como me fue cuando termine.
20/07/2014 #87


Hola D@rkbytes un poco tarde pero me quede sin internet. Realice la prueba como me dijo, coloque el pin del APR directo al pin del PIC 16f877A (en especifico al puerto A. terminal A0).
Pero el resultado sigue siendo el mismo (cuando activo el mensaje se oye bajo y con interferencia).
la programación del pic mantiene el pulso alto en el pin A0 y cuando quiero ejecutar el mensaje solo pongo el pin en bajo y en efecto funciona el mensaje se oye pero bajo.
Le agradezco todo su tiempo invertido en este detalle, si tiene algún otra idea mas para poder solucionar este punto estaré agradecido.
21/07/2014 #88
Moderador

Avatar de D@rkbytes

A ciencia cierta no sé porqué esté pasando eso, pero...
¿Tienes configurado el PIC para que esté trabajando en modo digital?
Recuerda que en el 16F877A el puerto A tiene conversores ADC (RA0 = AN0)

No sé en que lenguaje de programación estás escribiendo el programa, y no todos los entornos habilitan el modo digital por defecto.

Verifica eso y nos comentas.
21/07/2014 #89


Hola D@rkbytes, yo tengo la programación en ccs compiler y creo tener los pines en modo digital con la sentencia
void main()
{
setup_adc_ports(NO_ANALOGS);
setup_adc(ADC_OFF);
......
}

Como lo que deseo es poner el A0 del Pic en bajo, yo creé esta función Desactiva_Type que revise un numero x en este caso 1 y deja en estado bajo el pin.
Luego espero 1 segundo y pongo en alto el pin nuevamente con otra función creada por mi Activa_Type

Como en este caso lo que quiero es reproducir, tengo el APR en estado Play con la función Estado_Play_9600().

Si ve algo raro en estas funciones que son las que uso para activar el funcionamiento del APR, le agradezco que me indique, porque yo no veo nada malo por el momento.

Un aporte más, el puerto lo configuré de esta forma.

Código:
#Byte Puerto_a = 0x85
#Byte Prota    = 0X05


Void Desactiva_Type(Int Pln_Type)
{
          If(Pln_Type ==1)
         {
         bit_Clear(PROTa,0);
         }
          If(Pln_Type ==2)
         {
         bit_Clear(PROTa,1);
         }
          If(Pln_Type ==3)
         {
         bit_Clear(PROTa,2);
         }
          If(Pln_Type ==4)
         {
         bit_Clear(PROTa,3);
         }
          If(Pln_Type ==5)
         {
         bit_Clear(PROTb,1);
         }
}

/////////////////////////////////////////////////////////////////////////////////////////////
Void Activa_Type(Int Pln_Type)
{
         If(Pln_Type == 1)
         {
          bit_set(PROTa,0);
         }
         if(Pln_Type == 2)
         {
          bit_set(PROTa,1);
         }
         if(Pln_Type == 3)
         {
          bit_set(PROTa,2);
         }
         if(Pln_Type == 4)
         {
          bit_set(PROTa,3);
         }
         if(Pln_Type == 5)
         {
          bit_set(PROTb,1);
         }
}
////////////////////////////////////////////////////////////////////////////////////////////////
Void Estado_Play_9600()
{
 bit_Clear(PROTd,0);
 bit_set(PROTd,1);
}
22/07/2014 #90
Moderador

Avatar de D@rkbytes

La forma como lo estás haciendo con BIT_CLEAR(X,X) y BIT_SET(X,X) es más complicada.
Es mejor que utilices las instrucciones comunes OUTPUT_HIGH(PIN_XX) y OUTPUT_LOW(PIN_XX)

El PICC Compiler establece por defecto el registro ADCON1 = 0b00000111
Así que por el lado del modo digital I/O va todo bien aunque lo tengas declarado en SETUP_ADC_PORTS()

Aquí te dejo un ejemplo (no comentado por su simple comprensión) sobre lo que te estoy mencionando.
Nunca he trabajado con ese chip, pero viendo la hoja de datos así es como debe funcionar.

Suerte.
Archivos Adjuntos
Tipo de Archivo: rar 16F877A APR9600.rar (17,2 KB (Kilobytes), 20 visitas)
25/07/2014 #91


Hola estos días estuve estudiando el caso y creo haber dado con el problema aun no lo e podido corroborar (En eso estoy trabajando) pero si les puedo decir que el problema al parecer esta en algún cable
porque moví ciertos cables y reconecte varios mas y ahora si esta funcionando bien.
ahora estoy en el proceso de poder emular el error para saber cual me jugo la mala pasada, cuando sepa cual fue les diré que provoco este problema.
gracias a todos por su tiempo, seguiré investigando.
26/12/2014 #92

Avatar de djstigma

hola colegas, me gustaria saber si alguien sigue con este tema ?
quiero hacer algo muy parecido controlando un isd2560 con un pic16f628a
en la imagen lo hacen con un pic16f84 que tengo entendido es lo mismo que el anterior mensionado. la idea es grabar 5 mensajes aproximadamente aun nose bien cuantos
lo que me interesa es poder reproducirlos por separado, osea si el pin a05 pasa a 1 que active un mensaje especifico.
me gustaria si es posible un ejemplo sobre estos mismos componentes o algo que me ayude
a crear el codigo en pic ccompiler que es lo que mas o menos se usar
dejo lo que encontre ya que es muy poca la info que hay disponible. gracias
Imágenes Adjuntas
Tipo de Archivo: jpg isd+pic.jpg (69,3 KB (Kilobytes), 19 visitas)
Archivos Adjuntos
Tipo de Archivo: pdf isd ejemplo+explicacion de funciones.pdf (1,02 MB (Megabytes), 19 visitas)
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.