[Tutorial] y manejo de Proton IDE

muchas gracias por la respuesta quiere decir que si puedo re programar un micro controlador sin necesidad del programador sin problema o me equivoco. me explicas un poco
1.- debo grabar el bootloader en el 18F2550
2.- conectar el circuito a la pc
3.- usar el proton para re programar

asi cambio el programa sin necesidad de el programador o me equivoco
 
Si, una ves grabado el Bootloader se puede grabar, re-grabar el PIC por el USB con el programa que quieras sin usar el grabador...

1.- Si...; usa un grabador para eso, una vez grabado ya no necesitas del grabador...
2.- Si...
3.- No...; el bootloader de microchip requiere de su propio programa; mira que aquí lo explica mejor HID Bootloader.

El proton, como antes mencioné tiene un Loader pero necesariamente requiere de un circuito conectado al puerto serie para programar al PIC No usa el USB.

Y al usar el bootloader necesitas escribir "Declare PROTON_START_ADDRESS = $1000" en el Proton ya que el firmware del bootloader se aloja en la parte baja de la memoria de programa.

saludos.
 
Creo que te falto leer un poco más; dice:

Gracias a la posibilidad del microcontrolador 16F88 de autoprogramar su memoria FLASH, elEVOLUPICBootloader 16F88 no necesita del hardware de programación ICSP, usado por su antecesor el EVOLUPIC 16F628 lo cual simplifica considerablemente su electrónica y permite, a través del firmwareBootloader (precargado de fábrica), programar el 16F88, vía un cable serial DB9-DB9, ó cualquier cable de interfaz USB-DB9, mediante un software que se ejecuta en la PC

saludos.
 
disculpen la ignorancia alguien de ustedes ha armado el circuito para poder usar el bootloader del los micros por usb y usarlo con proton le intento entender pero no le hallo solucion pudieran pasarme esa informacion y sacarme esta duda muy grande de una vez muchas gracias de ante mano
 
disculpen la ignorancia alguien de ustedes ha armado el circuito para poder usar el bootloader del los micros por usb y usarlo con proton le intento entender pero no le hallo solucion pudieran pasarme esa informacion y sacarme esta duda muy grande de una vez muchas gracias de ante mano

El proton no puede grabar por USB.

Si buscas grabar/depurar desde el Proton, el tiene un Loader que es por el puerto serie, tiene la capacidad de depurar el programa en circuito (debugger):
loader.jpg
Para que este funcione, antes necesitas grabar un programa en el PIC que lo encuentras en la carpeta que antes mencioné. La info lo encuentras en el archivo de ayuda del programa.

----------------
Bootloader por USB, hay varios en la web pero todos se basan en el de microchip; el hardware debe tener lo mínimo para que funcione el USB y un pulsador que seleccione entre el modo Bootloader (para grabar el firmware) y el modo normal (cuando funciona el firmware) como se ve en el circuito.
USB HID Bootloader for 18F4550.jpg
Ojo que este método también requiere que se grabe el firmware bootloader el el PIC, luego ya lo podrás conectar directamente a la PC sin inconvenientes de driver ya que este es HID.

Luego para grabar el firmware a probar se hace por medio de un programa que envié los datos por USB al PIC.
BootloaderSoft.jpg
En la web vas a ver varias formas pero básicamente es el mismo ya que el código del programa es libre. El programa detecta automáticamente al PIC cuando lo conectas por el USB (el pulsador de Boot debe estar presionado para que entre en el modo Boot).

Por último cabe recordar que el bootloader ocupa la memoria desde 0000H hasta 1000H, entonces en el proton se debe poner la dirección de inicio del programa para que el compilador "compile" el firmware desde la dirección 1000H; pones al inicio de todo:
Declare PROTON_START_ADDRESS = $1000.

-----------------
- Abres el programa que graba por USB.
- Reinicias o conectas el PIC al USB con el pulsador (Boot) presionado.
- El programa lo debe reconocer; cargas el HEX.
- Grabas el HEX.
- Reinicias al PIC sin presionar el botón (Boot) haciendo que vaya directamente a ejecutar el firmware que se grabó.

-----------------
Importante: El firmware bootloader trabaja por defecto para el PIC18F4550, tiene el pulsador de Boot asociado al pin RB4. Para modificar el PIC y la ubicación del pulsador 'Boot' se debe editar el firmware del bootloader (requiere conocimientos del lenguaje C) y compilar el firmware en el C18 de microchip.

-----------------
Es todo, lo que no he buscado es un programa bootloader que haya sido hecho en el entorno del Proton o PicBasic para que pueda ser modificado por los usuarios que usen el lenguaje Basic; creo que debes de buscar eso o aprender un poco de lenguaje C para modificar el bootloader.

