TODOPIC
Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: Longinux en 17 de Octubre de 2006, 14:03:01
-
Buenas, este es mi primer post aquí y les pido paciencia, ya que aun soy novato.
Utilizo Linux como S.O y ahora estoy embarcado en un proyecto con el manejo de microcontroladores (PIC16F84A). Es decir lo hago todo desde linux:
- Creacion de código ASM --> gedit, vim, ..etc
- Compilacion del ASM --> gpasm
- Grabación del PIC --> picprog
Pues bien, el problemas es que al grabar el pic con el picprog no consigo que me configure los fuses y esl oscilador como yo quiero.
Anexo les pongo un código muy simple como ejemplo y que funciona al grabarlo con IcProg en WindowsXP pero no consigo que funcione desde linux y ya me está desesperando.
;==========================================================================================================================
;
; NOMBRE: LED_1S
;
; AUTOR: LONGINOS RECUERO BUSTOS
; EMAIL: lrecuero1@alumno.uned.es
; FECHA; 12/10/2006
;
; MICRO: 16F84A
; FUSES: TODOS OFF
; OSC: XT
;
; LICENCIA: GPL
;
; DEFINICION: JUEGO DE LUCES QUE SE MUEVEN
; IZQUIERDA A DERCHA
;
;==========================================================================================================================
LIST P=16F84A
#include <p16f84a.inc> ; ESPECIFICACIÓN DEL MICRO
__CONFIG _XT_OSC & _CP_OFF & _WDT_OFF & _PWRTE_OFF ; CONFIGURACIÓN DEL OSCILADOR Y FUSES
;------ DEFINICION DE VARIABLES -------------------------------------------------------------------------------------------
reg1 EQU 0x0C ;NECESARIAS PARA EL DELAY
reg2 EQU 0X0D
reg3 EQU 0x0E
;------ CUERPO DEL PROGRAMA -----------------------------------------------------------------------------------------------
RESET ORG 0x00 ;DIRECCION DE INICIO APLICACION
BSF STATUS,RP0 ;PASO AL BANCO 1
MOVLW 0x00
MOVWF TRISB ;CONFIGURO EL PUERTO B COMO SALIDA
BCF STATUS,RP0 ;VUELVO AL BANCO 0;
;------ JUEGO DE LUCES DESDE RBO A RB7 ------------------------------------------------------------------------------------
INICIO MOVLW B'00000001'
MOVWF PORTB ;ON EN RB0
CALL DELAY ;RETARDO
MOVLW B'00000010'
MOVWF PORTB ;OFF RB0, ON RB1
CALL DELAY
MOVLW B'00000100'
MOVWF PORTB ;OFF RB1, ON RB2
CALL DELAY
MOVLW B'00001000'
MOVWF PORTB ;OFF RB2, ON RB3
CALL DELAY
MOVLW B'00010000'
MOVWF PORTB ;OFF RB3, ON RB4
CALL DELAY
MOVLW B'00100000'
MOVWF PORTB ;OFF RB4, ON RB5
CALL DELAY
MOVLW B'01000000'
MOVWF PORTB ;OFF RB5, ON RB6
CALL DELAY
MOVLW B'10000000'
MOVWF PORTB ;OFF RB6, ON RB7
CALL DELAY
GOTO INICIO ;REPETCION DE TODO EL PROCESO
;------ SUBRUTINAS DE LA APICACION ---------------------------------------------------------------------------------------
;DELAY PRODUCE UN RETARDO CUANDO ES LLAMADO, CREADO POR R_LUIS
DELAY movlw 10 ; Aquí se cargan los registros
movwf reg1 ; reg1, reg2 y reg3
; con los valores 10, 20 y 30
tres movlw 20 ; respectivamente
movwf reg2
dos movlw 30
movwf reg3
uno decfsz reg3,1 ; Aquí se comienza a decrementar
goto uno ; Cuando reg3 llegue a 0
decfsz reg2,1 ; le quitare 1 a reg2
goto dos ; cuando reg2 llegue a 0
decfsz reg1,1 ; le quitare 1 a reg1
goto tres ; cuando reg1 llegue a 0
RETURN
END
Si alguien sabe como puedo solucionarlo o conoce alguna otra alternativa le estaría muy agradecido.
Tambien me gustará si es posible que me digesen si se pueden configurar el oscilador y los fuses sin tener que recurrir al #include <p16f84a.inc> o sea directamente de esta forma, suponiendo que según dice el datasheet del 16f84a en la página 21, que la dirección de la configuracion de los bist es 0X2007:
S_FEATURES EQU 0x2007
.
.
.
BSF S_FEATURES,0 ; OSCILADOR
BCF S_FEATURES,1 ; XT
BCF S_FEATURES,2 ; WDT OFF
BSF S_FEATURS,3 ; PWRTE OFF
.
.
.
END
Grácias por su amabilidad y tengan paciencia y verán como soy un alumno muy aplicado.
Saludos.
-
hola amigo, revise tu codigo y esta bien, ademas los fuses yo siempre los pongo como tu
#include <p16f84a.inc> ; ESPECIFICACIÓN DEL MICRO
__CONFIG _XT_OSC & _CP_OFF & _WDT_OFF & _PWRTE_OFF ; CONFIGURACIÓN DEL OSCILADOR Y FUSES
asi, no se si sera la mejor manera pero por lo general siempre es la misma configuracion en mi trabajos, por otro lado, el problema del sistema operativo del linux tal vez se deba a q le falta un parche, pero si ya tienes el hardware (osea el quemador) intenta con los muchisimos softwares de programcion de pics, en el foro hay un aparatado especial q comentan sobre esto. ojala te ayude mi aporte.
-
Muy agradecido quedo, amigo micro cadaver, seguiré intentándolo a ver si lo consigo.
Saludos.
-
Que versoin de Linux usas, cual es tu kernel? puede ser que no tengas permisos para usar el puerto serie o que debas configurarlo.
-
Hola navaismo, gracias por responder. Te cuento.
Utilizo en estos momentos Guadalinex 3.1 con el kernel 2.6.12.
La verdad es que he tenido que construirme un nuevo jdm, por que el que tenía con linux no valía, el nuevo jdm incorpora un fem 2n7000 y de momento borra, lee y creo que graba bién, sólo que sin poder configurar los fuses y osc.
Si quieres pasate por mi web para ve el mini proyecto que hemos empezado, date cuenta que aun somos newbies ;)
http://www.telefonica.net/web2/longi
-
Oye y con el PIKDEV no sera mas facil, Yo de repente uso para el F84A el KTECHLAB, ya que solo soporta ese o el 628 creo y es bien facil y ademas puedes modificar para programar via serie. Esta muy padre tu Proyecto y retomando las licencias GPL y todo gratiss porque no pides pics gratis y asi te sale parte del hardware gratis :mrgreen:
-
Pues en lo de pedir los pics, no había dado (muy bueno por tu parte) y en cuanto al pikdev, la verdad es que me tienta, sólo que utilizo gnome. Es posible que tambien instale kde a ver si de una vez finalizo la parte de programación del micro y puedo continuar con el proyectin.
En cuanto pueda probaré todo lo que me has dicho y te comento resultados.
Muchas gracias por el interés.
Hasta pronto.
-
Tambien se puede en gnome el pikdev segun lei otro post acerca de linux. y aca entre nos ¿porque usan un sistema visual muy parecido a xp? ¿POrque nadie ama a KDE?
Saludos y suerte se ve muy bien tu proyecto. Felicidades
-
Pues aunque te parezca mentira, no uso KDE por que me recuerda mucho a XP. Reconozco que visualmente KDE es mejor que Gnome ;)
Aunque como ya te dige, tengo H.D. de sobra y es posible que lo instale.
En cuanto al proyecto, aun es muy básico, pero esa es la idea, ir creciendo poco a poco en la medida que podamos.
Saludos y muchas gracias de nuevo.
-
OFF_TOPIC
A mi Gnome me recuerda mas a XP por eso nunca lo uso.
Perdon por salirme del tema. solo queria comentarlo
-
Buenas de nuevo Navaismo, despues de dejar mi equipo más limpio que la patena, recien puesto guadalinex y recien instalado KDE 3.5 (bastante majo por cierto) me es imposible instalar pickdev, por que para poder resolver las dependencias que me pide, debo de borrar otras que me dejarían Linux inservible.
Voy a intentar directamente instalar la estable de debian y a ver si tengo mas suerte.
Muchas gracias por la atención.
NOTA: Me joderia enormemente que esta partida me la ganara microsoft :5]
-
no, no, nunca le ganara microsoft a Linux.... y si intentas con SUSE....
Saludos
-
La leche Navaismo, parece que me lees el pensamiento. Justo esa es la opción que estaba barajeando.
Gracias de nuevo y en cuanto pueda posteo resultados.
Saludos desde tierras del Quijote.
-
Hola de nuevo Navaismo, por fin he instaldo el PIKDEV y parece estupendo en todo, el problema es que cuando programo el PIC me dice que MEMORY+EEPROM ERROR y el caso es que borra y lee el PIC de lujo e incluso graba los fuses y el oscilador estupendamente. Creo que es falta de conocimiento de la aplicación por mi parte, a si que intentaré buscar un manual o algo parecido para moverme por él.
No obstante el programador que tengo es un JDM modificado para LINUX, este exactamente :
http://users.tpg.com.au/btkelly/jdm_b.htm
Si tu me pudieras dar algun consejo de configuración te estaría agradecido.
Por lo demás sólo me queda darte las gracias por tu inestimable ayuda.
Ya te iré contando, Chao.
-
Me parece q tendremos q abrir un apartado para la gente que usa Linux ya q es otro mundo jejejeje ademas seria mas comodo para ellos.
-
Ahora si te voy a quedar mauy mal amigo LONGINUX ya que yo programa en la vmware usando el gtp usb plus pero dejame investigar como configurar el pickdev
-
Hola de nuevo Navaismo, gracias de nuevo por tu atención.
La verdad es que no me lo explico, resulta que el JDM que me he currado es el mismo que te recomienda en su web site, sin embargo, con el PIKDEV:
- Puedo leer el PIC.
- Puedo Borrarlo.
- Puedo grabar los FUSES Y OSC
Pero:
- No puedo grabar el programa. :(
Umm, seguro que alguna pijotería se me está escapando. Voy a hacer un programa desde cero a ver si es por problemas de compatibilidad y te cuento los avances.
Muchas gracias por vuestra paciencia.
-
Hola Longinux, dejame hacer pruebas este dia y te aviso con lo del PIKDEV en suse.
Vi el programador, ya lo habia visto por situaciones nada agradables, no estoy seguro que soporte mas pics que no sean el 12C508 o el 16C84. Voy a probar con el JDM que tengo.
Por cierto como vas con el proyecto de tu pagina, te estas atrasando por esto?? Espero tenerte resultados favorables.
Saludos
-
Hola longinux ya pude programar con el pikdev, ahora me surgen dudas. y antes de hacertelas saber mejor ataco algo que es escencial para no regarla. ¿Si te crea el HEX??
Bueno si te crea el HEX, pues estan de mas las preguntas, si configuras bien los FUSES? eso me daba problemas pero una vez que entendi como funcionaban problema resuelto. use un programador JDM llamado QUARK PRO 2 y con una configuracion de jdm delay 10 en la configuracion del programador.
Deja veo si te puedo hacer unas capturas.
Mientras te dejo el programador que use JDM y que si funciono, checalo haber si te sirve
-
Hola de nuevo mira este videito que te deje AQUI (http://depositfiles.com/files/363493) muestra como configuro el PIKdev.
Para verlo puedes abrir el html en el Opera o Firefox de tu linux, no te digo que uses el Konqueror ya que conmigo no soporta la extension swf. Si no puedes ver el swf adjunte el exe, (ya se es para windows) pero funciona muy bien con el vinito(wine) que emula los exes de windows.
Cada que aparezcan los mensajes le vuelves a dar en play y seguira avanzando, espero te sirva de algo.
Por cierto veo que quieres usar la pc para controlarlo, un consejo si usas un cable limitas, la capacidad de movimiento, su libertad. Por aquello del alcance del cable, pero si aun asi van a usar la PC te recomiendo que uses GAMBAS, es el Visual Basic de Linux, muy bueno. y podrias acceder al puerto serie mediante el.
PD:Ahora si me gustaria saber ensamblador pa mandar al carajo hasta la vmware y trabajar todo con mi preciado LINUX, pero esperare hasta que Ktechlab o Pikdev desarrollen mas compiladores Basic :mrgreen:
Suerte
-
Madre mia Navaismo, sólo por las molestias que te estás tomando voy a hacer referencia en mi página a tu persona ya que para mi has sido esencial en este proyecto mio.
Es cierto que este problema me está retrasando, pero como el club está formado para divertinos mientras practicamos...pues no hay nadie que nos meta prisa. Además hay que cuidar ciertas preferencias ... (La hija, la mujer, los estudios, la informática, la informática,la informática,la informática,la informática,...jejjeje).
Lo de controlar el automata por puerto de serie es sólo por cabezonería mia, por aprender mas sobre los puertos de E/S de un PC, si lo cosiguiesemos trasladaríamos la idea a PARALELO, USB, RADIO, BLUETHOOT...etc.
Ahora lo mejor Navaismo, YA HE TENIDO PELOTAS A QUEMAR UN MICRO ;) por fin!!!, te cuento:
- El nuevo JDM (http://users.tpg.com.au/btkelly/jdm_b.htm) que me hice no vale para el PIKDEV y eso que dicen que está mejor alimentado.
- Lo he tenido que hacer con el TE-20 antiguo que tenía y que tambien me construí, sólo que de este no tengo ya los esquemas. Pero lo que importa es que por fin lo hemos conseguido.
- La única peguilla que tengo es que no lee el micro, pero eso de momento me da igual.
Ahora me voy a descargar todo lo que has subido (tu JDM, el video, etc) y en cuanto tenga un ratito lo miro muy despacio y te cuento.
MUCHISIMAS GRACIAS NAVAISMO, por eso me encanta GNU/LINUX, por la gente como tu.
Saludo y hasta pronto.
P.D.: En un principio tenía pensado para lo del puerto serie utilizar C o JAVA en su defecto, pero eso es algo que aun no se ha decidido.
P.D.2: Este Sábado voy a estar en el SIMO, por si a caso ;)
-
no hace falta lo de las menciones, aqui estamos pa ayudar.
Si vas a ver que si construyes el jdm que te mande va a funcionar yo lo probe con un F84A, lo del puerto serie seguro que si te queda insisto Gambas para ello. y tambien el paralelo.
Lo del USB y rf seguro sera en windows porque no conozco librerias para linux a menos que uses el driver de microchip para usb. nada como usar Picbasic y el EasyHID para el USB. y lo de RF con unos modulitos que rondan en le foro seguro te queda.
Ah se me olvidaba tu plava de circuito impreso no olvides hacerla con el KICAD de Linux.
Saludos
-
Pues nada Navaismo, el pikdev funciona de lujo ya con cualquier JDM que le ponga. Pásate por mi web que he hecho mención especial a tu nombre ;)
Saludos y muchas gracias.
-
ya encontre otro que es igualito al pikdev y tiene unas mejorillas se llama PIKlab, lo encuentras en www.Souceforge.net o en www.KDE-apps.org
Que bueno que ya te funcione y gracias por las menciones.
Abrazos
-
hola!!!
Perdon por meterme, pero veo que manejan bien el linux y pues queria saber que vercion de linux me recomiendan?'''
Anteriormente ya he trabajado con Red Hat, Mandriva y Fedora, pero se que hay un monton de verciones como Suse, Debian, etc, etc. Y me gustaria ya dejar mas a un lado el Windows, pero no me decido con que linux me quedo, pues si me ayudaran a elegir diciendome cual es mejor o cual les agrada mas se los agradecere.
Por ahora es todo.
Saludos 8)
-
Yo uso SUSE es la unca que he probado y me gusto mucho la probe en su version 9.0 y ahora tengo la 10 esta la 10.1 se me hace muy estable.
-
Hola, foreros. Pues yo utilizo una metadistrubución basada en Debian / ubuntu llamada guadalinex (http://www.guadalinex.org/modules/news/) y de momento estoy muy contento.
Ummm... con que Piklab, voy a echarle un vistacillo y de nuevo gracias Navaismo.
Saludos,
-
Gracias por sus respuestas, creo que tratare de conseguir el SUSE, segun veo tambien es gratuito como la mayoria de los linux y se puede descargar de la red, lo malo es que pesa como 3.5Gb el ISO en DVD, pero bueno, ya vere como le hago.
Saludos, y hasta pronto :-/