• Jueves 2 de Mayo de 2024, 00:48

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - oldkami

Páginas: [1] 2
1
Microcontroladores / Re: Eleccion Del Pic Adecuado
« en: Martes 3 de Abril de 2007, 07:06 »
te recomiendo mires catalogos de microchip, sin embargo con lo que dices quiza sea suficiente con los "tradicionales"  16F873A o si no te alcanzan los pines pues un 16F877A.

suerte

2
Microcontroladores / Re: Ayuda Con Bootloader
« en: Viernes 30 de Marzo de 2007, 01:39 »
debes tener en cuenta que el bootloader es un programa que inicializa el puerto serial y se comunica con un programa de PC para luego escribir los sectores de memoria y llenar el pic con el programa.

Aca uno famoso.

http://www.microchipc.com/PIC16bootload/

Basicamente se hace un montaje para comunicar el pic con el PC con el puerto RS232. luego se quema el programa del bootloader en el PIC que se va hacer el desarrollo una sola vez.

luego cada vez que necesites actualizar el Firmware del PIC (el programa que estas desarrollando) lo haces sin sacar el pic del montaje, simplemente utilizando el programa de PC y a traves del puero serial.

hay muchisimas implementaciones de bootloaders cada quien puede elegir la que mejor le parezca o incluso desarrollar alguna propia :)

Suerte.

3
Microcontroladores / Re: Trf-2.4g E Intreface Spi
« en: Viernes 30 de Marzo de 2007, 01:22 »
ya hace un tiempo (casi un año) coloque un desarrollo del codigo que se puede utilizar para operar el TRF2.4, lastimosamente para algunos esta en ensamblador y no en C, pero no deberia ser problema incluir los objetos compilados en ensamblador y llamar las funciones  utilizadas. como veran en el ejemplo colgado en el ftp de este foro, NO utilizo el SPI del PIC. (el ejemplo se llama Avion-TRF24)

para poder conseguir el alcance maximo se necesita las siguientes condiciones

1. configurar la comunicacion a 250k
2. el tamaño de los paquetes debe ser lo mas pequeño posible (mandar 4 bytes) entre mas grandes los paquetes se reduce el alcance del dispositivo.
3. no pueden haber vigas, ni estructuras metalicas de ningun tipo que operen como pantallas magneticas (practicamente al aire libre)

En mi caso utilice este dispositivo para comunicar las señales de vuelo proporcionadas por un aeromodelo (da aqui que el nombre del proyecto se llamara Avion-TRF24). obviamente este tipo de vuelos se realizan en campo abierto sin edificaciones en muchos metros a la redonda por normativa. En un ambiente mas hostil la eficiencia se puede reducir en proporcion a los obstaculos.
Adicionalmente yo trabaje con cristales de 4 Mhz con lo cual no es necesario en absoluto ubicar retardos en el codigo.

Es todo dudas adicionales las pueden comunicar a traves de este foro

suerte.

4
Microcontroladores / Re: Programar En C
« en: Viernes 30 de Marzo de 2007, 01:06 »
intenta SDCC y gputils y olvidate de windows :)

5
Microcontroladores / Re: Tmr1
« en: Martes 9 de Mayo de 2006, 19:43 »
se refiere a usar un circuito oscilador para generar una señal de 32Khz que ud piensa utilizar como contador?..

si es asi lalo_soft escribio en un post hace poco "... se puede con oscilador externo (se hace con un 74ls04 el xtal,dos resistores de 330ohm uno de 10K y un condensador de .1) ..."

 el tema era utilizar un solo cristal para 2 pics. pero ese mismo circuito sirve para la aplicacion que ud necesita.  consulte en internet o en libros, circuitos osciladores con cristal, y seleccione uno que se acomode a sus necesidades.

despues de hacer esto por favor comuniquenos sus resultados para ver como le podemos ayudar.

suerte.

oldkami

6
Microcontroladores / Re: Modulo Lvd Pic18f242
« en: Martes 9 de Mayo de 2006, 19:31 »
Intenta lo siguiente:

CONFIGURAR_LVD