saludos.
 
muchas gracias ahora si me quedo un poco mas claro ahora una pequeña duda en la pagina de microchip descargo el bootloader y tambien el programa o debo hacerlo con el bootloader que esta asociado el programa de grabacion
 
El bootloader de microchip es parte de una colección de librerías (USB/TCPIP/Wifi/etc...) que necesariamente tienes que bajar todo el paquete para usar el bootloader.
Aqui: Microchip Application Libraries.
Luego de instalar el paquete lo encuentras en C:\Microchip Solutions, en la carpeta USB Device - Bootloaders >> HID - Bootloader. Adentro está el programa HIDBootLoader que graba al PIC por usb y en el resto de carpetas encuentras el firmware del PIC con USB que quieres usar.
En caso de usar el PIC18F4550, este ya tiene el firmware compilado y es el archivo USB Device - HID - HID Bootloader - C18 - PIC18F4550.hex pero para otros PICs compatibles a este, debes de editar el programa que se encuentra en la carpeta HID Bootloader - Firmware for PIC18 Non-J Devices;... aclaro que debes de tener el compilador C18 Full + MPLAB para poder compilar el programa.

Es mucho problema para un usuario de Basic, te sugiero buscar en la web el firmware booloader que ya esté compilado para el PIC que uses.

O también me puedes decir que PIC vas a usar y donde vas a poner el pulsador de boot para que yo lo compile y subo el HEX.

saludos.
 
muchas gracias voy a usar el 18F2550 te lo agradeceria mucho y el pulsador de reset lo pondria en RC7
y tambien si pudes me podrias decirme como poder compilarlos y donde busco lo que necesito para conocer un poquito mas si es posible claro esta muchas gracias por la ayuda
 
Bueno falto más especificaciones pero lo preparé así:
- Oscilador externo de 20Mhz.
- Pulsador de boot en RC7; igual al esquema que puse anteriormente (entra al modo boot cuando el pulsador está presionado).
- Led que indica actividad del boot en RB7.

Pasos:
1) Grabas el firmware HID Bootloader PIC18 Non J.hex en el PIC con otro programador.
2) Colocas al PIC en la placa de aplicación.
3) Conectas el cable USB o reinicias al PIC pero teniendo presionado el pulsador para que el PIC entre en el modo Boot. Aquí la primera vez el sistema te debe avisar que se a detectado un nuevo dispositivo "Instalando el driver" o algo así; esperas a que termine "Instalado satisfactoriamente" o algo así y listo.
4) Puedes soltar el pulsador que solo es necesario al momento de conectar el cable USB o luego del reset del PIC.
5) Abres el programa HIDBootLoader (si ya está abierto, este reconoce si el PIC se a conectado o desconectado); este debe indicar que a reconocido al dispositivo. Al reconocerlo se habilitan los botones "Open Hex File", Program/Verifi, etc...
6) Luego de grabar el firmware de prueba por medio del bootloader se puede usar el botón "Reset Device" del programa que reiniciará al PIC y sin presionar el pulsador de boot para que vaya a ejecutar directamente el firmware de prueba.
7) Cada vez que quieras grabar otro firmware por medio del bootloader debes repetir los pasos desde el punto (3).
 

Adjuntos

  • USBHID Bootloader.rar
    31 KB · Visitas: 320
hola amigo gracias por la mano ahorita lo probe lo que me pusiste me reconoce la actividad del boot pero al momento de tratar de grabarle no se que pasa pero se me queda como colgado y no hace nada se queda ahi que podria ser ???? sera porque uso windows 7
 

Adjuntos

  • Sin título.gif
    Sin título.gif
    44.9 KB · Visitas: 51
Última edición:
- Lo tengo en el Win7 sin problemas, intenta correr el programa en modo compatibilidad o como administrador.
- Otra cosa es el hardware, intenta que no sea en protoboard y si lo es, te aseguras que no se mueva nada o falsos contactos que hacen que el PIC se reinicie y el soft pierda el control.
- También el MCLR con una resistencia a pull-up (V+), en condensador del USB (importante, puede ser de 470nF) y el cristal más sus condensadores.
- Y en el proton "Declare PROTON_START_ADDRESS = $1000", de lo contrario estará sobre-escribiendo el código del bootloader.
 
Pues en lugar de un capacitor de 47nf le puse uno de 47uf en el VUSB me parece que fuera eso la resistencia se le puse y lo del proton le puse este codigo
Código:
Device 18F2550
XTAL 20

