Microchip

De Eletronica

Índice de conteúdo

Introdução

O que é um microcontrolador PIC?

Um PIC é um microcontrolador fabricado pela empresa Microchip (com sede na cidade de Chandler no Arizona - EUA.). A Microchip nomeia PICmicro os seus microcontroladores.

Informações Gerais

O que significa PIC?

Há muito muito tempo (quando chips de computadores pifavam quando um gato chegava perto deles num dia seco) uma empresa chamada General Instruments produzia um chip chamado PIC1650, descrito como um Computador Inteligente Programável (Programmable Intelligent Computer). Este chip é o pai de todos os PICs, e funcionalmente semelhante ao atual 16C54. Ele foi projetado para ser um periférico para microprocessadores CP1600. Talvez seja por isso que a maioria das pessoas acredita que PIC significa Peripheral Interface Controller. O que eu sei é que a Microchip nunca usou PIC como uma abreviação, apenas PIC. E recentemente a Microchip começou a chamá-los de microcontroladores PICmicro MCU´s.

Os PICs são uma linha de microcontroladores de arquitetura Harvard com filosofia RISC (conjunto de instruções reduzido) com uma diversidade de periféricos internos.

Quais são as famílias de PIC?

Existem algumas famílias de PIC que podem ser classificadas segundo:

  • O tamanho da instrução: com núcleo de 12 bits, núcleo de 14 bits, núcleo de 16 bits;
  • O tipo da memória: PROM (OTP = programável uma vez), EEPROM, FLASH (que podem ser gravadas várias vezes);
  • O prefixo do modelo: 12F(C), 14, 16F(C), 18F(C), rfPIC, dsPIC30 ou 24F;

Mais recentemente a Microchip lançou novas famílias: dsPIC33F e PIC32 (com núcleo MIPS).

Quais são os modelos Flash mais comuns no Brasil?

  • 16F628(A) de 18 pinos e até 16 portas de I/O, com velocidade de até 20MHz de clock, memória de programa Flash, e memória de dados EEPROM e RAM, USART, PWM, Comparadores analógicos, Timers, Watchdog Timer (WDT), oscilador interno.
  • 12F629 e 12F675 de 8 pinos e até 6 portas de I/O, Flash, EEPROM, Comparadores, Timers, WDT, e no 12F675 um conversor A/D.
  • 16F877(A) de 40 pinos e até 33 portas de I/O, Flash, EEPROM, Conversores A/D, USART, Timers, SSP, WDT, PSP
  • 16F84A de 18 pinos e 13 portas de I/O, Flash, EEPROM, Timers, WDT. Obs: obsoleto
  • 16F819 de 18 pinos, 16 portas de I/O, Flash, EEPROM, Timers, WDT, conversor A/D, oscilador interno
  • 18F1220 e 18F1320 de 18 pinos, 16 portas de I/O, Flash, EEPROM, Timers, WDT, conversor A/D, oscilador interno, mais instruções, núcleo de 16 bits, até 40MHz de clock
  • 18F4520 de 40 pinos, 36 portas de I/O, 4 PWMs, portas MSSP, EUSART, conversor A/D, oscilador interno, comparadores analógicos, 1.5kbytes de RAM e 16kwords de Flash de programa
  • 18F2550 e 18F4550 de 40 pinos e hardware para implementar dispositivos USB 2.0, MSSP, EUSART, conversor A/D, clock até 48MHz

O que significam as letras nos códigos dos PICs?

A letra que vai logo após o prefixo de dois dígitos significa a tecnologia da memória utilizada pelo microcontrolador. Assim as mais comuns são: C quer dizer memória OTP (once time programmable), F quer dizer Flash (programável diversas vezes), LF quer dizer Flash de baixa tensão, FJ de Flash de baixa tensão de operação (até 3,6V) As letras ao final do código, definem o tipo de encapsulamento (por ex. P = DIP, SP = skinny DIP, SO = small outline, SS = SSOP, ) e a faixa de temperaturas de trabalho (por ex. I = industrial)