MOVLW 0X0D ;1101 <LVDL3:LDVL0> SELECCIOPN NIVE
MOVWF LVDCON ; DE UMBRAL = 4.2-4.45 V
BCF INTCON,GIE ;DESACTIVAR INTERRUPCIONES
BCF PIE2,LVDIE ;DESACTIVAR INTERRUPCIONES
BSF LVDCON,LVDEN ;ACTIVAR EL MODULO LVD
ESTABLE
BTFSS LVDCON,IRVST ;ESTE CICLO ESPERA A QUE SE
GOTO ESTABLE ;ESTABILICE EL VOLTAJE DE ALIMENTACION
BCF PIR2,LVDIF
BSF PIE2,LVDIE ;ACTIVAR INTERRUPCIONES
BSF INTCON,PEIE ;Activar interrupciones por perifericos :)
BSF INTCON,GIE ;ACTIVAR INTERRUPCIONES

RETURN

deberia funcionar, cabe decir que el RCON,IPEN debe estar clear..

suerte.

oldkami

7
Microcontroladores / Re: Modulo Lvd Pic18f242
« en: Martes 25 de Abril de 2006, 22:24 »
puedes enviar la seccion del codigo donde configuras el LVD y la parte donde se atiende la interrupcion?

8
Microcontroladores / Re: Grabar En La Eeprom
« en: Martes 25 de Abril de 2006, 00:38 »
esa es la forma mas sencilla, pero tiene en contra que se debe escribir mucho una sola zona de la memoria, y hay que recordar que estas escrituras son limitadas, es una buena opcion si las escrituras no son tan frecuentes. Otra es por ejemplo solo escribir caracteres ascii en la EEPROM y finalizar la escritura con un caracter "null" ( 0x00) y verificar cada vez que se valla a escribir en la memoria cual es la ultima posicion; esto es adecuado para darle durabilidad a la memoria, pero es algo lento.  Otra forma es almacenar el dato de la cantidad de posiciones en una NVRAM o algun reloj en tiempo real alimentado con bateria de litio de tal forma que si es una escritura relativamente frecuente, se pueda actualizar el dato de la cantidad de posiciones continuamente sin sacrificar la durabilidad de la memoria, pero con algun costo y complejidad adicional.

como en todo, la mejor respuesta es Depende de la aplicacion.

suerte.

oldkami

9
Microcontroladores / Re: Modulo Lvd Pic18f242
« en: Martes 25 de Abril de 2006, 00:16 »
Bueno,  me parece que en el datasheet del 18F242 es suficientemente claro, ¿cual es el problema exactamente? que parte de la implementacion no te funciona?

explicanos que has hecho para ver como te podemos ayudar.

suerte

oldkami

10
Microcontroladores / Re: Comunicacion Con Trf2.4 Y Un Micro
« en: Lunes 24 de Abril de 2006, 23:39 »
hace un tiempo coloque un ejemplo del uso del TRF 2.4 (laipac) en el ftp del foro, usando dos 16F873 TRF2.4 marca laipac los Datasheet se encuentran en el ftp del foro y el codigo utilizado.


son muy faciles de utilizar por lo que no deberia tener mayor problema.

suerte

oldkami

11
Microcontroladores / Re: Duda Básica Con Código
« en: Sábado 15 de Abril de 2006, 02:57 »
le recomiendo leer cuidadosamente el manual de ensamblador.
la etiqueta primo puede ubicarse en cualquier posicion de memoria, y por lo que veo es una implementación de una tabla sencilla, el pic 16F84 trabaja con registros de ram de 8 bits, pero recuerde que la memoria (ROM) trabaja con registros de 14bits.  para efectos de utilizacion podemos suponer que cada registro de memoria ROM o mejor la memoria de programa (ej. la etiqueta primo) se compone de dos partes, la parte baja (LOW) que representan 8 bits (lsbyte) partiendo desde el menos significativo. la parte alta (HIGH) son los bits restantes (msbyte).

por tanto la palabra clave LOW o HIGH le indica al compilador que tome el byte correspondiente. en :

movlw HIGH primo

solo la parte alta (los 6 bits msb del registro de 14 bits) de la etiqueta que representa una posisicon de memoria (primo)  se moveran al acumulador.

es decir si primo se encuentra en

0x0060

con la instruccion de arriba se movera un 0x00 a W.
si fuera
movlw LOW primo

entonces W= 0x60

suerte

