collapse

* Links de Robótica

* Posts Recentes

Palavras Cruzadas por Hugu
[Hoje às 00:54]


[Projecto] Bomba Airsoft por jm_araujo
[Ontem às 16:54]


Apresentação por Tech_JA
[Ontem às 09:19]


Medir Agua que está no Poço por filjoa
[21 de Setembro de 2017, 20:58]


URGENTE - display de 7 segmentos com backpack por helderjsd
[20 de Setembro de 2017, 12:30]


Preços e fabricantes de pcb por Sérgio_Sena
[19 de Setembro de 2017, 10:20]


Isaac Asimov - I, Robot por senso
[18 de Setembro de 2017, 03:41]


ic SL440 da Plessey? por senso
[16 de Setembro de 2017, 13:11]


Compra Colectiva RS-Amidata por brunus
[15 de Setembro de 2017, 22:31]


Ideias para construir um quadrúpede simples por zordlyon
[15 de Setembro de 2017, 10:18]

Autor Tópico: pic16f886 tiny bootloader ldmicro  (Lida 1960 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline jp_

  • Mini Robot
  • *
  • Mensagens: 187
pic16f886 tiny bootloader ldmicro
« em: 25 de Julho de 2012, 11:22 »
Olá a todos,
quase de férias e de volta aos microcontroladores pic estou a ter dificuldades com usar  o Tiny bootloader e ldmicro em conjunto.
Como podem ver na imagem em anexo eu programei o bootloader para 16f886 4Mhz interno (sem cristal), funciona o Tiny reconhece e descarrega o ficheiro compilado com o LDmicro, e o programa funciona, mas o bootloader deixa de funcionar.
A primeira tentativa estava com a versão mais recente do ldmicro e com a versão mais recente do tiny. Já testei com a versão que o asena indicou aqui:lusorobotica.com/index.php?topic=1200.0 como ok mas também não dá. Danifica o bootloader.
Alguma ideia?
jp_

Online Sérgio_Sena

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 1.641
    • Electronic Gear for Musicians
Re: pic16f886 tiny bootloader ldmicro
« Responder #1 em: 25 de Julho de 2012, 13:45 »
Fala com o autor do LDMICRO. Ele vê isso.
Mas primeiro verifica se está mesmo a acontecer isso. A boa maneira é fazer a leitura da FLASH e analizar.

Na altura eu falei com ele, pusemos a coisa a funcionar e pús de lado o sistema.
Só queria mesmo ter o Tiny com o LDMICRO ao mesmo tempo.

Acabei por abandonar a ideia, porque o LDMICRO não é robusto o suficiente para ambiente industrial.
Bem como que electrónica que não tenha marca é bastante dificil de entrar na industria portuguesa. Preferem comprar ao estrangeiro a ter uma empresa/individual compatriota a fazer.

Offline jp_

  • Mini Robot
  • *
  • Mensagens: 187
Re: pic16f886 tiny bootloader ldmicro
« Responder #2 em: 25 de Julho de 2012, 14:42 »
Olá asena,
sim eu sei que testaste e até eu na altura 2009 :) até me enviaste um pic 16f886 com o bootloader em 20Mhz e lembro-me de testar e funcionou mas por incrível  que pareça agora testei e não dá. Estou a desenvolver um circuito com entradas 4 - 20 mA e uma saída 4 - 20mA com o PIC16f886 e não queria usar o programador para efectuar as alterações uma vez que vou usar a porta série para leitura de registos usava a porta serie também para programar.
É isso que vou fazer vou compara os ficheiros antes de depois da programação  com o tiny.
jp_ 

Offline jp_

  • Mini Robot
  • *
  • Mensagens: 187
Re: pic16f886 tiny bootloader ldmicro
« Responder #3 em: 25 de Julho de 2012, 18:26 »
As primeiras linhas do código lido do pic com o tiny bootlader a funcionar:
Código: [Seleccione]
bsf pclath,3
bsf pclath,4
goto lbl_1
addlw FF ; d'255' b'11111111' a''
addlw FF ; d'255' b'11111111' a''
addlw FF ; d'255' b'11111111' a''
addlw FF ; d'255' b'11111111' a''
addlw FF ; d'255' b'11111111' a''
addlw FF ; d'255' b'11111111' a''
addlw FF ; d'255' b'11111111' a''
addlw FF ; d'255' b'11111111' a''
addlw FF ; d'255' b'11111111' a''
addlw FF ; d'255' b'11111111' a''
addlw FF ; d'255' b'11111111' a''
addlw FF ; d'255' b'11111111' a''
addlw FF ; d'255' b'11111111' a''
addlw FF ; d'255' b'11111111' a''
addlw FF ; d'255' b'11111111' a''
addlw FF ; d'255' b'11111111' a''
addlw FF ; d'255' b'11111111' a''
addlw FF ; d'255' b'11111111' a''
addlw FF ; d'255' b'11111111' a''
addlw FF ; d'255' b'11111111' a''
addlw FF ; d'255' b'11111111' a''
addlw FF ; d'255' b'11111111' a''
addlw FF ; d'255' b'11111111' a''
addlw FF ; d'255' b'11111111' a''
addlw FF ; d'255' b'11111111' a''
addlw FF ; d'255' b'11111111' a''
addlw FF ; d'255' b'11111111' a''
addlw FF ; d'255' b'11111111' a''
addlw FF ; d'255' b'11111111' a''
addlw FF ; d'255' b'11111111' a''
addlw FF ; d'255' b'11111111' a''
addlw FF ; d'255' b'11111111' a''
addlw FF ; d'255' b'11111111' a''
addlw FF ; d'255' b'11111111' a''
addlw FF ; d'255' b'11111111' a''
addlw FF ; d'255' b'11111111' a''
addlw FF ; d'255' b'11111111' a''
addlw FF ; d'255' b'11111111' a''
addlw FF ; d'255' b'11111111' a''
addlw FF ; d'255' b'11111111' a''
addlw FF ; d'255' b'11111111' a''
addlw FF ; d'255' b'11111111' a''
addlw FF ; d'255' b'11111111' a''
addlw FF ; d'255' b'11111111' a''
addlw FF ; d'255' b'11111111' a''
addlw FF ; d'255' b'11111111' a''
addlw FF ; d'255' b'11111111' a''
addlw FF ; d'255' b'11111111' a''
addlw FF ; d'255' b'11111111' a''
addlw FF ; d'255' b'11111111' a''
addlw FF ; d'255' b'11111111' a''
addlw FF ; d'255' b'11111111' a''
addlw FF ; d'255' b'11111111' a''
addlw FF ; d'255' b'11111111' a''
addlw FF ; d'255' b'11111111' a''
addlw FF ; d'255' b'11111111' a''
addlw FF ; d'255' b'11111111' a''
addlw FF ; d'255' b'11111111' a''
addlw FF ; d'255' b'11111111' a''
addlw FF ; d'255' b'11111111' a''
addlw FF ; d'255' b'11111111' a''
ORG 0x7A0
lbl_1 nop