Programação

Em que linguagem posso programar os PICs?

Os PICs podem ser programados em linguagem assembly ou em linguagem de alto nível como C, Pascal ou Basic. Para tanto, é necessário um programa compilador para gerar os códigos hexadecimais a serem gravados no microcontrolador. Um software/ambiente de desenvolvimento de programas para PICs é disponível gratuitamente no site da Microchip (MPLAB).

Que ferramentas de desenvolvimento existem para desenvolver programas e produtos com os PICs?

A principal ferramenta sem duvida é o software MPLAB IDE, que cria um ambiente integrado de desenvolvimento, com edição de programas assembly, compilador, gravador (Picstart Plus e Promate), simulador, emulador (precisa de hardware externo - ICE), depurador (hardware externo ICD), etc.

O Picstart Plus era o gravador oficial de desenvolvimento da Microchip, foi substituído pelo PICKIT2. O Promate é o gravador de linha de produção profissional. Os ICDs (ICD e ICD2) funcionam como depuradores de programa, funcionando ligados a um PIC real de uma aplicação. Dessa forma se pode acompanhar o que está acontecendo numa aplicação, checar os valores de registradores, inserir break points, etc. Também servem como gravadores de alguns modelos de PICs (o ICD2 grava mais modelos que o ICD e pode se comunicar através de porta USB).

Alem dessas ferramentas da Microchip, existe uma infinidade de placas de desenvolvimento para PICs de outras empresas, com toda a sorte de periféricos e sensores, placas de protótipo, compiladores de diversas linguagens, simuladores (Proteus), etc

Quais compiladores de linguagens de alto nível existem?

  • Para C:
    • PICC da Hitech
    • PCWH da CCS
    • Compilador C Mikroeletronica
    • MPLAB C Compiler da Microchip
  • Para Basic:
    • Picbasic Pro da Melabs
    • CHFlash Basic da Celestial Horizons
    • Proton+ da Crownhill
    • PICBASIC Mikroeletronica
  • Para Pascal
    • Compilador C Mikroeletronica
  • Outras linguagens
    • JAL (just another language)

Como é o procedimento de programação de um PIC em linguagem assembly?

Em linhas gerais para gerar e gravar um programa, os passos são os seguintes:

  • Escrever o código fonte em linguagem assembly (mnemônicos) num editor de texto ou no próprio MPLAB. Esse arquivo deve ter extensão .ASM.
  • Em seguida devemos usar um programa assembler (montador) que vai gerar os códigos hexadecimais. Podemos usar o MPASM (DOS) ou o MPASMWIN (Windows) que vem junto com o MPLAB. Esses montadores vão gerar um arquivo HEX (se tudo ocorrer sem erros) ou um arquivo ERR (com os erros encontrados durante a montagem). Opcionalmente podemos gerar outros arquivos LST (listagem) OBJ (objeto).
  • De posse do arquivo HEX, carregamos esse arquivo no software de controle do gravador e mandamos iniciar a gravação do PIC.

Devo usar assembler, compilador ou interpretador?

Todas as três alternativas são largamente utilizadas, assim não espere por uma resposta simples.

Um bom programador de assembly pode, dado tempo suficiente, sempre fazer um programa menor, mais veloz, etc do que um programador que usa C ou outra linguagem de alto nível. Por outro lado, os programas escritos em linguagens de alto nível tendem a ser de mais fácil manutenção e portabilidade.

Um programador de linguagem de alto nível pode, dada uma quantia de tempo, realizar muito mais funcionalidades do que um programador assembler pode ser capaz de fazer. Um programador que usa um interpretador que ofereça funções intrínsecas adequadas à tarefa em questão pode ser melhor do que um programador que use linguagem compilada.

O dito acima pode ser muito influenciado pela experiência do programador e pela disponibilidade de código reutilizável.

