ENCICLOPÉDIA DE RÁDIO ELETRÔNICA E ENGENHARIA ELÉTRICA Programação do moderno PIC16, PIC12 no PonyProg. Enciclopédia de rádio eletrônica e engenharia elétrica Enciclopédia de eletrônica de rádio e engenharia elétrica / Microcontroladores Como você sabe, o programador PonyProg foi projetado para programar um número limitado de tipos de microcontroladores Microchip PICmicro (PIC12C50x PIC16F8x, PIC16F87x). Porém, pode ser utilizado para programar outros, inclusive os novos microcontroladores das séries PIC12, PIC16. Como fazer isso está descrito no artigo. Muitos rádios amadores constroem seus projetos com base no popular controlador PIC PIC16F84 (PIC16F84A). No entanto, o tempo não pára e a gama de microcontroladores (MC) PICmicro fabricados está em constante expansão. Surgiram novos MKs mais avançados das séries PIC16F e PIC12F (por exemplo, PIC12F629, PIC12F675, PIC16F628, PIC16F630, PIC16F676). Eles contêm um comparador capaz de operar com tensão de entrada próxima de zero, o que é muito tentador com uma única alimentação. O ADC de 10 bits incluído neles não tem uma precisão pior que a dos microcircuitos especializados, que, juntamente com excelentes capacidades de processamento e exibição, permitem criar dispositivos exclusivos com um número mínimo de elementos externos. Os novos MCUs possuem mais memória, temporizadores adicionais, porta de comunicação universal e outras melhorias. Ao mesmo tempo, seu custo é muito inferior ao PIC16F84, e o FLASH PIC16F630 é mais barato que o PIC16C505 (ambos em pacotes de 14 pinos). A organização da memória do PIC12Fx é a mesma do PIC16F84 (uma página), o que facilita a adaptação de programas que não necessitam do uso de MCU em pacotes multipinos. Se você decidir usar novos MKs em seus projetos, antes de estudá-los e escrever programas, pense em como programá-los. A aquisição de um programador proprietário a um custo comparável ao custo de uma unidade de sistema de computador é quase irrealista para rádios amadores. Porém, muitos deles montaram o programador PONYPROG [1]. Vamos descobrir como você pode usá-lo para programar um novo MK. Todos os MKs são programados em um barramento de três fios. A programação requer os sinais Upp (modo de programação), CLK (relógio) e DAT (dados). Os fãs que não possuem programador podem utilizar o dispositivo mais simples montado conforme o diagrama da fig. 1. Ele está conectado à porta COM do PC, uma fonte separada com tensão de saída de 5 V é usada para alimentar o MK. Nas “Configurações de Hardware” indique o tipo de programador - API JDM. As conclusões estão interligadas de acordo com a tabela. A programação pode ser feita diretamente no dispositivo acabado utilizando sua fonte de alimentação (é necessário apenas eliminar o desvio das saídas de programação MC pelos elementos do produto). A tensão de alimentação durante a programação deve estar na faixa de 4,5 ... 5,5 V (se necessário, selecione um diodo Zener VD1). A tabela mostra que a finalidade dos pinos PIC16F84 e PIC16F628 utilizados na programação é a mesma, portanto podem ser programados no mesmo soquete do programador. Para outros microcircuitos, será necessário instalar tomadas adicionais conectadas ao adaptador conforme tabela. Mais informações sobre controladores PIC podem ser encontradas no site [2]. Maiores explicações são dadas no exemplo do PIC16F628, pois não requer modificação de hardware do programador PonyProg e é superior a outros disponíveis nas lojas. Conforme observado, todos os PICmicro MKs são programados em três fios (mais precisamente, em dois). O protocolo de programação (comandos) também é o mesmo. A memória do programa começa no endereço 0000 e termina dependendo do seu tamanho em um determinado tipo de microcircuito. Isso significa que selecionando na lista PonyProg o MK apropriado para este parâmetro, você pode gravar o programa desejado. No nosso caso, o PIC16F871 é adequado. Observe que a linha inferior da janela do PonyProg indica a quantidade de memória em bytes, e as características técnicas do MK geralmente fornecem o número de palavras (14 bits). Em outras palavras, o programador mostra um volume maior. O PIC16F871 e o PIC16F628 possuem 2048 palavras de memória. Além disso, isso pode ser verificado no arquivo .Ikr do MK correspondente (localizado na pasta de instalação do MPLAB) lendo-o usando o programa Notepad padrão. O endereço de memória do programa é fornecido da seguinte forma: CODEPAGE NAME=vetores START=0x0 END=0x4 PROTECTED (transferências condicionais) CODEPAGE NAME=página START=0x5 END=0x7FF (transferências condicionais) Nesta fase, você já pode tentar gravar informações na memória do programa. Qualquer arquivo HEX com até 2048 palavras servirá. Após iniciar o utilitário, conecte o dispositivo à porta do computador, insira o MK no soquete apropriado e ligue o programador. Selecione PIC16F871 no menu, carregue o arquivo HEX selecionado e pressione o botão "Write program memory (FLASH)". Uma mensagem de erro aparecerá anunciando problemas com o MK e contendo três botões (Fig. 2): “Abort” (interromper), “Retry” (repetir), “Ignore” (ignorar). Pressione o último (“Ignorar”) e o processo de programação será iniciado. Após a conclusão, você deverá ver uma mensagem informando que a gravação foi bem-sucedida. Se o programador emitiu um “Erro de Gravação”, verifique o conteúdo da memória do programa lendo-o como o comando apropriado. A presença de erros indica que o programador pode estar rodando muito rápido (isso acontece se o computador tiver WINDOWS XP instalado; com WINDOWS 98, o programa roda mais devagar e grava de forma mais confiável). A causa também pode ser interferência (se os fios de conexão forem muito longos) e, em casos raros, antivírus e outros programas em segundo plano. Se a entrada estiver completamente ausente, o hardware do programador está com defeito ou o programa está configurado incorretamente (no menu). A próxima etapa mais importante é escrever a palavra de configuração. Seu endereço também pode ser encontrado no arquivo .Ikr do MK correspondente. A linha no arquivo fica assim: CODEPAGE NAME=.config START=0x2007 END=0x2007 PROTECTED (transferências condicionais). A palavra de configuração está localizada no endereço 0x2007. No nosso caso, PIC16F871 e PIC16F628 possuem endereços 2007, ou seja, são adequados para substituição (deve-se observar que a palavra de configuração para todos os PIC16 e PIC12F está localizada exatamente neste endereço). Não é desejável definir os bits de configuração diretamente no programador, pois sua designação no painel do programador para PIC16F628 e PIC16F871 é diferente e erros são possíveis, e alguns bits ficam acinzentados e não podem ser configurados diretamente. É melhor anotar a configuração do MK ao compilar um programa. Para MPLAB, essas linhas podem ser parecidas com isto: in lude p16f628.inc> lista p=16f628_config H'0242" O valor '0242' é composto de acordo com a atribuição de cada bit na palavra de configuração e pode ser diferente no seu caso particular. Uma descrição detalhada de todos os bits pode ser encontrada no site [2]. As abreviações dos bits de configuração estão contidas no arquivo .INC do MCU correspondente na pasta de instalação do MPLAB. Visão aproximada: BODEN EM EQU H'3FFF' BODEN OFF EQU H'3FBF' CP TODOS EQU H'03FF' CP 75 EQU H'17FF' CP 50 EQU H'2BFF' CP OFF EQU H'3FFF' DADOS CP NO EQU H'3EFF' DADOS CP OFF EQU H'3FFF' PWRTE OFF EQU H'3FFF' PWRTE ON EQU H'3FF7' WDT ON EQU H'3FFF' WDT OFF EQU H'3FFB' LVP EM EQU H'3FFF' LVP OFF EQU H'3F7F' MCLRE NO EQU H'3FFF' MCLRE OFF EQU H'3FDF' ER OSC CLKOUT EQU H'3FFF' ER OSC NOCLKOUT EQU H'3FFE' INTRC OSC CLKOUT EQU H'3FFD' INTRC OSC NOCLKOUT EQU H'3FFC EXTCLK OSC EQU H'3FEF' LP OSC EQU H'3FEC XT OSC EQU H'3FED' HS OSC EQU H'3FEE' Usando essas notações, a string de entrada pode ter esta aparência: __config CP_ALL & WDT OFF & BODEN ON & _PWRTE_ON & _HSJ3SC &_LVP OFF; (as transferências são condicionais). Desta forma você pode escrever uma palavra de configuração para qualquer MCU usando seu arquivo .INC. Isto é conveniente ao adaptar um programa finalizado, por exemplo, no caso de substituir o PIC16F627 por um PIC16F627A mais barato. Quando uma configuração é incluída no texto do programa, ela será incluída no arquivo HEX e os bits sombreados serão definidos. Depois de inserir uma palavra de configuração no programador, lendo o arquivo HEX do programa que a contém, a gravação é feita da maneira usual, digitando o comando apropriado. Da mesma forma, pode ser lido no MK. Você pode ter certeza de que a configuração foi gravada limpando o painel de programação da configuração do programador após a gravação e depois lendo a configuração do MK, ou lendo a memória do programa de um microcircuito protegido contra leitura: antes da configuração ser gravada , ele é lido e após a gravação não (se a proteção estiver instalada), neste caso a configuração também é lida no chip protegido. Não é recomendado definir bits de segurança, a menos que seja absolutamente necessário. O fato é que alguns MKs possuem comandos de apagamento diferentes, e você não poderá reprogramá-los, pois os bits de proteção não serão apagados no PonyProg. Porém, ao escrever em um chip desprotegido através do "firmware" nele contido, o código que está sendo escrito apagará as informações anteriores e não haverá necessidade de apagamento. No entanto, isto não se aplica ao PIC16F627, PIC16F628, as informações neles contidas podem ser protegidas sem medo. Os dados são gravados na EEPROM da maneira usual, pois os dados nos microcontroladores PIC16F e PIC12F estão localizados no endereço 2100p. Você também pode ver isso no arquivo .Ikr. Uma sequência de exemplo: CODEPAGE NAME=eedata START=0x2100 END=0x217F PROTECTED (transferências condicionais). Diferente para controladores PIC - apenas o final da área de dados (devido aos tamanhos diferentes): para PIC16F628 - 128, para PIC16F871 - 64 bytes, mas se a quantidade necessária para o trabalho não ultrapassar o tamanho da EEPROM da substituição selecionada chip (para PIC16F871 - 64 bytes) , então você pode programar sem mudar o tipo de MK no menu: o excesso de memória do PIC16F628 simplesmente não será usado. Se precisar escrever uma quantidade maior, então você deve substituir o tipo MK no menu do programador por um tamanho de memória semelhante ao PIC16F628 (no nosso caso é PIC16F874 com EEPROM de 128 bytes) e escrever da maneira usual. Você pode alterar o tipo de MK no menu em qualquer fase da programação. Deve-se notar que embora o PIC16F874 tenha uma memória de programa duas vezes maior que o PIC16F628, você pode escrever informações nele configurando PIC16F874 e até mesmo PIC16F877 (16K) no menu, porém, ao verificar o registro, o programador exibirá um mensagem de erro. O fato é que ao ler uma parte da memória que não está implementada no PIC16F628, o MK emitirá informações gravadas nos endereços inferiores (os bits maiores do endereço são ignorados), ou seja, a memória do programa será lida duas vezes (em o PIC16F877 - quatro vezes). Ou seja, não se trata de um erro do programa, mas sim de uma leitura repetida da memória, o programa é escrito normalmente. Literatura
Autor: A.Sizov, Ivanovo Veja outros artigos seção Microcontroladores. Leia e escreva útil comentários sobre este artigo. Últimas notícias de ciência e tecnologia, nova eletrônica: Máquina para desbastar flores em jardins
02.05.2024 Microscópio infravermelho avançado
02.05.2024 Armadilha de ar para insetos
01.05.2024
Outras notícias interessantes: ▪ Robô para verificação de usinas de energia e processamento ▪ LED SOLERIQ S 13 OSRAM Opto Semicondutores ▪ Mudanças climáticas afetam a produção de vinho Feed de notícias de ciência e tecnologia, nova eletrônica
Materiais interessantes da Biblioteca Técnica Gratuita: ▪ seção do site Tecnologias de rádio amador. Seleção de artigos ▪ artigo Triunfo da Vontade. expressão popular ▪ artigo Zubyanka de cinco folhas. Lendas, cultivo, métodos de aplicação ▪ artigo Conversor para rádio CB. Enciclopédia de rádio eletrônica e engenharia elétrica
Deixe seu comentário neste artigo: Todos os idiomas desta página Página principal | Biblioteca | Artigos | Mapa do Site | Revisões do site www.diagrama.com.ua |