12
Microcontroladores / Re: Como Trabajar Con Decimales Con Coma
« en: Lunes 3 de Abril de 2006, 20:07 »
en la pagina de microchip existen unas Math routines para trabajar con coma flotante (de 16 y 32 bits) , Alguna vez tuve que hacer algo parecido (calcular Rpms midiendo el periodo, convertirlo a frecuencia y visualizarlo en display de 7 segmentos..)  y estas rutinas trabajaron muy bien.

revisa el AN526 Math Routines.. si requieres calcular algo mas complejo (raices cuadradas y logaritmos) revisa  el AN660 Float point Routines en la pagina de microchip.

suerte

oldkami

13
Microcontroladores / Re: Sobre Mplab
« en: Martes 3 de Enero de 2006, 20:49 »
intenta lo siguiente

1)selecciona SCL generator y haz click en Nuevo, luego en el tab "Register injection"

2)luego selecciona en Register el RCREG y como trigger "Message"  coloca el mensage que quieres simular en el Data fileName o un archivo *.txt que contenga el mensaje. si quieres que se envie constantemente dale la opcion Rewind = yes y formato Pkt.

3)dale en generar archivo SCL. por ejemplo usart.scl

4)guarda los cambios (usart.sbs)

5) ahora abre el stimulus controller------> New scenario

6) dile attach y agrega el escenario Usart.scl

6) puedes añadir la INT0 o lo que gustes..

7) no cierres el stimulus controler y simula el programa, si todo esta correctamente configurado se generara una interrupcion por usart.

Feliz año Nuevo

Suerte.

Oldkami

14
Microcontroladores / Re: Pwm1 Pic16f873
« en: Miércoles 19 de Octubre de 2005, 06:28 »
sin duda esa es la mejor posibilidad,  necesariamente se debe utilizar un modulo PWM para que la señal se mantenga sin importar los posibles eventos.

el uso de interrupciones en este caso podria ser opcional, porque igual el procesador no estaria haciendo practicamente nada durante la generación de los pulsos y si añadiria un poquito mas de dificultad al proyecto (cambio de contexto, etc..). puedes hacer una rutina de escaneo normal por "Polling"...

 si se desea bajo consumo, entonces podrias convenientemente aprovechar las rutinas de interrupción y poner a dormir el pic y apagar la LCD despues de alguno tiempo :) con eso tu circuito se alimentaria perfectamente desde una bateria y aprovecharias realmente el uso de interrupciones...

Suerte

oldkami

15
Microcontroladores / Re: Operacion Rs232
« en: Miércoles 19 de Octubre de 2005, 06:06 »
los osciladores RC (los internos de los pic) son (o eran) muy inestables como para realizar una transmision AUSART, ya que en este tipo de comunicación el tiempo debe medirse con bastante precisión, por esto siempre se requeria un cristal oscilador para que los tiempos fueran más exactos.

lo que te dice el datasheet es que este chip en particular posee un oscilador interno de mucha precision, tanta que no necesita un cristal externo.

sin embargo DEBES seguir usando un max :)

Suerte

oldkami

16
Microcontroladores / Re: Quemar Datos Permanentemente
« en: Miércoles 19 de Octubre de 2005, 05:57 »
lo que comentas puede ser realizado de muchas formas.

lo mas sencillo, y si esos datos no se van a modificar, es almacenarlos en forma de tabla, y realizar una rutina para accesarlos como tal.. puedes encontrar muchos ejemplos de implementación de tablas.
eJ.

movlw Posicion ;el dato que deseas consultar
call   TABLA    
banksel miregistro
movwf miregistro ; mueves al dato a donde necesites.

TABLA
      addwf PCL,F             ;computa la posición
      dt 0x01,0x02, d'10',a'H' ; los datos que no se deben perder :)
      dt 0x10,...,0x1F
      dt ,...,0xFF

este ejemplo es muy basico y la tabla debe ser ubicada de tal forma que no pase los limites de la pagina, recuerda que el MPLAB posee unlimite de caracteres por linea, por eso hay que colocar las instrucciones dt consecutivamente.

recuerda que la EEPROM, y la FLASH son practicamente lo mismo y la instrucción que escribe la una, sirve para escribir la otra, este es el principio que utilizan los bootloaders,  solo que la escritura de la flash es algo más lenta y si estoy bien el programa detiene su ejecución mientras se ejecuta. Lo que se guarde en cualquiera de las dos no se borra, bueno al menos en muy muy largo tiempo :). si lo que necesitas es que estos datos sean modificables desde otra fuente como un PC y queden fijos, tal vez lo mejor sea implementar algo parecido a un bootloader.