Minha opinião pessoal é de que quando você é tanto novo em programação e que começar com programação de uCs, ou quer terminar um projeto específico no menor tempo possível, a melhor escolha é um interpretador ou uma linguagem de alto nível., mas somente quando a ferramenta oferece um conjunto adequado de funções e bibliotecas intrínsecas (para o seu projeto). Quando você escolhe essa opção, você não está programando de verdade o PIC, mas sim, programando a abstração apresentada a você pelo ambiente de programação.

Quando você estiver mais experiente em programação, e quiser fazer mais do que um projeto, e/ou valoriza a experiência da aprendizagem, você deve usar um compilador. As bibliotecas disponíveis são agora menos importantes porque você vai desenvolver o seu próprio conjunto, e provavelmente vai apreciar fazer isso. Mesmo quando você não quer aprender a linguagem assembly dos PICs, você ainda precisa aprender os detalhes operativos do seu chip (timers, A/D, UART, I2C, PWM, etc) para obter o máximo dele. Para algumas aplicações mais críticas com relação à temporização, você tem que usar rotinas assembly no meio do programa. E saber o conjunto de instruções do PIC pode ajudá-lo mesmo quando você usar uma linguagem de alto nível, por exemplo para escrever um código mais eficiente ou para caçar um bug que parece ser um bug do compilador.

Quando estiver mais familiar com assembly do que com uma linguagem de alto nível, ou quiser fazer coisas com um PIC que outras pessoas julgam realmente impossíveis, o assembler será a sua ferramenta.

De qualquer modo, não deixe ninguém desanimá-lo de pelo menos tentar usar todas as opções, e dê uma boa olhada em uma datasheet típica de um PIC: elas têm em média 300 páginas, das quais só 10 páginas de instruções !! OK, alguns aspectos da CPU são descritos em outras partes, mas o assembly do PIC é realmente muito simples. Mas isso não significa ser simples de se usar.

Tamanho dos programas gerados: C ou Basic versus assembly

Muito provavelmente os programas compilados serão maiores, já que não há otimização por parte do programa compilador, que usa bibliotecas de rotinas padronizadas para cada comando ou instrução. No assembly sempre se pode escrever rotinas mais enxutas e eficientes, entretanto o tempo gasto para tal, fatalmente será maior, enquanto que a produção com linguagem de alto nível é mais rápida, além de serem mais compreensíveis do ponto de vista humano.

Quantas instruções possuem os PICs?

Depende da família de PIC. Os mais comuns, da família de núcleo de 14 bits (12F e 16F), possuem 35 instruções. Os PICs com núcleo de 16 bits (mas ainda de 8 bits de dados) possuem até 76 instruções (incluídas as 8 instruções estendidas de tabela, não disponíveis em todos os modelos). PICs da família 24F de 16 bits têm mais de 140 instruções.

Que tipos de operações matemáticas os PICs podem executar?

Como a estrutura interna dos PICs usa filosofia RISC, não podemos esperar que ele execute operações aritméticas ou matemáticas complexas diretamente. Além disso, ele só opera com inteiros. Basicamente ele executa instruções simples de soma e de subtração de 8 bits, além das de deslocamento de bits para esquerda ou direita.

Para executar operações mais complexas ou de ponto flutuante, é necessário se usar um compilador de alto nível como C, que possui essas rotinas em assembly já prontas ou usar rotinas fornecidas pela Microchip ou criar as suas próprias.

Os compiladores C ou Basic, possuem rotinas de exponenciação, trigonométricas, logarítmicas, etc além de multiplicação e divisão.

Aprendizado

Existem cursos de programação de PICs?

Sim, existem cursos inclusive por correspondência e diversos gratuitos na Internet. Cursos convencionais podem ser feitos na Labtools, na Vidal, na Exsto, Microgênios, Edutec.

E livros sobre PIC?

Em português existem alguns livros sobre PICs:

Onde posso obter informações e documentação sobre os PICs?

