collapse

* Posts Recentes

VS-Solar Challenge 2018 por TigPT
[Hoje às 20:48]


BostonDynamics - Vai uma mãozinha? por Njay
[Hoje às 20:25]


Formatação de Arduinos (Uno, Nuovemila, Diecimila) por jm_araujo
[Hoje às 18:57]


Ziphius: The Aquatic Drone por zordlyon
[Hoje às 17:00]


Mais um avanço na pele sintetica para robots e nao só... por Hugu
[Ontem às 18:30]


Como ver se uma tomada tem a terra ligada? por LVirtual
[Ontem às 15:08]


Via Verde - Identificador por TigPT
[17 de Fevereiro de 2018, 09:56]


Estação de soldadura da Banggood, será boa compra ? por vasco
[16 de Fevereiro de 2018, 17:47]


Desenho PCBs 80's por senso
[16 de Fevereiro de 2018, 14:35]


Como guardar componentes SMD ? por vasco
[16 de Fevereiro de 2018, 14:34]

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