LusoRobótica - Robótica em Português
Sistemas específicos => PIC => Tópico iniciado por: jp_ em 24 de Abril de 2009, 11:45
-
Procuro um bootloader para pic's.
Estou a fazer testes com este http://www.etc.ugal.ro/cchiculita/software/picbootloader.htm (http://www.etc.ugal.ro/cchiculita/software/picbootloader.htm)
Primeiro de tudo a razão pela qual procuro um bootloader é que se torna mais fácil de programar, mais rápida a transferência do programa e poderemos monitorizar estados de variáveis durante os testes.
eu já testei o tiny bootloader com o pic16f876a e até já fiz o teste de por um led a piscar.
Mas nem sempre funciona bem, erros de comunicação e o programa que eu queria usar para programar também não é compactível com o tiny .
se eu usar o Pic simulador IDE: http://www.oshonsoft.com/pic.html (http://www.oshonsoft.com/pic.html)
ou o flowcode: http://www.matrixmultimedia.com/flowcode.php (http://www.matrixmultimedia.com/flowcode.php)
o ficheiro é compactivel mas já o Ladder: http://www.cq.cx/ladder.pl (http://www.cq.cx/ladder.pl)
o ficheiro .hex que é gerado na compilação não funciona.
Neste momento estou a usar o LAdder ou o Pic simulador IDE para criar os programas e o ICprog para programar com o progarmador: http://www.olimex.com/dev/pic-pg1.html, (http://www.olimex.com/dev/pic-pg1.html,) mas não posso monitorizar.
Eu queria saber se alguém conhece este ou outro bootloader, o que pretendo fazer é algo parecido com o Picaxe.
jp_
-
o bootloader da picaxe nao ta disponivel ao publico?
-
Olá FIFAS.
Está se comprares o picaxe. Mas está protegido não se consegue duplicar.
JP_
-
Olá FIFAS.
Está se comprares o picaxe. Mas está protegido não se consegue duplicar.
JP_
Não imaginava que picaxe era closed.. acabou de perter todo o respeito k tinha pela plataforma, sendo uma coisa tão utilizada e elementar (leia-se não é em nada superior a Arduino), nunca pensei.
-
realmente.....
agora percebo porque ha mais adeptos e maiores comunidades usando arduino! ja usei picaxe e até gostei....mas nao disponibilizarem o bootloader :o
-
realmente.....
agora percebo porque ha mais adeptos e maiores comunidades usando arduino! ja usei picaxe e até gostei....mas nao disponibilizarem o bootloader :o
o Programing Editor que é o software usado para programar os picaxe é grátis mas os picaxe como o que vem no kit que é montado na Robo-party da SAR que se trata do picaxe 28X1 não é mais nem menos que um pic16f876a com o bootloader da picaxe e protegido.
Mas eu pretendo é usar um bootloader só mencionei o picaxe como exemplo e estou a tentar o Tiny bootloader, gostaria de saber se alguém já o testou, se usaram um Max232 ou se ligaram como faz o picaxe somente duas resistências no TX e se funciona bem porque eu aqui na bredboard estou a ter erros de comunicação, é difícil detectar o pic só detecta depois de várias tentativas fazendo resetes consecutivos.
jp_
-
O Tiny funciona 100%, e é muito robusto, com todos os PICs que lá estão indicados na página.
Já usei com as séries 16F e 18F, sem problemas.
Tem que se usar um conversor 232, para nao fritar o PIC.
Se há problemas de comunicação, provavelmente as coisas não estão bem ligadas, ou a porta série está a ter problemas com o windows. Conversor USB-RS232? pode complicar, consoante o conversor.
-
O Tiny funciona 100%, e é muito robusto, com todos os PICs que lá estão indicados na página.
Já usei com as séries 16F e 18F, sem problemas.
Tem que se usar um conversor 232, para nao fritar o PIC.
Se há problemas de comunicação, provavelmente as coisas não estão bem ligadas, ou a porta série está a ter problemas com o windows. Conversor USB-RS232? pode complicar, consoante o conversor.
Olá asena
Eu estou com o pic 16f876a e cristal de 4Mhz usei a com1 DB9 e um max232 para fazer a conversão dos 12V para 5V. Usei o ficheiro tinybld_16F876A_04MHz.HEX e até de vez em quando funciona.
Mas deixa ver se te entendi dizes para eu usar um conversor USB/RS232 e ligar o RX e TX directo é isso?
jp_
-
Acho estranho funcionar só de vez em quando.
Esse bootloader foi criado originalmente para esses PICs, e depois foram acrescentados outras familias.
Usei-o a primeira vez, quando foi lançado cá para fora, com o 877. Funcionou sempre 100%.
Desde aí uso esporadicamente, conforme o trabalho, noutras séries, incluindo a 18F.
Sempre sem problemas.
Vê lá se não é da latência da porta série que está a ser comandada pelo XP/Vista.
-
Acho estranho funcionar só de vez em quando.
Esse bootloader foi criado originalmente para esses PICs, e depois foram acrescentados outras familias.
Usei-o a primeira vez, quando foi lançado cá para fora, com o 877. Funcionou sempre 100%.
Desde aí uso esporadicamente, conforme o trabalho, noutras séries, incluindo a 18F.
Sempre sem problemas.
Vê lá se não é da latência da porta série que está a ser comandada pelo XP/Vista.
Boa tarde
Eu voltei a programar o pic 16f876a com o bootloader do tiny e voltei a experimentar, eu copiei alguns dos erros que obtenho, o de não comunicar tinha a ver com a velocidade e tenho que seleccionar primeiro a com1 e depois comunicar.
Mas estou a tentar fazer uma aplicação de teste muito simples como piscar um led e dá-me o seguinte erro:
Os erros:
Interface to TinyBootLoader, v1.9.8
contact: claudiu.chiculita@ugal.ro
http://www.etc.ugal.ro/cchiculita/software/picbootloader.htm (http://www.etc.ugal.ro/cchiculita/software/picbootloader.htm)
--------------------------------------------------------------------------------------------------
Could not connect to COM1 at 19200
ERROR!
Could not connect to COM1 at 19200
ERROR!
Could not connect to COM1 at 19200
ERROR!
Connected to \\.\COM1 at 9600
Searching for PIC ...Not found,
ERROR!
Connected to \\.\COM1 at 19200
Searching for PIC ...
Found:16F 876A/877A
Connected to \\.\COM1 at 19200
HEX: 34 days old, INHX32,16Fcode+cfg, total=232 bytes.
Searching for PIC ...
Found:16F 876A/877A
WARNING: GOTO not found in first 4 words!
If using a compiler, maybe you should write some directive to enable the use of bootloaders, or maybe you could fix it by adding an interrupt handler to your program.
WARNING: PCLATH not fully initialised before GOTO! ... could not repair !!!,
Maybe you sould use some directive in your compiler to enable the use of bootloaders
WRITE OK at 19:19, time:0.406 sec
Usei varios compiladores e nenhum gera o .hex correcto. Usei o PIC simulador IDE, o Mikrobasic, o Ladder e o flowcode nenhum deles funcionou.
Qual é o segredo para isto funcionar????
Obrigado
jp_
-
Programas em ASM ou C?
Se for ASM, tens que redireccionar o código com um GOTO, logo no endereço 0x0000, para outra posição de memória onde está o programa principal.
Se for C, tens que configurar o compilador para usar bootloader. O manual dos Compiladores explica iss muito bem, é lá dar uma olhada.
Uma pesquisa no Google, retorna muita muita informação sobre bootloaders para PIC, em especial o Tiny.
-
Em ASM só dei alguns passos acho muito trabalhoso. Em C tenho muito pouco treino, estou mesmo é com o BASIC.
Estava a tentar usa o PIC SIMULADOR IDE http://www.oshonsoft.com/picbasiccompiler.html (http://www.oshonsoft.com/picbasiccompiler.html)
Mas eu vou fazer o que indicaste ler melhor o manual.
Obrigado
jp_
-
Ora para concluir.
O tiny funciona bém sim senhor tal como mencionou o asena, eu é que não estava a adicionar na primeira linha do programa um " goto main: " e a primeira vez gravava bem mas da segunda já não entrava no bootloader.
Mas optei pelo picbasic pro, para já todos os testes que fiz estão a correr pelo melhor.
Quero agradecer ao lp_felix pela mp que me ajudou a direccionar.
Obrigado
jp_
-
Ainda bem, obrigado por nos manteres actualizados ;)
-
Olá JP
Em anexo vários .hex e bootloader para PICS, ok?
Ailton
-
Olá JP
Em anexo vários .hex e bootloader para PICS, ok?
Ailton
Olá Ailton
obrigado, esses ficheiros vem com o Mcloader certo?
jp_
-
Olá JP
É isso mesmo, todos os arquivos(br) ou ficheiros(pt) acompanham o McLoader.
Eu utilizo o McLoader com vários softwares e não tenho tido problemas. ok?
Ailton
-
olá pessoal.
Gostava de saber se alguém testou o Mcloader que Ailton colocou aqui e se funcionou?
Pelo seguinte como eu até já referi aqui atrás eu estava a fazer testes para usar o mcloader com o ldmicro e estava tudo a funcionar.
Mas reparei que a versão do mcloader que o Ailton colocou aqui era mais recente e toca a trocar.
Deu qualquer coisa errado porque deixou de programar...
o erro é este:
http://picasaweb.google.pt/lh/photo/i6dXjDblaGC3mhxu8ZAnWw?feat=directlink (http://picasaweb.google.pt/lh/photo/i6dXjDblaGC3mhxu8ZAnWw?feat=directlink)
Bém eu já fiz de tudo:
Voltei a prog. o bootloader; programei num pic novo; troquei o max232in; troquei o cabo
serie; etc, etc
mesmo voltando a desinstalar o Microcode studio plus da Mecanique e instalei de novo
usando a versão anterior do MCloader dá erro só varia a posição onde quer escrever.
Não sei mais o que fazer.
Alguma ideia?? :-[ :-[
obrigado
jp_
Novos Dados
Verifiquei o seguinte:
este é o ficheiro do bootloader em asm para o pic16f876A_4Mhz que eu programei com o
ICprog:
; Generated by WinDis84, (c) Nigel Goodwin 1998.
LIST P=16F84, F=INHX8M
include "P16FXX.inc"
ORG 0x0000
NOP
MOVLW 0x1F
MOVWF PCLATH
GOTO Label_0001
Label_0002
Label_0004
Label_0001
Label_0005
Label_0006
Label_000F
Label_0009
Label_0013
Label_0011
Label_000A
Label_000B
Label_0016
Label_0018
Label_001C
Label_001B
Label_000C
Label_000D
Label_000E
Label_0015
Label_001D
Label_0014
Label_001A
Label_0003
Label_0008
Label_0007
Label_0017
Label_0012
Label_0019
Label_0010
ORG 0x1F00
GOTO Label_0002
CLRF 0x10
CLRF 0x18
BSF STATUS , RP0
CLRF 0x18
BCF STATUS , RP0
CLRF 0x0C
CLRF PCLATH
NOP
NOP
NOP
NOP
GOTO Label_0002
BCF INTCON , GIE
MOVLW 0x0C
CALL Label_0003
MOVLW 0x30
MOVWF 0x10
CLRF 0x0E
CLRF 0x0F
BCF 0x0C , 00
BSF 0x10 , 00
CLRWDT
BTFSC 0x0C , 00
GOTO Label_0004
BTFSS 0x0C , 05
GOTO Label_0005
MOVF 0x1A , W
BCF 0x10 , 00
XORLW 0xF0
BTFSC STATUS , Z
GOTO Label_0006
GOTO Label_0004
MOVLW 0xA0
CALL Label_0007
CALL Label_0008
MOVWF 0x22
MOVLW 0xA0
CALL Label_0007
MOVF 0x22 , W
XORLW 0xA1
BTFSC STATUS , Z
GOTO Label_0009
MOVF 0x22 , W
XORLW 0xA2
BTFSC STATUS , Z
GOTO Label_000A
MOVF 0x22 , W
XORLW 0xA3
BTFSC STATUS , Z
GOTO Label_000B
MOVF 0x22 , W
XORLW 0xA4
BTFSC STATUS , Z
GOTO Label_000C
MOVF 0x22 , W
XORLW 0xFF
BTFSC STATUS , Z
GOTO Label_0004
MOVF 0x22 , W
XORLW 0xF1
BTFSC STATUS , Z
GOTO Label_000D
MOVF 0x22 , W
XORLW 0xF2
BTFSC STATUS , Z
GOTO Label_000E
GOTO Label_000F
CALL Label_0008
MOVWF 0x23
CALL Label_0010
MOVWF 0x29
CALL Label_0008
MOVWF 0x24
MOVF 0x24 , W
XORWF 0x29 , f
BTFSC STATUS , Z
GOTO Label_0011
MOVF 0x23 , W
BSF STATUS , RP1
MOVWF 0x0D
BCF STATUS , RP1
MOVF 0x24 , W
BSF STATUS , RP1
MOVWF 0x0C
BSF STATUS , RP0
BCF 0x0C , 07
BSF 0x0C , 02
CALL Label_0012
BTFSC 0x0C , 01
GOTO Label_0013
BCF 0x0C , 02
BCF STATUS , RP0
BCF STATUS , RP1
CALL Label_0010
CALL Label_0007
GOTO Label_000F
CALL Label_0008
MOVWF 0x23
CALL Label_0010
CALL Label_0007
GOTO Label_000F
CALL Label_0014
CALL Label_0015
MOVLW 0x08
MOVWF 0x21
MOVLW 0x2D
MOVWF FSR
CALL Label_0008
MOVWF INDF
INCF FSR , f
DECFSZ 0x21 , f
GOTO Label_0016
MOVLW 0x2D
MOVWF FSR
MOVLW 0x04
MOVWF 0x21
CALL Label_0017
BSF STATUS , RP1
MOVF INDF , W
MOVWF 0x0C
INCF FSR , f
MOVF INDF , W
MOVWF 0x0E
INCF FSR , f
BSF STATUS , RP0
BSF 0x0C , 07
BSF 0x0C , 02
CALL Label_0012
NOP
NOP
BCF 0x0C , 02
BCF STATUS , RP0
INCF 0x0D , f
BCF STATUS , RP1
DECFSZ 0x21 , f
GOTO Label_0018
BCF STATUS , RP1
MOVLW 0x04
MOVWF 0x21
CALL Label_0019
CALL Label_001A
INCFSZ 0x28 , f
GOTO Label_001B
INCFSZ 0x27 , f
DECFSZ 0x21 , f
GOTO Label_001C
GOTO Label_000F
CALL Label_0014
CALL Label_0015
CALL Label_0019
CALL Label_001A
GOTO Label_000F
MOVLW 0x14
CALL Label_0007
MOVLW 0x0F
CALL Label_0007
MOVLW 0x12
CALL Label_0007
GOTO Label_000F
CALL Label_0008
CALL Label_0003
GOTO Label_000F
MOVF 0x27 , W
BTFSS STATUS , Z
GOTO Label_001D
MOVLW 0xFC
ADDWF 0x28 , W
BTFSC STATUS , C
GOTO Label_001D
MOVF 0x28 , W
ADDLW 0x08
MOVWF 0x28
MOVLW 0x1F
MOVWF 0x27
RETURN
CALL Label_0008
MOVWF 0x28
CALL Label_0008
MOVWF 0x27
RETURN
MOVF 0x26 , W
CALL Label_0007
MOVF 0x25 , W
CALL Label_0007
RETURN
BSF STATUS , RP0
BCF STATUS , RP1
MOVWF 0x19
MOVLW 0xA6
MOVWF 0x18
BCF STATUS , RP0
BSF 0x18 , 07
BSF 0x18 , 04
RETURN
CLRWDT
BTFSS 0x0C , 05
GOTO Label_0008
MOVF 0x1A , W
RETURN
CLRWDT
BTFSS 0x0C , 04
GOTO Label_0007
MOVWF 0x19
RETURN
MOVF 0x27 , W
BSF STATUS , RP1
MOVWF 0x0F
BCF STATUS , RP1
MOVF 0x28 , W
BSF STATUS , RP1
MOVWF 0x0D
RETURN
MOVLW 0x55
MOVWF 0x0D
MOVLW 0xAA
MOVWF 0x0D
BSF 0x0C , 01
RETURN
CALL Label_0017
BSF STATUS , RP0
BSF 0x0C , 07
BSF 0x0C , 00
NOP
NOP
BCF STATUS , RP0
MOVF 0x0C , W
BCF STATUS , RP1
MOVWF 0x26
BSF STATUS , RP1
MOVF 0x0E , W
BCF STATUS , RP1
MOVWF 0x25
RETURN
MOVF 0x23 , W
BSF STATUS , RP1
MOVWF 0x0D
BSF STATUS , RP0
BCF 0x0C , 07
BSF 0x0C , 00
BCF STATUS , RP0
MOVF 0x0C , W
BCF STATUS , RP1
RETURN
ORG 0x2000
DATA 0x0F
DATA 0x0F
DATA 0x0F
DATA 0x0F
ORG 0x2007
DATA 0x12
ORG 0x2100
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
END
jp_
-
Desculpem eu estar a postar outra mensagem mas, não cabia o resto na anterior:
Mas continuando:
Depois de uma tentativa falhada de programar este com o Mcloader:
; Generated by WinDis84, (c) Nigel Goodwin 1998.
LIST P=16F84, F=INHX8M
include "P16FXX.inc"
ORG 0x0000
NOP
NOP
NOP
GOTO Label_0001
NOP
NOP
NOP
NOP
Label_0001 MOVLW 0x28
MOVWF FSR
MOVLW 0x58
MOVWF 0x20
Label_0002 CLRF INDF
INCF FSR , f
DECFSZ 0x20 , f
GOTO Label_0002
MOVLW 0x10
MOVWF 0x15
MOVLW 0x27
MOVWF 0x16
MOVLW 0x00
MOVWF 0x0E
MOVLW 0x00
MOVWF 0x0F
MOVLW 0x01
MOVWF 0x10
MOVLW 0x0B
MOVWF 0x17
BSF STATUS , RP0
MOVLW 0x86
MOVWF 0x1F
BCF STATUS , RP0
BSF STATUS , RP0
MOVLW 0xFF
MOVWF TRISA
BCF STATUS , RP0
BSF STATUS , RP0
MOVLW 0x7F
MOVWF TRISB
BCF STATUS , RP0
BSF STATUS , RP0
MOVLW 0xFF
MOVWF 0x07
BCF STATUS , RP0
Label_0003 BTFSS 0x0C , 02
GOTO Label_0003
BCF 0x0C , 02
CLRWDT
BSF 0x29 , 01
BTFSC 0x29 , 01
BSF 0x29 , 02
BTFSS 0x29 , 01
BCF 0x29 , 02
BTFSS PORTB , 07
GOTO Label_0004
BCF 0x29 , 02
Label_0004 BTFSC 0x29 , 03
GOTO Label_0005
MOVLW 0x31
MOVWF 0x2A
MOVLW 0x00
MOVWF 0x2B
Label_0005 BSF 0x29 , 03
BTFSC 0x29 , 02
GOTO Label_0006
MOVLW 0x00
SUBWF 0x2B , W
BTFSC STATUS , Z
GOTO Label_0007
MOVWF 0x20
COMF 0x20 , W
ANDWF 0x2B , W
XORWF 0x20 , f
BTFSC 0x20 , 07
GOTO Label_0008
GOTO Label_0009
Label_0007 MOVLW 0x31
SUBWF 0x2A , W
BTFSS STATUS , C
GOTO Label_0008
GOTO Label_0009
Label_0008 INCFSZ 0x2A , f
GOTO Label_000A
INCF 0x2B , f
Label_000A BSF 0x29 , 02
Label_0009 GOTO Label_000B
Label_0006 MOVLW 0x00
MOVWF 0x2A
MOVLW 0x00
MOVWF 0x2B
Label_000B BTFSS 0x29 , 02
GOTO Label_000C
MOVLW 0x00
SUBWF 0x2D , W
BTFSC STATUS , Z
GOTO Label_000D
MOVWF 0x20
COMF 0x20 , W
ANDWF 0x2D , W
XORWF 0x20 , f
BTFSC 0x20 , 07
GOTO Label_000E
GOTO Label_000F
Label_000D MOVLW 0x31
SUBWF 0x2C , W
BTFSS STATUS , C
GOTO Label_000E
GOTO Label_000F
Label_000E INCFSZ 0x2C , f
GOTO Label_0010
INCF 0x2D , f
Label_0010 BCF 0x29 , 02
Label_000F GOTO Label_0011
Label_000C MOVLW 0x00
MOVWF 0x2C
MOVLW 0x00
MOVWF 0x2D
Label_0011 BTFSC 0x29 , 02
BSF PORTB , 07
BTFSS 0x29 , 02
BCF PORTB , 07
CLRF PCLATH
GOTO Label_0003
ORG 0x2000
DATA 0x0F
DATA 0x0F
DATA 0x0F
DATA 0x0F
ORG 0x2007
DATA 0x12
ORG 0x2100
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
END
Voltei a ler o pic e
Mas detectei que foi alterado o bootloader e não devia.
Porque será que isto está a acontecer???
Alguma ideia??
desculpa a extensão e obrigado por teres lido até aqui...
-
Mas como vou levar raspanete e vou o melhore é postar o resto porque se não ninguém vai poder ajudar... :(
este foi o que eu li do pic depois da tentactiva de programar um pequeno codigo para fazer piscar o RB7
; Generated by WinDis84, (c) Nigel Goodwin 1998.
LIST P=16F84, F=INHX8M
include "P16FXX.inc"
ORG 0x0000
NOP
MOVLW 0x1F
MOVWF PCLATH
GOTO Label_0001
Label_0003
Label_0002
Label_0005
Label_0001
Label_0006
Label_0007
Label_0010
Label_000A
Label_0014
Label_0012
Label_000B
Label_000C
Label_0017
Label_0019
Label_001D
Label_001C
Label_000D
Label_000E
Label_000F
Label_0016
Label_001E
Label_0015
Label_001B
Label_0004
Label_0009
Label_0008
Label_0018
Label_0013
Label_001A
Label_0011
ORG 0x1F00
GOTO Label_0002
CLRF 0x10
CLRF 0x18
BSF STATUS , RP0
CLRF 0x18
BCF STATUS , RP0
CLRF 0x0C
CLRF PCLATH
GOTO Label_0003
ORG 0x1F0C
GOTO Label_0002
BCF INTCON , GIE
MOVLW 0x0C
CALL Label_0004
MOVLW 0x30
MOVWF 0x10
CLRF 0x0E
CLRF 0x0F
BCF 0x0C , 00
BSF 0x10 , 00
CLRWDT
BTFSC 0x0C , 00
GOTO Label_0005
BTFSS 0x0C , 05
GOTO Label_0006
MOVF 0x1A , W
BCF 0x10 , 00
XORLW 0xF0
BTFSC STATUS , Z
GOTO Label_0007
GOTO Label_0005
MOVLW 0xA0
CALL Label_0008
CALL Label_0009
MOVWF 0x22
MOVLW 0xA0
CALL Label_0008
MOVF 0x22 , W
XORLW 0xA1
BTFSC STATUS , Z
GOTO Label_000A
MOVF 0x22 , W
XORLW 0xA2
BTFSC STATUS , Z
GOTO Label_000B
MOVF 0x22 , W
XORLW 0xA3
BTFSC STATUS , Z
GOTO Label_000C
MOVF 0x22 , W
XORLW 0xA4
BTFSC STATUS , Z
GOTO Label_000D
MOVF 0x22 , W
XORLW 0xFF
BTFSC STATUS , Z
GOTO Label_0005
MOVF 0x22 , W
XORLW 0xF1
BTFSC STATUS , Z
GOTO Label_000E
MOVF 0x22 , W
XORLW 0xF2
BTFSC STATUS , Z
GOTO Label_000F
GOTO Label_0010
CALL Label_0009
MOVWF 0x23
CALL Label_0011
MOVWF 0x29
CALL Label_0009
MOVWF 0x24
MOVF 0x24 , W
XORWF 0x29 , f
BTFSC STATUS , Z
GOTO Label_0012
MOVF 0x23 , W
BSF STATUS , RP1
MOVWF 0x0D
BCF STATUS , RP1
MOVF 0x24 , W
BSF STATUS , RP1
MOVWF 0x0C
BSF STATUS , RP0
BCF 0x0C , 07
BSF 0x0C , 02
CALL Label_0013
BTFSC 0x0C , 01
GOTO Label_0014
BCF 0x0C , 02
BCF STATUS , RP0
BCF STATUS , RP1
CALL Label_0011
CALL Label_0008
GOTO Label_0010
CALL Label_0009
MOVWF 0x23
CALL Label_0011
CALL Label_0008
GOTO Label_0010
CALL Label_0015
CALL Label_0016
MOVLW 0x08
MOVWF 0x21
MOVLW 0x2D
MOVWF FSR
CALL Label_0009
MOVWF INDF
INCF FSR , f
DECFSZ 0x21 , f
GOTO Label_0017
MOVLW 0x2D
MOVWF FSR
MOVLW 0x04
MOVWF 0x21
CALL Label_0018
BSF STATUS , RP1
MOVF INDF , W
MOVWF 0x0C
INCF FSR , f
MOVF INDF , W
MOVWF 0x0E
INCF FSR , f
BSF STATUS , RP0
BSF 0x0C , 07
BSF 0x0C , 02
CALL Label_0013
NOP
NOP
BCF 0x0C , 02
BCF STATUS , RP0
INCF 0x0D , f
BCF STATUS , RP1
DECFSZ 0x21 , f
GOTO Label_0019
BCF STATUS , RP1
MOVLW 0x04
MOVWF 0x21
CALL Label_001A
CALL Label_001B
INCFSZ 0x28 , f
GOTO Label_001C
INCFSZ 0x27 , f
DECFSZ 0x21 , f
GOTO Label_001D
GOTO Label_0010
CALL Label_0015
CALL Label_0016
CALL Label_001A
CALL Label_001B
GOTO Label_0010
MOVLW 0x14
CALL Label_0008
MOVLW 0x0F
CALL Label_0008
MOVLW 0x12
CALL Label_0008
GOTO Label_0010
CALL Label_0009
CALL Label_0004
GOTO Label_0010
MOVF 0x27 , W
BTFSS STATUS , Z
GOTO Label_001E
MOVLW 0xFC
ADDWF 0x28 , W
BTFSC STATUS , C
GOTO Label_001E
MOVF 0x28 , W
ADDLW 0x08
MOVWF 0x28
MOVLW 0x1F
MOVWF 0x27
RETURN
CALL Label_0009
MOVWF 0x28
CALL Label_0009
MOVWF 0x27
RETURN
MOVF 0x26 , W
CALL Label_0008
MOVF 0x25 , W
CALL Label_0008
RETURN
BSF STATUS , RP0
BCF STATUS , RP1
MOVWF 0x19
MOVLW 0xA6
MOVWF 0x18
BCF STATUS , RP0
BSF 0x18 , 07
BSF 0x18 , 04
RETURN
CLRWDT
BTFSS 0x0C , 05
GOTO Label_0009
MOVF 0x1A , W
RETURN
CLRWDT
BTFSS 0x0C , 04
GOTO Label_0008
MOVWF 0x19
RETURN
MOVF 0x27 , W
BSF STATUS , RP1
MOVWF 0x0F
BCF STATUS , RP1
MOVF 0x28 , W
BSF STATUS , RP1
MOVWF 0x0D
RETURN
MOVLW 0x55
MOVWF 0x0D
MOVLW 0xAA
MOVWF 0x0D
BSF 0x0C , 01
RETURN
CALL Label_0018
BSF STATUS , RP0
BSF 0x0C , 07
BSF 0x0C , 00
NOP
NOP
BCF STATUS , RP0
MOVF 0x0C , W
BCF STATUS , RP1
MOVWF 0x26
BSF STATUS , RP1
MOVF 0x0E , W
BCF STATUS , RP1
MOVWF 0x25
RETURN
MOVF 0x23 , W
BSF STATUS , RP1
MOVWF 0x0D
BSF STATUS , RP0
BCF 0x0C , 07
BSF 0x0C , 00
BCF STATUS , RP0
MOVF 0x0C , W
BCF STATUS , RP1
RETURN
ORG 0x2000
DATA 0x0F
DATA 0x0F
DATA 0x0F
DATA 0x0F
ORG 0x2007
DATA 0x12
ORG 0x2100
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
DATA 0xFF
END
Porque será que isto está a acontecer???
Alguma ideia??
desculpa a extensão e obrigado por teres lido até aqui...
jp_
-
Olá JP
Olha coisa semelhante, mas não igual, já me aconteceu. Depois de muitos erros e tentativas de acerto, descobri que o problema residia no software de gravação do ICPROG, isto é, pelos menos o que eu conclui. Qdo utilizei o o PicProg Development Programmer 1.0.1.5(utilizando o mesmo JDM), não tive nenhum problema. Vi no seu código uma dado estranho, assim, seu código aparece como LIST P=16F84 é nomal esse retorno ou é bug do dissambler
Ailton
-
Com esses programas que vocês estão a usar, não se dá para fazer isso, mas no MPLAB, quando se usa bootloader, dá pra dizer ao assemblador ou compilador, para reservar espaços de memória e não lhes tocar.
O que está a acontecer com esses programas é que, quando foram compilados, não lhes foi dito que a área de memória do bootloader é reservada só para este.
-
Olá Sena/JP
Sena, não entendi a tua colocação!!! Assim, onde vc viu, no programa do JP esse detalhe?
Veja, eu uso esse tipo de bootloader e não tenho problemas. O Mcloader é utilizado com o PIC BASIC da Melabs e com o PROTON+ e funciona muito bem. O mesmo bootloader eu uso com arquivos .hex gerados pelos softwares da Mikroelektronika para PIC e o C da CCS e sem problemas...
Realmente não sei o que ocorreu no PIC do JP.
JP se vc ainda não conseguiu solucionar esse problema nos deixe avisado. Posso até te enviar um PIC16F876 gravado com o bootloader e funcionando. Me informe se na hora de vc selecionar o bootloader para o 16F876A, por acaso vc não trocou o clock ou pegou 16F876 ou alguma coisa parecida...
Aguardando tua resposta.
Ailton
-
Sena, não entendi a tua colocação!!! Assim, onde vc viu, no programa do JP esse detalhe?
Ailton
Já me deparei muitas vezes com esse problema: quando o compilador não sabe que existe um bootloader já na memória do PIC, não proibe esse espaço de memória de ser usado pelo programa, e aí, na gravação, vai gravar por cima, causando destrução do bootloader e do programa.
-
Em primeiro lugar Obrigado pela disponibilidade.
JP se vc ainda não conseguiu solucionar esse problema nos deixe avisado. Posso até te enviar um PIC16F876 gravado com o bootloader e funcionando. Me informe se na hora de vc selecionar o bootloader para o 16F876A, por acaso vc não trocou o clock ou pegou 16F876 ou alguma coisa parecida...
Sobre a possibilidade de ter trocado o 16f876A_4Mhz pelo 16f876_Mhz já reflecti e não, até para ter a certeza programei em três pic o 16f876a_4Mhz.
Mas sim desconfio também do Icprog mas até agora tenho usado para programar por ISCP com este programador
http://www.olimex.com/dev/pic-pg1.html (http://www.olimex.com/dev/pic-pg1.html)
e não tive problemas (é claro que até agora não tinha testado com bootloader).
bom mas detectei duas novos erros que cometi no circuito:
eu estou a usar um RS232in e resolvi usar um prog. de teste da porta serie usando o
http://www.etc.ugal.ro/cchiculita/software/picbootloader.htm (http://www.etc.ugal.ro/cchiculita/software/picbootloader.htm)
e programei num dos pics o programa de teste do circuito de comunicação, que envia um Big string para o terminal e como já tinha foto isto antes reparei que algo não estava bem, a comunicação nem sempre se efectuava na totalidade.
Resolvi verificar de novo o circuito rs232 e detectei que os 12 e -12 da saída do tx na verdade eram 10 -10 no rx os valores estavam
bém.
O outro erro que detectei foi um dos pic que eu estava a usar é 16LF876A.
Ainda não fui ler o Datasheet e não sei qual a diferença entre o 16LF876A e o 16f876A, mas tenho a ideia
que tem a ver com a tensão de funcionamento se for esse o caso pode ter ido à vida...
Relativamente ao Problema do Valor da tensão do rs232 vou voltar a montar o circuito com material novo.
Volto mais logo com novidades.
Até já,
jp_
-
Quanto à diferença entre os PICxxFxxx e os PICxxLFxxx penso que é os LF não terem chumbo (Lead-Free). Supostamente o funcionamento e requisitos deveriam ser exactamente iguais. contudo li nalguns foruns que em alguns casos podem existir pequenas diferenças..
-
que é os LF não terem chumbo (Lead-Free)
Essa de não terem chumbo é boa, mas continuo na de trabalhar a partir dos 3V até aos 5V e
deve de haver qualquer coisa sobre a tensão de programação. Mas vou ler o Datasheet.
jp_
-
Olá Sena
Já me deparei muitas vezes com esse problema: quando o compilador não sabe que existe um bootloader já na memória do PIC, não proibe esse espaço de memória de ser usado pelo programa, e aí, na gravação, vai gravar por cima, causando destrução do bootloader e do programa.
Me corrija se eu estiver errado. Qdo se usa um bootloader, utiliza-se o mesmo para escrever diretamente na memória de programa do PIC sem a necessidade de se usar um programador ICSP. Assim , quem gerencia a escrita dos dados é o próprio bootloader através dos dados enviados via serial. O bootloader é apenas um programa residente na memória do PIC que foi gravado por um programador do tipo ICSP. Se existe um bootloader ele evita que um programa enviado sobreescreva na sua área.
Outra coisa, a maioria dos programadores, antes de gravar um novo arquivo.hex, apaga inicialmente o PIC e em seguida inicia a nova programação.
Por isso, é que eu não entendi a sua colocação.
Ailton
-
Quanto à diferença entre os PICxxFxxx e os PICxxLFxxx penso que é os LF não terem chumbo (Lead-Free). Supostamente o funcionamento e requisitos deveriam ser exactamente iguais. contudo li nalguns foruns que em alguns casos podem existir pequenas diferenças..
Caros amigos, a diferença entre F e LF, está apenas na tensão de alimentação:
F :: 2.0-5.5V
LF :: 2.0-3.5V
Low Power Flash
-
Olá Sena
Se existe um bootloader ele evita que um programa enviado sobreescreva na sua área.
Ailton
Correcto!
Mas... o bootloader não corrige o programa escrito por nós.
Ex.:
se eu tenho um GOTO, ou instrução em C com o mesmo trabalho, que me salta para uma posição de memória que está ocupada pelo Bootloader, então o programa entra em crash.
No assemblador/compilador eu devo indicar que zona da memória é proibida (que está a ser ocupada pelo Bootloader). Assim, o programa nunca salta/corre na área destinada ao Bootloader.
-
Caros amigos, a diferença entre F e LF, está apenas na tensão de alimentação:
F :: 2.0-5.5V
LF :: 2.0-3.5V
Low Power Flash
Isto quer dizer que muito provavelmente danifiquei o pic16LF876A ao alimentar-lo com 5V?
Já agora outra questão para programar o PIC16LFXXX por ICSP o processo é o mesmo que
no PIC16FXX?
No ICPROG com o pic16f876 na parte de configuração dos fuses o que quer dizer a opção
LVP?
jp_
-
Já agora outra questão para programar o PIC16LFXXX por ICSP o processo é o mesmo que
no PIC16FXX?
No ICPROG com o pic16f876 na parte de configuração dos fuses o que quer dizer a opção
LVP?
Esta questão ficou sem resposta, mas nesta altura também não faz falta os pic16lfXXX que
tenho já estão descontinuados na produção por essa razão não tem mais interesse.
O que tem interesse é saber qual o programa que se utiliza para programar o pic16f88x, qual
é o programa e qual o programador, sem ser os comerciais claro???
Onde se arranja o bootloader para o pic16f886 para programar com o mcloader???
Eu sei que o pessoal que trabalha com os pics tem a resposta para estas perguntas...
Falta é saber se mas vão dar...
Obrigado.
jp_
-
Eu programava sempre os PIC com o ICPROG, o programador era um bastante simples, eram apenas 3 resistências. O programador era tão simples que o tinha na própria breadboard! Vinham os fiozecos da COM do PC, ligava-os às 3 resistências e era só encaixar o PIC -> Programar -> Já ta!
O esquema do programador era este: Programador Simples de PIC (só 3 resistências!) (http://lusorobotica.com/index.php/topic,436.0.html)
Com este programador consegui programar sempre qualquer PIC, EEPROM da Microchip!
-
JP_,
esses comentários finai, não abonam muito a favor de uma resposta.
Porventura, na altura, não havia niguém disponivel para responder às questões.
Sobre as questões antigas, a diferença entre LF e F, é apenas de tensão de alimentação. Esta resposta está estampada no datasheet. E sim, o ICSP não tem diferenças de programação.
Para programar os 16F88x, qualquer programador que o suporte, programa. Não sei se o ICPROG já está capaz disso.
Se usares um programador da MC, então não vais ter problemas.
Vais ao site do ICPROG e confirmas. Como não queres comprar programador, depois tens que fazer um por porta paralela ou USB.
Porta paralela são baratos. A questão está em se tens computador que tem porta paralela.
Se quiseres um esquema de programador por porta paralela, tens AQUI (http://www.senaeng.com/files/Programador_PIC___asena.zip).
Estás a fazer confusão. O MCLoader é um bootloader. Queres programar um bootloader, com outro? vai estoirar.
O melhor bootloader que conheço é o TINY (http://www.etc.ugal.ro/cchiculita/software/picbootloader.htm). É bem concebido e funciona bem. Experimenta-o.
O F886 é uma boa aposta para começar a aprender PICs.
Se quiseres um manual de PICmicro, que por acaso é baseado nesse PIC, tens este Manual de Microcontroladores PICmicro (http://www.electronicapt.com/forum/pic-curso-de-microcontroladores-picmicro-t2448.0.html).
Tens lá também exemplos em Assembler para esse PIC.
bom trabalho !!!
-
Citação de: msaleiro em Junho 28, 2009, 13:11
Quanto à diferença entre os PICxxFxxx e os PICxxLFxxx penso que é os LF não terem chumbo (Lead-Free). Supostamente o funcionamento e requisitos deveriam ser exactamente iguais. contudo li nalguns foruns que em alguns casos podem existir pequenas diferenças..
Caros amigos, a diferença entre F e LF, está apenas na tensão de alimentação:
F :: 2.0-5.5V
LF :: 2.0-3.5V
Obrigado pelo esclarecimento :) Mais uma vez verifiquei que nem tudo o que se vê na net está certo :P Está-se sempre a aprender :)
-
Caros amigos, a diferença entre F e LF, está apenas na tensão de alimentação:
F :: 2.0-5.5V
LF :: 2.0-3.5V
Caros amigos, corrigo-me a mim próprio.
Valores correctos:
F :: 4.0-5.5V
LF :: 2.0-5.5V
Agora todos os PICs recentes F têem a tensão de alimentação de 2.0 a 5.5V.
Ver datasheet para valores mínimos de tensão, consoante a frequência de trabalho do oscilador.
-
olá asena,
esses comentários finai, não abonam muito a favor de uma resposta.
Porventura, na altura, não havia niguém disponivel para responder às questões.
Tens toda a razão peço desculpa a todos, mas foi uma forma de agitar e ainda bem que não
levaram a mal.
Mas como já consegui chamar a vossa atenção, vamos ao que interessa.
eu fiz um mini PLC com o pic16f628A e outro com o pic16f876A
Fotos:
http://picasaweb.google.pt/joaopaulo.pereira844/PLC?feat=directlink (http://picasaweb.google.pt/joaopaulo.pereira844/PLC?feat=directlink)
O compilador estou a usar o ladder pic que já foi falado aqui no forum:
http://lusorobotica.com/index.php/topic,996.0.html (http://lusorobotica.com/index.php/topic,996.0.html)
para programar uso o PG1 da olimex (feito):
http://www.olimex.com/dev/pic-pg1.html (http://www.olimex.com/dev/pic-pg1.html)
juntamente com o icprog:
recentemente estava a tentar usar um bootloader para programar os meus micro PLC e então testei o tiny e o MCloadder .
está tudo bem e a funcionar, mas como acabaram-se as samples fui para comprar o PIC16f876A e descobri que este vai deixar de ser fabricado e que o substituto será o pic16f886.
Com isto o meu trabalho foi por água a baixo não vale a pena desenvolver o meu PLC com um Micro obsoleto, (eles ainda estão à venda só que muito mais caros do que o seu substituto.
Eis o meu problema o MCloader não tem bootloader para o 16f886 o icprog ainda não
suporta o 16f886 ou seja cortaram-me as pernas ao meu projecto.
eu Tenho três micro PLC a funcionar, um com 16f876a e dois com o 16f628a programo-os
com o icprog e o compilador é este:
http://www.cq.cx/ladder.pl (http://www.cq.cx/ladder.pl)
Mas para o próximo que estava a fazer com bootloader, a ter que usar o 16f886 fiquei sem
ferramentas.
Obrigado pela atenção,
jp_
-
eu fiz um mini PLC com o pic16f628A e outro com o pic16f876A
Já tinha visto o teu trabalho, está muito jeitoso!
Eu já fiz algo parecido, mas com encaixes directos em caixas DIN-SLIM (http://www.qsl.net/ct2gpw/docs/caixa_calha_DIN___l.jpg).
Tenho a plataforma standard, e mudo o programa conforme o serviço.
Temos que ter soluções destas, à medida de cada cliente.
como acabaram-se as samples fui para comprar o PIC16f876A e descobri que este vai deixar de ser fabricado e que o substituto será o pic16f886.
Com isto o meu trabalho foi por água a baixo não vale a pena desenvolver o meu PLC com um Micro obsoleto, (eles ainda estão à venda só que muito mais caros do que o seu substituto.
As diferenças são muito poucas, mas no entanto há-as.
É o problema de não programar na linguagem mãe.
Quando estamos agarrados a um compilador que só trabalha com os micros XPTO, então isso pode tornar-se um muito grande problema no futuro.
Como se constata, tal veio a verificar-se.
Mas atenção, estamos conscientes que o autor do LDmicro vai recompilar o programa para funcionar com os novos PICs. É questão de aguardar pacientemente.
Nos entretantos, que tal aprender Assembler ou C ? :)
Eis o meu problema o MCloader não tem bootloader para o 16f886 o icprog ainda não
suporta o 16f886 ou seja cortaram-me as pernas ao meu projecto.
O MCloader é a pagar, por isso não tarda eles também já o trabalham.
O ICPROG é o costume... espera-se sentado, e com sorte o autor refaz o programa para os novos PICs.
O conselho que dou é, se o Assembler for uma coisa medonha, ir aprender a linguagem Basic ou C.
Talvez mesmo experimentar o PICBASIC. É simples e intuitivo.
Claro que não é Ladder !!!
Uma coisa que o LDmicro faz, é exportar o programa para ANSI C, o que é algo muito bom.
Quem sabe C, ajuda na resolução de problemas. Pode-se agarrar nesse código, fazer alterações e compilar posteriormente.
Se houver uma empresa que queira agarrar no exemplo do LDmicro, e fazer algo comercial de boa qualidade, então eu tenho a certeza que vai ter muita clientela.
Tenho imensos clientes que batiam palmas, se eu lhes dissesse que lhes podia dar o sistema em Ladder.
No entanto, continuo a fazer tudo em ASM, e por vezes em C.
Conforme o serviço.
-
Mas atenção, estamos conscientes que o autor do LDmicro vai recompilar o programa para funcionar com os novos PICs. É questão de aguardar pacientemente
Já está disponível para testes aqui:
http://www.cq.cx/ladder-forum.pl?action=viewthread&parent=20 (http://www.cq.cx/ladder-forum.pl?action=viewthread&parent=20)
Nos entretantos, que tal aprender Assembler ou C ? Sorridente
Neste momento sou um dos teus alunos aqui:
http://www.electronicapt.com/forum/pic-curso-de-microcontroladores-picmicro-t2448.0.html (http://www.electronicapt.com/forum/pic-curso-de-microcontroladores-picmicro-t2448.0.html)
Em basic já fiz umas brincadeiras para robótica mas nada de sério.
uso Micro Code Studio Plus que já suporta o 16f886 e16f887 mas agora não tenho como os programar...
jp_
-
Já experimentei a nova versão. Funciona.
Testei com o Tiny, continua a recusar gravar por este bootloader. Dá sempre erro de sobreposição de memória.
Acho que vou lá ao forum do LDmicro, perguntar se há solução para isto.
Já uso o Tiny faz tantos anos, sempre sem problemas, não vai ser agora!
Esta nova versão do LDmicro já me parece que está pronta a ser dada em aula.
Para o próximo ano já vou dar aulas e formação com isto.
Estou ansioso para ver a reacção da miudagem. Sempre vai ser melhor que injecção de ASM ;D
Mas continuo a afirmar: este LDmicro em que ser usado com cuidado. Aplicações profissionais não podem depender de um sistema que não está profundamente testado e comprovado.
Até agora está no bom caminho.
-
Testei com o Tiny, continua a recusar gravar por este bootloader. Dá sempre erro de sobreposição de memória.
Acho que vou lá ao forum do LDmicro, perguntar se há solução para isto.
pois dá-te o mesmo erro que me dava a mim, escreve onde não deve...
mas com que pic usaste? Com o 16f886 ou 16f88X qual o programador para o bootloader?
É isso que eu preciso para o meu projecto...
tenho que migrar para o 16f88X mas o software que usava o icprog não dá para programar o bootloader.
dá aí uma ajuda...
Mas continuo a afirmar: este LDmicro em que ser usado com cuidado. Aplicações profissionais não podem depender de um sistema que não está profundamente testado e comprovado.
Até agora está no bom caminho.
Como já referi eu tenho dois micro PLC a trabalhar em duas máquinas um deles á mais de um ano e nunca tive problemas, qualquer sistema feito em ASM também não é testado até à exaustão, ou é? eu na minha humilde opinião penso que devemos sim testar o hardware esse sim pode vir a dar problemas com o tempo o LDmicro como dizes está muito bom.
Para trabalhares com o bootloader eu tenho uma versão do LDmicro que o Jonathan me enviou vou anexar mas acho que é o mesmo
que já foi postado aqui no forum pelo ailtonfacanha qualquer das formas podem testar.
vou colar o mail que ele me enviou:
de Jonathan Westhues <jwesthues@cq.cx>
para João Paulo Pereira <joaopaulo.pereira844@gmail.com>
data 5 de junho de 2009 07:59
assunto Re: ladder logic for pic with tyni bootloader
ocultar detalhes 5 jun
Responder
Acompanhar mensagem
See the attachment. Please unzip it, and rename the output file to
ldmicro.exe. (A lot of firewalls block zip files that contain a .exe.)
Please test this version as much as you can. There shouldn't be any
problems, but I've upgraded to a new MSVC++ compiler version, so there could
be some subtle issue.
In any case, please let me know if it works for you, and which devices you
have tested it with. If all seems good, then I'll put that change in the
next release.
Thanks,
Jonathan
A versão que ele disponibilizou no forum não está preparada para programar com bootloader, dá o erro que eu aqui falei e que me tentaste ajudar já esta versão que anexei funciona muito bem com o bootloader eu só consegui por a funcionar com o MCloader mas com o tiny não testei. problema é, falta o Jonathan juntar as duas de forma a funcionar com o 16f886 e com bootloader.
mas dá-me aí um empurrão para o meu projecto...
preciso de saber com que software programo o bootloader no novo pic16f88x e qual o bootloader quero testar o meu novo micro PLC
com bootloader
Nota: a versão em anexo não funciona em win98 mas em xp funciona que eu testei
jp_
-
mas com que pic usaste? Com o 16f886 ou 16f88X qual o programador para o bootloader?
É isso que eu preciso para o meu projecto...
tenho que migrar para o 16f88X mas o software que usava o icprog não dá para programar o bootloader.
Experimentei com o que tinha à mão perdido na mesa, para não ter que tirar das calhas de plástico ;)
Foi um 16F886, uso-os muito.
Tenho ferramentas da MC. Estou a usar também um ICD2 que me programa tudo o que é PIC.
Esta ferramenta para quem não trabalha com PIC é dispendiosa.
No teu caso, eu optaria pelo PICKIT2, é barato e simples de usar. Liga-se directamente ao MPLAB.
Como já referi eu tenho dois micro PLC a trabalhar em duas máquinas um deles á mais de um ano e nunca tive problemas, qualquer sistema feito em ASM também não é testado até à exaustão, ou é? eu na minha humilde opinião penso que devemos sim testar o hardware esse sim pode vir a dar problemas com o tempo o LDmicro como dizes está muito bom.
Vamos testar. Só vendo a coisa a pegar.
Tenho uma pessoa disponivel, que trabalha em automação industrial, que quer já pôr isto em vários clientes. É o salto que procurava, para pôr os PICs na industria. Assim, qualquer pessoa da manutenção eléctrica pode mexer no programa e gravar na máquina.
Eu faço-lhes o hardware bom e mais barato, e eles fazem os programas em Ladder.
Na prática não sabem que estão a programar um PIC, porque a caixa vai estar fechada.
O Bootloader é que vai comandar as operações.
Para trabalhares com o bootloader eu tenho uma versão do LDmicro que o Jonathan me enviou vou anexar mas acho que é o mesmo
que já foi postado aqui no forum pelo ailtonfacanha qualquer das formas podem testar.
A versão que ele disponibilizou no forum não está preparada para programar com bootloader, dá o erro que eu aqui falei e que me tentaste ajudar já esta versão que anexei funciona muito bem com o bootloader eu só consegui por a funcionar com o MCloader mas com o tiny não testei. problema é, falta o Jonathan juntar as duas de forma a funcionar com o 16f886 e com bootloader.
Experimentei esta que puseste aqui, mas não é a nova que dá para os PICs novos.
Vou lá ao forum perguntar pelo Tiny. Ele, melhor que ninguém, deve saber.
preciso de saber com que software programo o bootloader no novo pic16f88x e qual o bootloader quero testar o meu novo micro PLC com bootloader
Esses programas antigos que funcionavam bem sempre nas portas paralelas e série, estão a ficar para trás.
A melhor opção é um programador USB, e o PICKIT2 é a mais conómica e com menos chatice.
Para bootloader, há muitos. Eu uso o Tiny há muitos anos, desde que apareceu, e sempre com sucesso.
Já o implementei mesmo em produtos, para fazer o update do firmware pelo cliente, e porta-se muito bem.
É esperar que o LDmicro suporte o Tiny.
-
Experimentei esta que puseste aqui, mas não é a nova que dá para os PICs novos.
Vou lá ao forum perguntar pelo Tiny. Ele, melhor que ninguém, deve saber.
problema é, falta o Jonathan juntar as duas de forma a funcionar com o 16f886 e com bootloader.
Queria eu dizer que o que adicionei funciona com, por exemplo 16f876a (com o tiny não testei) testei com o MCloader e está a funcionar a simplesmente tenho que mudar para o 16f886 pelas razoes que já mencionei antes.
A versão que está no forum funciona com os pics novos 16f886 mas não com bootloader falta isso, ele juntar as duas versões do software de forma a dar para bootloader e pic16f886
o PICKIT2 que falas é este?
Part Number: DV164120 - PICkit 2 Starter Kit
http://www.microchipdirect.com/productsearch.aspx?Keywords=DV164120 (http://www.microchipdirect.com/productsearch.aspx?Keywords=DV164120)
jp_
-
http://www.microchipdirect.com/productsearch.aspx?Keywords=DV164120 (http://www.microchipdirect.com/productsearch.aspx?Keywords=DV164120)
Sim, é esse.
Posso a arranjar-te um socket ZIF, para poderes gravar os PICs até 40pinos, sem te preocupares com partires os pinos.
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fwww.qsl.net%2Fct2gpw%2Fdocs%2FZIF_3M_40pinos___5cm.jpg&hash=3d99b7129e6f83a6111e58bbe4d73aa2ecadb821)
Entretanto vamos vendo as novidades lá do LDmicro, cheira-me que ele deve andar a preparar aquilo para o Tiny.
-
Posso a arranjar-te um socket ZIF, para poderes gravar os PICs até 40pinos, sem te preocupares com partires os pinos.
Quanto me custa o socket ZIF?
é um socket normal sem nenhum componente extra?
ou já traz adaptação para ligar ao programador?
realmente no site da microchip mostra uma placa extra que vem com o kit mas não dá para os de 28 pinos, mas o programador liga por ICSP não é?
traz também um pic só é pena não ser o 16f886... :( :(
Sempre vou ter que os comprar :( :(
O PICkit 2 Starter Kit aconselhas a pedir directamente à microchip ou existe à venda cá em
Portugal?
Qual deste devo escolher?
http://www.microchipdirect.com/ProductDetails.aspx?Catalog=BuyMicrochip&Category=Starter%20Kits&PrimaryDevFamily=PIC16F886&ProductCPN=DV164120&mid=10&IsSuggested=true&Expand=true (http://www.microchipdirect.com/ProductDetails.aspx?Catalog=BuyMicrochip&Category=Starter%20Kits&PrimaryDevFamily=PIC16F886&ProductCPN=DV164120&mid=10&IsSuggested=true&Expand=true)
este:
Part Number: DV164120 - PICkit 2 Starter Kit
ou este:
Part Number: DV164121 - PICkit 2 Debug Express
jp_
-
O socket ZIF (http://www.qsl.net/ct2gpw/docs/ZIF_3M_40pinos___l.jpg) é um socket sózinho.
Podes encaixá-lo numa protoboard, e programar sempre que necessitares.
Puxas fios desde o PICKIT2, e fazes a montagem numa protoboard fixa, em que sempre queres programar PICs, usa-la já montada.
Simplificando: montas o ZIF numa protoboard, arranjas uma barra de pinos com o mesmo tamanho do PK2, e quando queres programar, só tens que encaixar o PC2 na protoboard. Simples e rápido.
Fica muito mais barato que comprar esta placa (http://www.microchipdirect.com/productsearch.aspx?Keywords=AC162049) que eu também tenho.
O Socket fica em 8.50 EUR + portes correio verde.
Tenho cá um 16F887, se levares o socket, eu ofereço o PIC.
O PICKIT2 aconselho a pedir directamente à MC.
E aproveitas mandas vir mais PICs, pois poupas batante nos portes.
-
Order Summary
Device Total (EUR): 42.07
Shipping: (EUR):
15.04
Handling: (EUR): 5.00
UK VAT: (EUR): 9.32
Total: (EUR): 71.43
Cópia da simulação para o kit mais 3 pic16f886
Pago tanto de impostos e transportes do que do produto.
Não tens que pedir material dividia-mos os portes.. :D :D
jp_
-
jp_ eu precisava de mandar vir um PicKit e umas PICS tambem :)
Vou confirmar se posso e mandas vir junto para mim e se mais alguem quiser, melhor ;)
Queres fazer isso?
-
jp_ eu precisava de mandar vir um PicKit e umas PICS tambem :)
Vou confirmar se posso e mandas vir junto para mim e se mais alguem quiser, melhor ;)
Queres fazer isso?
A ideia de dividir as despesas de portes agrada-me.
será que há mais alguém interessado?
Fica muito mais barato que comprar esta placa que eu também tenho.
O Socket fica em 8.50 EUR + portes correio verde.
Tenho cá um 16F887, se levares o socket, eu ofereço o PIC.
asena, sem querer abusar esse 16f877 pode vir com o bootloader? ;D ;D
Não queres entrar nesta eminente compra colectiva?
jp_
-
Fica muito mais barato que comprar esta placa que eu também tenho.
O Socket fica em 8.50 EUR + portes correio verde.
Tenho cá um 16F887, se levares o socket, eu ofereço o PIC.
asena, sem querer abusar esse 16f877 pode vir com o bootloader? ;D ;D
Não queres entrar nesta eminente compra colectiva?
Pode claro, mas qual bootloader, o Tiny?
É que o MCloader não trabalha com os 16F887, só os antigos 877.
Em relação à compra, talvez. Depende dos timings.
Ainda há pouco pedi material de lá, e para já ainda não preciso de nada.
-
Antes de mais deixa-me corrigir eu escrevi 16f877 mas queria ter escrito 16f887
Pode claro, mas qual bootloader, o Tiny?
É que o MCloader não trabalha com os 16F887, só os antigos 877.
o Mcloader não, mas este software é parte do MicroCode Studio Plus e como mostra na
imagem
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fi30.tinypic.com%2Fb3la4p.jpg&hash=8dfea685812ef662a01c94f78e8789325ce52c12)
este permite seleccionar quer o 16f886 como o 16f887, portanto se vier com o tiny bootloader
devo conseguir programar qualquer coisa.
Mas por acaso não dá para em vez do 16f887 mandares o 16f886, eu sei que fico a perder mas é que fiz uma PCI com o max232 para encaixar na bredboard para o 16f876a e é pino compativel por essa razão perferia o 16f886.
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fi30.tinypic.com%2F33kbuqd.jpg&hash=ec967344d2a6d7acb9e4bb427df9e7ff4deb0584)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fi25.tinypic.com%2F15gpaue.jpg&hash=e7f13052625e232e143d3e8d6ff3311d83fb80c2)
Já sei estou a pedir demais...
jp_
-
:) OK sem problema.
Posso mandar o 886 em vez do 887.
-
:) OK sem problema.
Posso mandar o 886 em vez do 887.
Boas,
Ok negocio feito agora o programador parece me que fica mais em conta se mandar vir da farnell
menos de portes e não há lugar ao VAT (IVA)
ou não é assim??
jp_
-
Segundo um mail que recebi da farnell há uns tempos eles já não vendem para clientes particulares... Mas se tiveres lá registado com uma empresa é na boa.
-
o programador parece me que fica mais em conta se mandar vir da farnell
menos de portes e não há lugar ao VAT (IVA)
ou não é assim??
jp_
Qualquer empresa no espaço intra-comunitário va cobrar-te portes.
Se fores empresa, então o IVA é retirado. Se fores particular, levas com IVA.
-
jp_ eu precisava de mandar vir um PicKit e umas PICS tambem
Vou confirmar se posso e mandas vir junto para mim e se mais alguem quiser, melhor
Queres fazer isso?
olá Fifas,
como moderador não queres tu pegar e converter isto em compra colectiva.
Farnell fica mais barato...
jp_