collapse

* Links de Robótica

* Posts Recentes

Recomendação de um opamp para um DAC r2r por jm_araujo
[Hoje às 10:48]


Feira de electricidade e eletrónica por beirao
[Hoje às 00:32]


RN42 e TP-Link MR3020 por doiga
[Ontem às 19:22]


Ajuda Projecto IR / RF por senso
[Ontem às 13:15]


Ideias para construir um quadrúpede simples por dropes
[21 de Novembro de 2017, 22:43]


Ajuda com TRIAC por senso
[17 de Novembro de 2017, 18:00]


TV LG White Screen por almamater
[15 de Novembro de 2017, 08:37]


Pergunta sobre prototipagem ( Pesquisa ) por luisjustin
[14 de Novembro de 2017, 23:22]


Medir Agua que está no Poço por Njay
[14 de Novembro de 2017, 13:28]


Amplificador audio por beirao
[12 de Novembro de 2017, 23:43]

Autor Tópico: pic16f886 tiny bootloader ldmicro  (Lida 1996 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_

Offline Sérgio_Sena

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 1.642
    • 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_

Offline Sérgio_Sena

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 1.642
    • 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.