Declare PROTON_START_ADDRESS = $1000.

TRISB=%0000000

inicio:

High PORTB.1
DelayMS 200
Low PORTB.1

GoTo inicio

muchas gracias por la ayuda que me brindas
 
El el código le falta un DelayMs 200 debajo de Low... de otro modo el PB1 siempre se va a ver encendido y no parpadeará, en realidad si pero Low solo se mantiene durante menos de 1us.
 
tienes muchas razon gracias por la correcion dejame probarle y te aviso a una pregunta asi esta bien para que el firmware se pueda grabar por usb o me falta algo???????
 
Hola a todos, ahora estoy terminando de implementar un circuito y estoy dando mis primeros pasos en BASIC. Yo logre hacer un Datalogger de eventos, registrando fecha y hora que me entrega el DS1307. Todo guardandose en una EEPROM. Ahora necesito guardarlo en una memoria SD o MicroSD o bien en una USB, para esto me he encontrado estos desarrollos: http://www.ghielectronics.com/product/102 He estado leyendo al respecto, pero me encuentro un poco atorado o bien confundido. Podria alguien ayudarme con un pedazo de codigo que me de una idea de como ingresar datos usando esta tarjetita (que utiliza protocolo I2C) o mas informacion o ejemplos de como utilizar el protocolo I2C en BASIC. Gracias por la orientacion al respecto. Salu2. (Utilizo PROTON IDE)
 
Que tal.
Las tarjetas SD o MicroSD usan el bus de datos SPI, no el I2C.
En proton, una foma fácil es usando la instrucción SHIN (revisa la sintaxis en la ayuda del proton) pero todo el protocolo para controlar las memorias SD las debes hacer manualmente. Otra es usando una librería externa llamada SD_File_System que la bajas del sitio oficial como plugin pero solo funciona para los PIC18 (incluye ejemplos).

saludos
 
Amigo estoy un poco confundido, en el manual de dicho dispositivo (uALFAT MicroSD Board), leyendole un poco veo que si acepta manejarlo por protocolo I2C. Ojala alguien haya usado este dispositivo anteriormente o pueda darme un idea de su uso. Gracias. Salu2
 
En ese caso entendí mal, lo que quieres es controlar dicho circuido, no es verdad? ahora que veo el manual soporta ambos y el protocolo I2C no es complicado e incluso te da un ejemplo en C.

En su ejemplo, una lectura simple:
Código:
char Get_I2C_Data_lowlevel()
{
    I2C_Start();
    I2C_Write(ADDRESS+1); // read from 0xA4
    c = I2C_Read();
    I2C_Stop();
    return c;
}

En proton te sugiero usar el módulo I2C del PIC para que todo se controle vía hardware...
La velocidad máxima de clock es de 400Khz y la dirección de acceso es 0xA4

Código:
DECLARE HBUS_BITRATE 400
dim addr as $A4
dim var as char
...

HBSTART
HBUSOUT  addr + 1 ' Para leer
var = HBUSIN ' Obtiene el dato
HBSTOP
return

Pero los mismos ejemplos que incluye proton no usan estas instrucciones ya que lo hacen directamente sobre los registros del módulo I2C (le das un vistazo) y lo de leer o escribir en FAT ya creo que debes de experimentar; los comandos están en el resto del manual.

Algo más:
Proton Example Code
 
hola buenas noches otra vez por aqui una curiosidad quiero usar el 16F873A como configuro el ADC para este micro intente mostrarlo en un LCD esta bien si lo pongo asi

Código:
Device 16F873A

XTAL 4

Declare ADIN_RES 10        ' 10-bit result required                 Utilizado para adc
Declare ADIN_TAD 32_FOSC       ' RC OSC chosen                         Utilizado para adc
Declare ADIN_STIME 50      ' Allow 50us sample time                Utilizado para adc
    
LCD_DTPIN = PORTB.0	' RUTINA PARA VISUALIZAR EN EL LCD PARA LA MEDICION
LCD_RSPIN = PORTB.4
LCD_ENPIN = PORTB.5
LCD_INTERFACE = 4	' 4-bit Interface
LCD_LINES = 2
LCD_TYPE = 0
LCD_COMMANDUS = 2000
LCD_DATAUS = 50

Dim VLM35 As Float
Dim CONT As Word
Dim SUM As Float

TRISB=%00000000
TRISA=%11111111
ADCON1=%10001001 

INICIO:

VLM= ADIn 1

DelayMS 100

Print $FE , $80, Dec VLM35
Print $FE , $C0, Dec VLM35

Cls

GoTo INICIO
 
Atrás
Arriba