Todas as datasheets de todos os modelos, bem como todos os manuais dos programas e os programas de desenvolvimento da Microchip, podem ser baixados do próprio site da Microchip - http://www.microchip.com . Também existem dezenas de Application Notes sobre os PICs, bem como de outros componentes.

Quanto custa em média para começar a desenvolver programas para os PICs?

Você precisa baixar alguns programas gratuitos (MPLAB) de desenvolvimento para instalar num PC e montar ou comprar pelo menos um gravador de PICs (USD $100 no máximo). É interessante se ter um protoboard ou placa de protótipos para montar os primeiros circuitos, alem de um punhado de componentes comuns (resistores, transistores, capacitores, LEDs, conectores, cristais, relés, fontes, etc). O custo dos PICs varia entre USD $2 e USD $10 para os mais comuns. Um módulo ICD também não é muito caro e pode ser uma ferramenta valiosa.

Onde conseguir ajuda para dúvidas e questões?

Existem diversos fóruns e listas pela Internet. No Brasil são várias:

No exterior:

Gravação dos Programas

Como gravar o PIC?

De posse de um arquivo HEX que contenha os códigos hexadecimais das instruções do programa, você precisa de um software de controle no PC e um hardware de gravação de PICs. Existem diversos programas e circuitos de gravação disponíveis na Internet (alguns gratuitos). Também é possível comprar um gravador pronto. Existem alguns métodos de se programar os PICs: método de se colocar o chip num soquete de um gravador, usar um bootloader, usar programação LVP, usar um ICD, programar por ICSP.

Quantas vezes os PICs Flash podem ser regravados?

Se as gravações forem feitas dentro dos parâmetros sugeridos pelo fabricante, ele garante que pelo menos 1000 ciclos de gravação podem ser feitos (alguns tem o mínimo de 100000 vezes). A memória EEPROM de dados pode ter um ciclo de 1000000 vezes. A partir dai, a memória começa a se degradar e perde a confiabilidade.

Quantas vezes podemos reprogramar os PICs OTP?

Os PICs OTP são os que possuem a letra C no meio do código (exceto o 16C84 que é EEPROM). Os PICs OTP (One Time Programmable), como o próprio nome indica, somente podem ser programados uma vez. Entretanto, as posições de memória de programa que não forem usadas poderão ser gravadas posteriormente.

O que é a palavra ou fusíveis de configuração?

No momento da gravação de um programa em um PIC podemos fazer a escolha de alguns recursos de que o PIC dispõe, setando ou zerando os bits de um determinado endereço da memória (2007h no 16F628). Esses recursos se referem a: tipo de oscilador usado, proteção de leitura do programa, ativação do WDT, proteção de leitura da EEPROM, ativação do Brownout, ativação do Master Clear, ativação do Power up timer, seleção do Bandgap, habilitação de gravação por baixa tensão, etc entre outros. Essa configuração de fusíveis pode ser inserida também no programa fonte e vai aparecer automaticamente no software de gravação.

O que é a programação LVP?

É o recurso de se gravar alguns modelos de PICs com baixa tensão (5V e não 13V) o que simplifica a gravação e o gravador. Para isso, usamos um pino chamado de PGM, que deve ser levado a nível lógico 1 para o PIC entrar em modo de programação. Note que como o PGM é compartilhado com uma porta, está fica inutilizada se a LVP estiver habilitada (pelo fusível de configuração).

Exemplos de modelos que possuem esse recurso: 16F627(A) 16F628(A), 16F87X(A), 18FXXXX

Quando não formos usar o modo LVP, devemos aterrar o pino PGM no momento de gravação.

O que é ICSP?

