BootLoader Pic18F4620

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

BootLoader Pic18F4620

Mensagempor Juliana Mariana » 03 Dez 2009 09:33

Gostaria de um bootloader para o PIC18F4620, com cristal de 20MH, ja tentei usar o Tiny, mas não funciona, e tb tentei com ccs, mas ele grava o programa apenas uma vez.
Juliana Mariana
Bit
 
Mensagens: 10
Registrado em: 18 Ago 2009 10:09

Mensagempor tcpipchip » 03 Dez 2009 11:40

O que nao funciona no PIC18F4620 ?

Voce setou o BAUD RATE correto na IDE do BOOTLOADER ? O teu gravador reconheceu que é HS o cristal ?

Deveria funcionar sim!

Eu usei...mas nao para o 4620, mas para 252 e 452
Avatar do usuário
tcpipchip
Dword
 
Mensagens: 6560
Registrado em: 11 Out 2006 22:32
Localização: TCPIPCHIPizinho!

Re: BootLoader Pic18F4620

Mensagempor fabim » 03 Dez 2009 11:49

Juliana Mariana escreveu:Gostaria de um bootloader para o PIC18F4620, com cristal de 20MH, ja tentei usar o Tiny, mas não funciona, e tb tentei com ccs, mas ele grava o programa apenas uma vez.


qual seria o compilador, qual seria o bootloader?
fabim
Mano, ve só.
Sou responsável pelo que escrevo!!! E não pelo que você entende !!!
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Mensagempor Juliana Mariana » 03 Dez 2009 12:27

No caso do bootloader em asm para o Tiny, eu tenho um programa para o Pic18F2620, entao modifiquei o Pic e o BAUD RATE no programa, ele compila normalmente, mas quando tento mandar o programa ele não consegue nem se quer indentificar o Pic.

E no caso do bootloader em C no CCS, ele compila, grava o programa e eu ate consigo transmitir, mas apenas uma vez. Por algum o motivo meu programa sobre-escreve o bootloader.
Juliana Mariana
Bit
 
Mensagens: 10
Registrado em: 18 Ago 2009 10:09

Mensagempor fabim » 03 Dez 2009 12:33

olha, provavelmente.
Este do CCS foi feito para isto mesmo...

Agora veja bem uma coisa.
Bootloader, você precisa saber onde ele foi gerado, se no fim da flash ou no inicio da flash.

Se foi no inicio, por exemplo considerando 1000 posições.

Quando você for compilar o seu programa, a IDE deve estar ciente que ela irá desconsiderar os primeiros 1000 bytes, e iniciar o ORG 0 ou seja ponto zero, da posição 1000 + 1..

Se por exemplo, tu tem o bootloader que é no inicio da flash, com 1000 posições, e criar um projeto sem que a IDE esteja ciente disto, ele vai montar o codigo a partir do endereço 0.
Se ele montar por exemplo uma rotina com endereço 620.
Observe que 620 esta dentro do bootloader, ou seja ele se perde e vira bagunça.

De outra liga novamente no APP do bootloader que esta usando e observe estes detalhes .

Abraços

Fabim
Mano, ve só.
Sou responsável pelo que escrevo!!! E não pelo que você entende !!!
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Mensagempor Juliana Mariana » 03 Dez 2009 12:39

Desculpe minha falta de informacao,mas oq é IDE ?

E no caso esse org que vc disse deve estar no meu bootloader ou no meu programa
Juliana Mariana
Bit
 
Mensagens: 10
Registrado em: 18 Ago 2009 10:09

Mensagempor tcpipchip » 04 Dez 2009 14:51

Juliana
Pega o .hex direto do TINY, muda o valor do cristal no Hardware mesmo.
Avatar do usuário
tcpipchip
Dword
 
Mensagens: 6560
Registrado em: 11 Out 2006 22:32
Localização: TCPIPCHIPizinho!

Mensagempor Djalma Toledo Rodrigues » 04 Dez 2009 17:05

Juliana Mariana escreveu: ... oq é IDE ? E ... org ... deve estar no ... bootloader ou no meu programa

Ide: Integrated Development Environment ou Ambiente Integrado de Desenvolvimento --- Ex.: MPLAB

Org: No seu Programa -- Seguir o que Fabim recomendou

DJ
Avatar do usuário
Djalma Toledo Rodrigues
Dword
 
Mensagens: 2334
Registrado em: 03 Ago 2008 13:22

Mensagempor RobL » 04 Dez 2009 18:19

ORG é uma diretiva do assembly e deverá estar no seu programa.


(0x3E9 = 1001 decimal)
Por exemplo:


ORG 0X3E9

bsf xxx ; esta linha vai ser escrita na posição 1001
nop ; esta na memo 1002
...
RobL
Dword
 