suerte

oldkami

17
Microcontroladores / Re: Max232 Y Rs232
« en: Miércoles 19 de Octubre de 2005, 05:31 »
en que lenguaje necesita realizar la comunicación serial?  

lo del hyperterminal solo es abrirlo, decirle cual com y listo.

Saludos

oldkami

18
Microcontroladores / Re: Pic 16f873
« en: Martes 5 de Julio de 2005, 21:41 »
perdon, un bloque de memoria (consecutiva) utlizable de un PIC 16F873 tiene un maximo de unos 96 bytes (A0h-FF).

19
Microcontroladores / Re: Pic 16f873
« en: Martes 5 de Julio de 2005, 21:37 »
Si la cadena es muy grande y la "procesas" en la medida que van llegando los datos debes tener en cuenta las siguientes cosas:

1. el tiempo de "procesamiento" del dato no puede superar el tiempo de transmision de 2 bytes (maximo tamaño de buffer del 16F873), de lo contrario corres el riesgo de un overflow.

2. si el tiempo de "procesamiento" de un dato necesariamente es mayor a lo indicado anteriormente, debes usar interrupciones y almacenar todos los datos en un buffer de recepción. (manejar un proceso en background). el proceso principal ira sacando los datos del buffer y los procesara sin temor de perdida de datos.

3. si no conoces o tienes experiencia en interrupciones, aprendelas ¡ :) o utiliza control de flujo por hardware. sera más lenta la operación conjunta, pero cumplira su cometido.

4. si la cadena de datos es muy grande como para almacenarla en la memoria del PIC, debes pensar la opción de utilizar una memoria auxiliar, ten encuenta que un bloque de memoria (consecutiva) utlizable de un PIC 16F873 tiene un maximo de unos 110 bytes (110h-17F).

Suerte
 Oldkami

20
Microcontroladores / Re: Pic Y Trf2.4 Ghz Marca Laipac
« en: Martes 5 de Julio de 2005, 21:11 »
Solo utilizo el micro y el modulo,  el modulo mismo se encarga de la verificación CRC de los datos, por lo que se puede retirar muchas lineas de codigo en el micro. :). en cuanto a la codificación (portadora?, ancho de banda?) todo eso lo hace el modulo si se envia la trama de configuración correcta :) simplemente se transmiten o reciben los datos y se hace con ellos lo se requiera.

Lo unico que he notado, es que los paquetes, como se configuran antes de iniciar la transmision, son  todos siempre del mismo tamaño(ej: 4 bytes ),  si se desea variar el tamaño de la trama (ej: de 4bytes a 6bytes) hay que reconfigurar ambos dispositivos.  Existe un modo especial de trabajo para estos casos de tramas variables (modo directo), pero entonces se necesita implementar un algoritmo CRC en el micro y el modulo pierde la capacidad de generar interrupciones.

Suerte
Oldkami

21
Microcontroladores / Re: Pic Y Trf2.4 Ghz Marca Laipac
« en: Jueves 30 de Junio de 2005, 04:16 »
Bien, ya consegui hacer funcionar el sistema, realmente era más sencillo de lo que pensaba, aunque debi olvidarme de la idea de utilizar el MSSP, coloque los archivo del proyecto en el ftp de solocodigo para quien quiera mirar mas detalles. Tenia algunos errores en la interrupción pero sobretodo en el envio de los datos de la configuración.
 
los datos recibidos son enviados via serial al PC a 19200 bps


El rendimiento de este dispositivo es verdaderamente excelente, la transmision es muy confiable y la implementación es simple.  lo recomiendo para todos los que como yo no tienen experiencia alguna en RF. lo unico en contra es el conector, necesariamente hay que probarlo sobre un circuito impreso.

Gracias por todo. :)


Suerte
oldkami

22
Microcontroladores / Re: Pic Y Trf2.4 Ghz Marca Laipac
« en: Miércoles 29 de Junio de 2005, 02:38 »
bueno, basicamente estoy utilizando el MSSP de un PIC 16F873 con xtal de 4MHZ.  estoy trabajando a 250 kb de velocidad de transmision.