Significa "In Circuit Serial Programming", ou seja, programação serial no circuito (de aplicação). Nos gravadores comerciais e em muitos feitos em casa, é comum se encontrar um conector com 5 ou seis pinos, com os sinais necessários para haver a gravação dos PICs (Vss, Vdd, Vpp, PGD, PGC, que ligamos aos pinos adequados do PIC). Podemos inclusive projetar no circuito aplicação um conector que dê acesso a esses pinos do PIC para uma atualização ou mesmo a primeira gravação, sem que precisemos retirar o chip do soquete e gravarmos na placa do gravador. Note que precisa haver um certo isolamento desses sinais do restante do circuito de aplicação (resistores, jumpers, etc).

Esse modo de programação é o padrão dos PICs e quase todos funcionam assim (exceto alguns modelos antigos como o 16C54, cuja gravação é de modo paralelo).

Onde posso encontrar um projeto de gravador de PICs?

Onde posso encontrar software para gravar PICs?

Características e Recursos

O que eu posso acionar ou controlar com um PIC?

Todo acionamento de dispositivos deve ser feito direta ou indiretamente através das portas de I/O do PIC. Cada porta tem capacidade de drenar ou suprir uma corrente de aproximadamente 25 mA, o que é suficiente para acionar leds e pequenas cargas. Para cargas maiores se faz necessário o uso de transistores, tiristores ou relés.

Também é comum usarmos as portas do PIC para controlar LCDs, displays de leds, interfaces seriais, optoacopladores, buzzers, portas lógicas TTL e CMOS, etc

O que é o Watchdog Timer (WDT)?

O watchdog timer é um contador independente que pode ser ativado durante o processo de gravação do PIC. Ele serve basicamente para prevenir que um programa entre em loop contínuo ou trave o PIC, de forma que decorrido um certo período de tempo que cause um estouro do contador (com tempo configurável), ele reinicialize o processador através de um Reset. Durante a operação normal, o programa deve conter instruções que façam com que o contador do WDT seja zerado antes de estourar.

Como pode ser o clock do PIC?

Em aplicações onde a precisão do clock é necessária, costuma-se usar um cristal de quartzo + 2 capacitores de 22pF (de 15 a 47pF dependendo do cristal) ou um ressonador cerâmico (menos preciso) ligado a dois pinos do PIC. Em aplicações onde isso não é necessário, podemos usar uma rede RC (resistor - capacitor) para gerar as oscilações. Alguns modelos de PIC possuem o recurso de oscilador interno, onde não precisamos ligar componentes externos, porem a precisão fica entre 1% a 7%. Também podemos simplesmente injetar um sinal de clock de um oscilador independente do PIC.

Os PICs mais modernos possuem um recurso de PLL para multiplicar a frequência de clock obtida a partir de um cristal, permitindo assim se obter uma maior velocidade com cristais de menor frequência, sem gerar EMI.

Qual a faixa de alimentação dos PICs?

Normalmente e dependendo da versão, os PICs podem ser alimentados de 2V a 6V. O mais comum é usar 5V bem estabilizados e regulados para manter a compatibilidade com os níveis lógicos TTL.

Qual a velocidade de processamento dos PICs?

Um PIC pode executar uma instrução simples em 4 ciclos de clock (1 ciclo de máquina) graças à sua estrutura de pipeline. Assim, um PIC rodando a 4MHz de clock, consegue trabalhar a 1 MIPs. Algumas instruções de desvio e salto, precisam de 2 ciclos de máquina.

PICs mais rápidos rodam a 48MHz de clock.

Como o PIC pode receber informações de fora?

Através das portas de I/O e configurando-as como portas de entrada. Essas portas dão acesso aos conversores A/D, comparadores, USARTs, timers, etc. É comum ligarmos as portas de entrada: teclados, sensores, links seriais e paralelos, portas lógicas, etc

Quais os modos de osciladores do clock dos PICs?