Mensagens: 1546
Registrado em: 20 Fev 2007 17:56

Mensagempor Juliana Mariana » 07 Dez 2009 08:30

Eu tentei colocar a função #org 0x3E8 para que o programa começar no endereço 1000, mas toda vez q tento compilar ele da um erro, dizendo q o range do org esta invalido. Gostaria de saber qual seria o problema .
Juliana Mariana
Bit
 
Mensagens: 10
Registrado em: 18 Ago 2009 10:09

Mensagempor Djalma Toledo Rodrigues » 07 Dez 2009 11:25

Word ?

#org 0x03E8

DJ
Avatar do usuário
Djalma Toledo Rodrigues
Dword
 
Mensagens: 2334
Registrado em: 03 Ago 2008 13:22

Mensagempor Juliana Mariana » 07 Dez 2009 12:37

Mesmo com a alteração mostrada por nossa amiga Djalma, na hora de compilar continua aparecendo o mesmo problema.
Gostaria q alguém me ajudasse a resolver o problema.
Juliana Mariana
Bit
 
Mensagens: 10
Registrado em: 18 Ago 2009 10:09

Mensagempor fabim » 07 Dez 2009 12:58

Juliana.
Qual IDE esta utilizando?
Qual linguagem ?

Lembre-se.. "você leu acerca do bootloader, para saber qual o tamanho e se ele se encontra no inicio ou fim da flash?".

#ORG ....

Isto não quer dizer nadinha de nada, a não ser alocar algo em algum lugar.
É necessario saber o que, e como quer fazer.

Lembre-se no momento em que o pic é energisado e starta a CPU, ele cai logo no endereço 0X0000;<< vetor de reset.

Com certeza, neste endereço tem um CALL/GOTO>>
"Endereço inicial da rotina de bootloader, o qual fica preso por alguns segundos ou Ms, até receber um comando do PC, SERIAL que informa que vai inicializar o Bootloader, o qual esta rotina é responsavel a gravar na flash do pic o programa o qual esta fazendo o upgrade"
Depois que termina o Boot, o que a rotina de bootloader faz ?
Ela da um goto para o ofset ENDEREÇO X, o qual você deve estar ciente qual é, você deve conhecer este endereço !!!

Suponha que o programa de boot foi feito da seguinte forma.

No vetor de reset, foi feito assim.

:0x0000: call_boot_loader;
:0x0001:goto main.

Veja, logo no reset ele da um call, lá para o endereço X que é o programa de bootloader, o qual funciona conforme expliquei à cima.
Terminado o bootloader, ou apenas estourado o tempo que ele espera para o boot, no fim deste pequeno programa tem um.

RETURN:
Veja, ele vai retornar para o vetor
0X0001: que vai saltar para o endereço do programa que você fez em sua IDE!!!
Este endereço ou labeal "main", pode ser configurado como comando de IDE, e informado que ele fica no endereço X.
Ou seja,

Quando você faz o programa e cria o .

void main(void).

O assemblador substitui o nome main, pelo endereço " X"<<....

Agora na pratica, como exemplo o mikroC.

Sei que o bootloader que eu estou utilizando, me informou que ele grava tudo como base de reset no endereço.
0X0010 pra frente.
Dessa forma, eu tenho que informar A ide que ela vai montar o programa hex, tomando o ofset 0x0010.

logo no source de meu programa, no mikroC lá encima eu vou dar uma diretiva, para a IDE montar o programa do endereço 0X0010 pra frente.

#pragma orgall 0x0010...

Pronto, resolvido.

Entendeu agora?

Fabim
Mano, ve só.
Sou responsável pelo que escrevo!!! E não pelo que você entende !!!
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Mensagempor Djalma Toledo Rodrigues » 07 Dez 2009 13:22

Juliana Mariana escreveu:Mesmo com a alteração mostrada por nossa amiga Djalma.

Q?

Femenino de Djalma é Djalmira

assim como de Julio é Juliana. Juliana :D

DJ
Avatar do usuário
Djalma Toledo Rodrigues
Dword
 
Mensagens: 2334
Registrado em: 03 Ago 2008 13:22

Mensagempor fabim » 07 Dez 2009 13:28

Djalma Toledo Rodrigues escreveu:
Juliana Mariana escreveu:Mesmo com a alteração mostrada por nossa amiga Djalma.

Q?

Femenino de Djalma é Djalmira

assim como de Julio é Juliana. Juliana :D

DJ


Nossa DJ, só porque ela sabe a sua verdadeira personalidade, tu ficou assustado, por haver um engano, ou por ela ter descoberto o seu verdadeiro eu?

kkkkk

Brincadeira eim!!!
Abraços
Mano, ve só.
Sou responsável pelo que escrevo!!! E não pelo que você entende !!!
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Próximo

Voltar para PIC

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

cron

x