As primeiras linhas do código lido do pic após descarregar um ficheiro compilado com LDmicro:
Código: [Seleccione]
movlw 1F ; d'31' b'11111' a'¶'
movwf pclath
goto lbl_1
nop
nop
nop
nop
nop
movlw 28 ; d'40' b'101000' a'('
movwf fsr
movlw 58 ; d'88' b'1011000' a'X'
movwf 0x20
lbl_1 clrf indf
incf fsr,f
decfsz 0x20,f
goto lbl_1 ; lbl_1 = 0xC
movlw 10 ; d'16' b'10000' a'¶'
movwf 0x15
movlw 27 ; d'39' b'100111' a'''
movwf 0x16
movlw 0 ; d'0' b'0' a'¶'
movwf 0xE
movlw 0 ; d'0' b'0' a'¶'
movwf 0xF
movlw 1 ; d'1' b'1' a'¶'
movwf 0x10
movlw B ; d'11' b'1011' a'¶'
movwf 0x17
bsf status,rp0 ; switch to bank 1
bsf status,rp1
movlw 0 ; d'0' b'0' a'¶'
movwf eecon1
bcf status,rp0 ; switch to bank 0
bcf status,rp1
bsf status,rp0 ; switch to bank 1
bsf status,rp1
movlw 0 ; d'0' b'0' a'¶'
movwf eecon2
bcf status,rp0 ; switch to bank 0
bcf status,rp1
bsf status,rp0 ; switch to bank 1
movlw FF ; d'255' b'11111111' a''
movwf trisa
bcf status,rp0 ; switch to bank 0
bsf status,rp0 ; switch to bank 1
movlw FE ; d'254' b'11111110' a''
movwf trisb
bcf status,rp0 ; switch to bank 0
bsf status,rp0 ; switch to bank 1
movlw FF ; d'255' b'11111111' a''
movwf 0x87
bcf status,rp0 ; switch to bank 0
bsf status,rp0 ; switch to bank 1
movlw FF ; d'255' b'11111111' a''
movwf eecon1
bcf status,rp0 ; switch to bank 0
bsf status,rp0 ; switch to bank 1
movlw FF ; d'255' b'11111111' a''
movwf eecon2
bcf status,rp0 ; switch to bank 0
lbl_2 btfss 0xC,2
goto lbl_2 ; lbl_2 = 0x3C
bcf 0xC,2
clrwdt
bsf 0x29,1
btfsc 0x29,1
bsf 0x29,2
btfss 0x29,1
bcf 0x29,2
btfsc porta,0
goto lbl_3 ; lbl_3 = 0x48
bcf 0x29,2
lbl_3 btfsc 0x29,2
bsf portb,0
btfss 0x29,2
bcf portb,0
clrf pclath
goto lbl_2
addlw FF ; d'255' b'11111111' a''
addlw FF ; d'255' b'11111111' a''
addlw FF ; d'255' b'11111111' a''
addlw FF ; d'255' b'11111111' a''
addlw FF ; d'255' b'11111111' a''
addlw FF ; d'255' b'11111111' a''
addlw FF ; d'255' b'11111111' a''
addlw FF ; d'255' b'11111111' a''
addlw FF ; d'255' b'11111111' a''
addlw FF ; d'255' b'11111111' a''
addlw FF ; d'255' b'11111111' a''
addlw FF ; d'255' b'11111111' a''
addlw FF ; d'255' b'11111111' a''
addlw FF ; d'255' b'11111111' a''
addlw FF ; d'255' b'11111111' a''
addlw FF ; d'255' b'11111111' a''
addlw FF ; d'255' b'11111111' a''
addlw FF ; d'255' b'11111111' a''
ORG 0x7A0
lbl_1 nop

Anexei os ficheiros lidos do pic completos. Assembler não é o meu forte. Mas penso que o ldmicro está a alterar as primeiras linhas do código e não deveria. Não coloquei o código todo para não ficar muito extenso, será que dá para ver com este excerto do código?
Alguma ideia?
jp_

Online Sérgio_Sena

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 1.641
    • Electronic Gear for Musicians
Re: pic16f886 tiny bootloader ldmicro
« Responder #4 em: 26 de Julho de 2012, 14:13 »
Fala com o autor do programa outra vez.
Eu não sei como funciona o LDmicro, por isso não dá para fazer grande coisa.

Na altura só me recordo de l he contar o que estava a acontecer e resolveu-se assim.