ya que el codigo que utilizo un poco extenso, subi el codigo como Avion.rar al Ftp de solocodigo.  como utilizo modulos, es mejor abrir el proyecto RX_Avion y TX_Avion que los archivos individuales. PORB,4 es un led para saber si vive el programa.


crei haber encontrado el error al darme cuenta que habia olvidado apagar el Brown Out Detect, ya que tengo alimentados el PIC y el TRF a 3V. pero de todas formas no trabaja.

Basicamente el problema es que no estoy del todo seguro de como transmitir la palabra de configuración del PIC al TRF, creo que en este procedimiento esta el truco para hacer funcionar el sistema, la idea es que al recibir la trama de datos correcta el TRF genera una interrupción colocando en alto un pin, más la interrupción nunca llega lo cual me indica que tal vez no quedo bien configurado o se estan enviando mal los datos, una vez consiga hacer funcionar la interrumpción proporcionada por el TRF lo demas es sencillo.

Bueno, esto es todo lo que tengo hasta ahora, ojala sea suficiente para que me puedan ayudar con este problema..

Gracias y Suerte
oldkami

Suerte

23
Microcontroladores / Re: Pic Y Trf2.4 Ghz Marca Laipac
« en: Martes 28 de Junio de 2005, 17:50 »
ok ya subi la hoja de datos al ftp de solocodigo  (datasheet)...  no habia visto lo del servidor ftp del foro :)


Suerte

oldkami

24
Microcontroladores / Re: Pic Y Trf2.4 Ghz Marca Laipac
« en: Martes 28 de Junio de 2005, 17:34 »
si, tengo la hoja de datos,  Tiene 2,2 MB y me la enviaron del almacen en donde lo compre (no esta en la pagina de Laipac), si me obsequia la dirección e-mail o FTP con gusto se la envio...

Suerte

oldkami

25
Microcontroladores / Re: Codigo De Impresion
« en: Miércoles 15 de Junio de 2005, 20:54 »
basicamente lo que debes tener en cuenta es que las impresoras ,de comunicacion Paralela,   poseen un modo en comun de funcionamiento, siguiendo el protocolo Centronics de transmision de datos.  con ese protocolo puedes comunicarte con cualquier impresora.

existen 3 "puertos" en un dispositivo de comunicacion paralela, el primero lo llamamos data, el segundo control, y el tercero es un status.

Data = 8 bits (D0-D7) (ej Port B :))

Control = (del pic a la impresora)
Strobe
Autofeed
Initialize
SelectInput

Status = (de la impresora al pic)
Error
online
outpaper
acknowledge
busy

como es logico a cada pin del PIC le corresponde 1 de estos pines

*Strobe
– Un pulso cada vez que se envía un byte
– El periférico detecta que la información es estable.
* Data0Data7
– Cotienen el byte de datos.
*Acknowledge
– El periférico indica que ha recibido el byte.
* Busy
– El periférico indica que aún no está preparado para recibir otro byte.
* Paper End
– La impresora indica que se ha quedado sin papel.
* Select
– El periférico indica que se encuentra en línea.
*Auto Feed
– Permite conmutar entre
   Retorno de carro: Volver al comienzo de línea.
   Retorno de carro: Volver al comienzo de línea y añadir línea nueva.
* Error
– El periférico indica un error de hardware.
* Init
– El PIC inicializa el periférico.
* Select In
– El PIC coloca el periférico fuera de servicio.
* GND0GND7
– Tomas de tierra individuales para cada línea.

Visto asi es muy logico, primero seleccionas el dispositivo,inicializa el dispositivo, esperas la señal online y acknodledge, transmites autofeed,esperas acknowledge y online, colocas el dato en el puerto(ASCII), parpadea el strobe, acknodledge, luego el siguiente, y el siguiente etc..

la impresora posee un set de fuentes definidos y otros programables, siempre existe uno por defecto, y ese es con el que se imprimira de esta manera, esta forma de impresion se llama modo texto. Tratar de cambiar la fuente y el tamaño de la fuente ya se convierte en algo relativo a cada impresora y es un problema mucho mas complejo, es practicamente hacer un driver para la impresora y es necesario conocer profundamente los comandos de la misma.

Suerte

oldkami

Páginas: [1] 2