Existem vários modos, só que nem todos os modelos de PICs possuem todas formas.

  • LP - low power - uso de um cristal de até 100kHz para que o consumo seja baixo.
  • XT - cristal de até 4MHz. Pode ser usado um ressonador cerâmico.
  • HS - high speed - para cristais ou ressonadores de até 20MHz
  • HSPLL – high speed phase locked loop – multiplica a frequência do cristal por 4.
  • ER - external resistor - esse modo usa apenas um resistor externo ao PIC, utilizando a capacitância intrínseca do PIC como capacitor.
  • RC - resistor-capacitor - esse modo precisa de apenas um resistor e de um capacitor externos ao PIC, entretanto a precisão e a estabilidade não são muito grandes.
  • INTRC - oscilador RC interno - que permite que economizemos em componentes e libera os pinos para usar como portas.
  • EXTCK - oscilador externo - apenas injetamos o sinal de clock no PIC.

Alguns PICs possuem um PLL interno que aumentam a velocidade do clock internamente.

Como funcionam os osciladores internos dos PICs?

Alguns modelos de PICs possuem um oscilador de clock interno, o que permite que economizemos em componentes e libera-se mais dois pinos para serem usados como portas de I/O. Esse oscilador é baseado num circuito RC e não tem muita precisão. Entretanto em alguns PICs (e.g. 12F629) podemos calibrar a frequência de oscilação para que fique bem perto da frequência desejada. Isso se faz através dos bits do registrador OSCCAL. Nesse caso, os PICs vêm com um valor gravado de fábrica no último endereço de memória de programa, que deve ser carregado no OSCCAL.

Como funcionam os conversores Analógico-Digitais dos PICs?

A maioria dos modelos de PICs possui conversor A/D de 10 bits (alguns têm de 8 bits e de 12 bits). Sempre é só um conversor com vários canais de entrada (selecionados por multiplexação). Os conversores são do tipo SAR (registradores por aproximação sucessiva), portanto não são muito velozes (em média gastam uns 40 us para cada conversão). Além disso, sofrem de algumas limitações, como a faixa de entrada de tensão dos sinais (de 0V a Vdd), impedância da fonte do sinal, etc.

O processo de conversão é o seguinte: o sinal a ser amostrado carrega um capacitor de hold. Ao final de um certo período, esse capacitor interno do PIC é desligado da fonte de sinal e o conversor começa a fazer as aproximações sucessivas para descobrir o equivalente digital. O valor fica armazenado em dois registradores de 8 bits (nem todos usados) do PIC para serem processados posteriormente.

O que é um módulo CCP?

Alguns modelos de PIC possuem um ou mais módulo de Capture Compare PWM.

O recurso de capture serve para se medir a largura (tempo) de um pulso injetado numa porta do PIC através da leitura do valor do contador TMR1 quando ocorrer a descida ou subida do pulso medido.

O recurso de Compare serve para comparar o valor que está em alguns registradores com o valor que está sendo contado no TMR1, e quando ocorrer a coincidência, aciona a porta RB3.

O recurso de PWM – modulação por largura de pulso, permite gerar um sinal pulsado de freqüência constante e largura de pulso variável.

O que acontece se eu fizer o PIC funcionar a uma frequência maior do que a especificada pelo fabricante?

Em tese isso pode funcionar sem problemas (entretanto, a dissipação de potência será maior = calor) pois alguns modelos possuem versões de 4MHz e 20MHz, a diferença entre eles é o teste de fábrica, que garante até qual frequência o PIC pode funcionar sem erros. Entretanto um chip de 4MHz pode não ter passado no teste para 20MHz, mas pode perfeitamente funcionar a 6MHz sem dar problemas.

Como podemos fazer comunicação de dados entre componentes e um PIC?

Alguns modelos de PIC possuem periféricos especializados em comunicação (serial), como USARTs, SPI, I2C, USB, etc. com controle realizado pelos respectivos registradores internos. Para os que não os possuem, é possível realizar essas tarefas por software. Para comunicação em RS232, é necessário o uso de conversores de nível de sinal (MAX232 por exemplo).

Em linhas gerais o que são interrupções?

