collapse

* Posts Recentes

Amplificador - Rockboard HA 1 In-Ear por almamater
[Ontem às 19:13]


O que é isto ? por KammutierSpule
[26 de Março de 2024, 19:35]


Bateria - Portátil por almamater
[25 de Março de 2024, 22:14]


Emulador NES em ESP32 por dropes
[13 de Março de 2024, 21:19]


Escolher Osciloscópio por jm_araujo
[06 de Fevereiro de 2024, 23:07]


TP4056 - Dúvida por dropes
[31 de Janeiro de 2024, 14:13]


Leitura de dados por Porta Serie por jm_araujo
[22 de Janeiro de 2024, 14:00]


Distancia Cabo por jm_araujo
[08 de Janeiro de 2024, 16:30]


Meu novo robô por josecarlos
[06 de Janeiro de 2024, 16:46]


Laser Engraver - Alguém tem? por almamater
[16 de Dezembro de 2023, 14:23]

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

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

Offline jp_

  • Mini Robot
  • *
  • Mensagens: 188
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.649
    • 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: 188
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: 188
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.649
    • 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.