Interrupções são eventos que ocorrem no hardware interno e externo ao PIC que fazem com que a execução do programa seja interrompido e desviado para uma rotina especial (de interrupção) e depois de atendida, retorna ao ponto de parada do programa principal. Exemplos de interrupção: final de escrita em EEPROM, estouro de timers internos, mudança de nível em porta (tecla), recebimento de dados na serial, etc.

O que são vetores de reset e de interrupção?

São endereços na área de memória para onde é desviada a execução do programa, caso ocorra um evento de reset ou de interrupção. Nos PICs, o endereço do vetor de reset é 0000h e o de interrupção é 0004h.

O que é a EEPROM?

Alguns modelos de PIC possuem uma área de memória EEPROM (electrically erasable programmable read only memory) que serve como memória não volátil (que não se perde ao desligarmos a alimentação) útil para guardarmos dados de calibração, senhas, etc. Essas memórias podem suportar um ciclo de 1000000 de gravações. Em modelos sem EEPROM, podemos usar memórias EEPROM seriais externas (e.g. 24C16).

O acesso a essas memórias (gravação e leitura) pode ser feita no momento da gravação de um programa no PIC ou pelo próprio PIC executando o programa gravado nele, pelos registradores específicos (EEDATA, EEADR, EECON)

O que é bootloader?

Alguns modelos de PIC podem receber dados externos (ou mesmo internos) e reprogramarem-se (a memória de programa Flash) automaticamente sem o uso de um gravador de PICs. Esses PICs precisam ter uma rotina especial gravada na memória e perdem alguns registradores e portas de I/O para isso. Normalmente os PICs que usem o recurso de bootloader, recebem os dados a serem gravados através de uma porta serial.

Os PICs podem executar operações de ponto flutuante?

Sim, desde que sejam criadas sub-rotinas especiais para essas operações. No Application Note 575 da Microchip, se encontram diversas rotinas de ponto flutuante. Operações de ponto flutuante exigem muito processamento e usam muitos bytes de memória.

Estou com um PIC protegido. Como posso ler o programa?

Não pode. Este recurso implementado nos PICs é feito justamente para prevenir que o código do programa seja lido e replicado em outros chips, dessa forma protegendo o direito autoral do programador.

Como configurar as portas do PIC para serem de entrada ou de saída?

Cada conjunto de portas (GPIO, PORTA, PORTB, PORTC, PORTD, etc) possui um respectivo registrador de controle chamado de TRIS (TRISIO, TRISA, TRISB, TRISC, etc) em que cada bit corresponde a uma porta individual. Se o BIT for setado (nível 1) então a porta será de entrada, se o bit for zerado, então a porta será de saída.

Qual a diferença entre um depurador (ICD – in circuit debugger) e um emulador (ICE – in circuit emulator) de PICs?

A principal diferença é que no ICD existe um PIC real funcionando na aplicação e no emulador não existe um chip real, pois o software no computador simula todas as funções do microcontrolador e envia os sinais através de muitos fios e garras ou um soquete de transição que se prendem ao circuito de aplicação. Nos ICDs, o microcontrolador real tem uma rotina especial que envia os dados a serem visualizados no software do PC, de forma que o programa em desenvolvimento possa ser acompanhado e depurado. ICDs são muito mais baratos do que os ICEs.

Os ICDs podem ser usados também como gravadores de PICs (modelos 16F87X no ICD e vários PICs flash no ICD2). O ICD se conecta através de um cabo a uma plaquinha demo ou de header onde é instalado o PIC.

Uma observação a ser feita é que o novo MPLAB REAL ICE ainda não funciona como um emulador (com os chamados "processor paks") apenas como um depurador mais rápido e programador de desenvolvimento. Apenas os ICE 2000 e ICE 4000 tem funções de verdadeiros emuladores.


Escrito por Renato Kodaira


Outros Links e Referências Interessantes

  1. PICs FAQs - respostas para as perguntas mais frequentes de quem está iniciando a utilização dos microcontroladores fabricados pela Microchip
Ferramentas pessoais