Você está na página 1de 21

Histria e caractersticas dos Microcontroladores PIC Microcontroladores

E tudo comeou com os microprocessadores. Primeiro eram de 4 bits, depois de 8 bits e assim por diante. Mas o que um microprocessador? um chip, com alta integrao de componentes, que precisa de memria RAM externa, memria EEPROM externa, HD para armazenamento de programas e outros diversos perifricos. Ou seja, voc usa um microprocessador dentro de um microcomputador e ele, em conjunto com um monte de outros CIs, trabalham direitinho. Porm, visando desenvolver um dispositivo simples, que tivesse caractersticas de computadores integrados em um nico chip, os fabricantes de processadores desenvolveram os primeiros MCUs [Micro Controle Unit ou Unidade Microcontoladora - Microcontroladores] e passaram a distribu-los efetivamente na dcada de 80. Tais caractersticas tornaram mais simples o projeto de dispositivos inteligentes, pois os MCUs raramente necessitam de componentes externos para funcionar, diminuindo o custo e o seu tamanho. Um sistema computacional composto por uma unidade de processamento, memria e portas de entrada/sada [I/O]. A maioria das pessoas limita o conceito de sistema computacional ao computador que temos em casa [Personal Computer; MAC]. No entanto todo sistema que a partir de dados de entrada, executa algum processamento mediante um programa armazenado em uma memria gerando uma sada chamado de sistema computacional. Podemos definir microcontrolador como sendo um sistema computacional integrado pois ele possui unidade de processamento, integrado, memria e entradas e sadas integrados em um nico chip. Sendo esta a diferena de microcontrolador e microprocessador [este ltimo apenas a unidade de processamento em si; Claro que os microprocessadores comercializados atualmente possuem capacidades de processamento muito maiores do que as dos microcontroladores].

Mas, tudo isto comeou com a lgica digital baseada na conduo ou no de transistores, fets ou diodos entre outros. Mas para no entrar neste detalhe, vamos simplificar resumindo esta lgica em dois nmeros ou como falamos muito, em dois dgitos: O 0 [zero] e o 1 [um]. Quando falamos em 0 [zero], estamos nos referindo a Zero Vcc. Volt DC e quando falamos em 1 [um] estamos falando em + Vcc No caso dos PICs geralmente, estaremos falando que: PICs, 0 = GND e 1 = 5Vcc [padro/lgica TTL]. Tenha em mente, ento, que a lgica digital se baseia em nveis de tenso contnua. E que os microcontroladores usam a lgica digital, e que um programa de computador ou para um microcontrolador, por mais complexo que seja, se resume em uma enorme quantidade de 0s [zeros] e 1s [uns] ordenados corretamente. Os primeiros microcontroladores implementavam a tecnologia do microprocessador 8080, como, por exemplo, o 8048 e posteriormente o 8051 [todos da Intel]. Existem no mercado diversos tipos de microcontroladores, como o 8051. A ATMEL possui uma enorme famlia de componentes com as mesmas caractersticas do 8051, alguns at com as mesmas pinagens dos registradores; outros com pinagens diferentes, mas com o mesmo conjunto de instrues, com clock de 4MHZ at aproximadamente 10MHZ. A DALLAS Semicondutors tem um microcontrolador de alta performance, de at 90MHZ, compatvel com 8051. Por fim, vem a Microchip com os microcontroladores PIC ou PICmicro MCUs, como ela mesmo MCU denomina, que se tornaram muito populares [h um grande nmero de materiais didticos e acadmicos relacionados ao PIC]. A Microchip uma empresa norte americana, fundada em 1989, com sede na cidade de Chandler, Arizona [oeste dos EUA]. A famlia PIC possui extensa variedade de modelos e perifricos internos, com arquitetura Harvard e conjunto de instrues RISC [Reduced Instruction Set Computer ou Conjunto de Instrues Reduzidas], com recursos de programao por Memria Flash,

EEPROM e OTP. H o reconhecimento de interrupes tanto


externas como de perifricos internos. Funcionam com tenses de alimentao de 2 a 6V e os modelos possuem encapsulamento de 6 a 100 pinos em diversos formatos [SOT23, DIP, SOIC, TQFP,etc]. Quantas vezes os PICs Flash podem ser regravados? Se as gravaes forem feitas dentro dos parmetros sugeridos pelo fabricante, ele garante que pelo menos 1000 ciclos de gravao podem ser feitos [alguns tem o mnimo de 100000 vezes]. A memria EEPROM de dados pode ter um ciclo de 1000000 vezes. A partir dai, a memria comea a se degradar e perde a confiabilidade. Quantas vezes podemos reprogramar os PICs OTP? Os PICs OTP so os que possuem a letra C no meio do cdigo [exceto o 16C84 que EEPROM]. Os PICs OTP [One Time Programmable], como o prprio nome indica, somente podem ser programados uma vez. Entretanto, as posies de memria de programa que no forem usadas podero ser gravadas posteriormente. O que a EEPROM? Alguns modelos de PIC possuem uma rea de memria EEPROM [Electrically Erasable Programmable Read Only Memory] que serve como memria no voltil [que no se perde ao desligarmos a alimentao] til para guardarmos dados de calibrao, senhas, etc. Essas memrias podem suportar um ciclo de 1000000 de gravaes. Em modelos sem EEPROM, podemos usar memrias EEPROM seriais externas. O acesso a essas memrias [gravao e leitura] pode ser feito no momento da gravao de um programa no PIC ou pelo prprio PIC executando o programa gravado nele, pelos registradores especficos [EEDATA, EEADR, EECON].

[Configurao fsica do interior de um microcontrolador]

Arquitetura de Construo
A arquitetura de um sistema digital define quem so e como as partes que compe o sistema esto interligadas. Os primeiros microcontroladores usavam uma estrutura interna que tinha apenas um caminho para trafegar os dados e endereos. Lembre-se, dados so informaes e endereos so os locais onde sero armazenados os dados [memria de programa]. O nome mais correto para este caminho Bus [barramento]. Com apenas um bus tnhamos que trafegar hora endereos, hora dados [arquitetura von-Neuman]. As duas arquiteturas mais comuns para sistemas computacionais digitais so as seguintes: Von-Neuman; Harvard. A principal caracterstica da arquitetura Harvard utilizada na construo dos MCUs PIC ter a memria de programa separada da memria de dados e acessada por um barramento independente [a Unidade Central de Processamento interligada a memria de dados e a memria de programa por barramento especfico]. Existe tambm a arquitetura von-Neumann, onde tanto as memrias de dados quanto a de programa, so acessadas usando-se um mesmo barramento de dados [a Unidade Central de Processamento

interligada memria por um nico barramento. O sistema composto por uma nica memria onde so armazenados dados e instrues]. Nesta arquitetura no h limitaes complexidade das instrues, os sistemas geralmente tm conjuntos de instrues complexos, o que equivale a dizer que possuem um grande nmero de instrues [o que dificulta a memorizao do programador] e cada instruo realiza uma grande seqncia de aes [instrues complexas], gastando tempos [quantidade de ciclos de execuo] diferentes para serem executadas. Processadores deste tipo so chamados CISC [Complex Instruction Set CPU ou CPU com Conjunto de Instrues Complexo]. Os PICs usam um Set ou conjunto de instrues reduzidas, devido a sua arquitetura Harvard, chamados de RISC [Reduced Instruction Set Computer]. Este set tem entre 33 a 35 instrues dependendo do PIC. Isto ajuda na memorizao, mas, exige mais do programador. como falar fluentemente um outro idioma, conhecendo poucas palavras.

Clock
O clock um sinal de sincronismo que coordena as aes do MCU e obtido a partir de um componente oscilador externo [ressonador, cristal e capacitores, circuito RC, etc] ou interno [Circuito RC interno]. Se fizermos uma analogia de um microcontrolador com um relgio de sala, o nosso clock corresponde ao pndulo deslocando sempre com uma certa preciso e coordenando a contagem da passagem das horas. Um microcontrolador pode ser entendido como sendo uma mquina que executa operaes em ciclos. O clock do oscilador ligado ao

PIC atravs do pino OSC1, onde, o circuito interno do microcontrolador divide o sinal de clock em quatro fases, Q1, Q2, Q3 e Q4 [PICs com memria de programa de 12 e 14 bits] que no se sobrepem. Estas quatro pulsaes perfazem um ciclo de instruo [tambm chamado Ciclo de Mquina e durante o qual uma Mquina] instruo executada [Todos os sinais necessrios para a busca ou execuo de uma determinada instruo devem ser gerados dentro deste perodo de tempo].

[Nos PICs com memria de programa de 12 e 14 bits um Ciclo de Mquina corresponde a quatro perodos de clock [1:4] denominados Q1,Q2,Q3 e Q4]

Como pode ser o clock do PIC? Em aplicaes onde a preciso do clock [sinal de sincronismo para coordenar as aes do MCU] necessria, costuma-se usar um cristal de quartzo e dois capacitores [ver figura abaixo] ou um ressonador cermico [menos preciso] ligado a dois pinos do PIC. Em aplicaes onde preciso no necessria, podemos usar um circuito RC [resistor capacitor] para gerar as oscilaes. Muitos modelos de PIC possuem o recurso de oscilador interno, onde no precisamos ligar componentes externos, porm, a preciso fica entre 1% a 7%. Tambm podemos simplesmente injetar um sinal de clock de um oscilador independente do PIC. Exemplo de Circuito Oscilador:

CRYSTAL OPERATION [OR CERAMIC RESONATOR] [HS, XT OR LP OSC CONFIGURATION]

Abaixo segue uma lista identificando os vrios modos de clock dos PICs [as nomenclaturas podem variar dependendo da fonte de consulta ou dos programas utilizados], s que nem todos os modelos possuem todos estes [a aplicao e configurao do clock no PIC ser melhor detalhada em Aplicao e Programando]: LP [Low Power Crystal] uso de um cristal de alguns kHz e capacitores para que o consumo seja baixo. XT [Crystal/Resonator] cristal de at 4MHz. Pode ser usado um ressonador cermico. HS [High Speed Crystal/Resonator] para cristais com at 20MHz ou ressonadores com frequncias prximas a isto. HSPLL [High Speed Phase Locked Loop] multiplica a frequncia do cristal por quatro. ER [External Resistor] este modo usa apenas um resistor externo ao PIC, utilizando a capacitncia intrnseca do PIC como capacitor. RC [External Resistor/Capacitor] esse modo precisa de apenas um resistor e um capacitor externo ao PIC [Circuito RC], entretanto a preciso e a estabilidade no so muito grandes. INTOSC [Internal Oscillator] oscilador RC interno que permite que economizemos em componentes e libera os pinos para usar como portas [frequncia prxima de 4MHz frequncia 4MHz]. frequ EC [External Clock In] apenas injetamos um sinal de clock externo no PIC.

Os PICs mais modernos possuem o recurso de PLL para multiplicar a frequncia de clock obtida a partir de um cristal, permitindo assim se obter uma maior velocidade com cristais de menor frequncia, sem gerar EMI. 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 no tem muita preciso. Entretanto em alguns PICs podemos calibrar a frequncia de oscilao para que fique bem perto da frequncia desejada. Isso se faz atravs dos bits do registrador OSCCAL. Nesse caso, os PICs vm com um valor gravado de fbrica no ltimo endereo de memria de programa, que deve ser carregado no OSCCAL. Exemplo de programa com calibrao do oscilador interno [assembly em C - mikroC for PIC - para PIC16F676 PIC16F676]:
void main () { asm { bsf STATUS, RP0 ;Bank 1 call ;Get the cal value 0x3FF movwf OSCCAL ;Calibrate bcf STATUS, RP0 ;Bank 0 } // restante do programa em C [mikroC for PIC] }

Neste exemplo, o valor 3FFh aparece na Datasheet [Especificao fornecida pelo fabricante] para a programao em assembly, porm, nos compiladores de linguagem C este valor deve ser escrito como 0xNNN [onde N o valor em hexadecimal aceito pelo compilador]. Para outros microcontroladores PIC basta consultar sua Datasheet no item CALIBRATING THE INTERNAL OSCILLATOR.

Todas as datasheets de todos os MCU PIC, bem como todos os manuais dos programas e os programas de desenvolvimento da Microchip [por exemplo: MPLAB IDE], podem ser baixados do prprio site da Microchip [www.microchip.com]. Tambm existem dezenas de Application Notes sobre os PICs, bem como de outros componentes.

[Datasheet PIC16F630/676]

O que acontece se eu fizer o PIC funcionar a uma frequncia maior do que a especificada pelo fabricante? Em tese isso pode funcionar sem problemas [entretanto, a dissipao de potncia ser maior = calor], pois alguns modelos possuem verses de 4MHz e 20MHz, a diferena entre eles o teste de fbrica, que garante at qual frequncia o PIC

pode funcionar sem erros. Entretanto um chip de 4MHz pode no ter passado no teste para 20MHz, mas pode perfeitamente funcionar a 6MHz sem dar problemas.

Pipeline
Se para efeito de anlise dividirmos o processamento interno do PIC em ciclos de busca e execuo, podemos afirmar que para cada instruo executada foi necessria a execuo prvia de um ciclo de busca. Imagine um sistema que implemente um ciclo de busca e ao mesmo tempo processe um ciclo de execuo [Na arquitetura Harvard a leitura de instrues e de alguns tipos de operandos podem ser feitas ao mesmo tempo em que as instrues so executadas]. Isso significa que o sistema fica o tempo todo executando instrues, o que acarreta um significativo ganho de velocidade. Enquanto uma instruo executada, a seguinte esta sendo lida [Desta forma, no incio de cada Ciclo de Mquina haver uma instruo pronta para ser executada]. Esse processo conhecido como pipeline [canalizao]. No entanto algumas instrues fazem com que este sistema seja desarticulado: so as chamadas instrues de desvio. As instrues de desvio so aquelas que alteram o valor do Program Counter [contador/ponteiro de programa]. Quando ocorre um desvio a instruo que j foi previamente buscada pelo sistema de Pipeline no vlida, pois estava na posio de memria de programa apontada pelo PC antes dele ter seu valor alterado para o destino especificado. Conseqentemente torna-se necessrio a execuo de um novo ciclo de busca, que obviamente demandar mais um ciclo de mquina, resultando em um tempo total de processamento igual a dois ciclos de mquinas.

TCY0 lido da memria o cdigo da instruo MOVLW 55h (no nos interessa a instruo que foi executada, por isso no est representada por retngulo). TCY1 TCY1 executada a instruo MOVLW 55h e lida da memria a instruo MOVWF PORTB. TCY2 executada a instruo MOVWF PORTB e lida a instruo CALL SUB_1. TCY3 executada a chamada [call] de um subprograma CALL SUB_1 e lida a instruo BSF PORTA, BIT3. Como esta instruo no a que nos interessa, ou seja, no a primeira instruo do subprograma SUB_1, cuja execuo o que vem a seguir, a leitura de uma instruo tem que ser feita de novo. Este um bom exemplo de uma instruo que precisa de mais de um ciclo. TCY4 este ciclo de instruo totalmente usado para ler a primeira instruo do subprograma no endereo SUB_1. TCY5 executada a primeira instruo do subprograma SUB_1 e lida a instruo seguinte.

[Toda instruo do PIC demanda um Ciclo de Mquina para ser executada, exceto instrues de desvio e salto que demandam dois Ciclos de Mquina]

Qual a velocidade de processamento dos PICs? Um PIC pode executar uma instruo simples em 4 ciclos de clock [1 ciclo de mquina] graas sua estrutura de pipeline. Assim, um PIC rodando a 4MHz de clock [sinal de sincronismo para coordenar as aes do MCU], consegue trabalhar a 1MIPS [Um Milho de Instrues por Segundo]. Algumas instrues de desvio e salto, precisam de 2 ciclos de mquina. PICs mais rpidos rodam a 48MHz de clock.

Famlias PIC
Como os microcontroladores podem ter diferentes configuraes de montagem, a diviso dos mesmos em Famlias ou Linhas ou Sries foi realizada para agrupar os MCUs que tm vrios componentes, com tamanhos e recursos iguais. Sendo que o cdigo desenvolvido para um componente de uma determinada famlia compatvel com os demais componentes da mesma famlia, exceto por algumas pequenas alteraes, que se referem principalmente aos perifricos. Cada famlia tem o seu prprio conjunto de instrues. Assim, para

um mesmo fabricante, as famlias guardam uma semelhana entre si, apesar de no serem exatamente iguais. Tanto a linha PIC18 quanto a linha PIC16 so compostas por microcontroladores de oito bits para o endereamento e barramento de dados. J o endereamento e barramento de programa da linha PIC18 contam com dois bits a mais, que a linha PIC16. Fazendo uma comparao, a linha PIC12 e PIC16 tem instrues de 14bits e um conjunto de 35 instrues, com o aumento para 16bits na linha PIC18 o conjunto passa a executar de 75 a 83 instrues [includas as 8 instrues de tabela, no disponveis em todos os modelos], dependendo do modelo do MCU. A famlia PIC24F / PIC24H composta por componentes de 16bits [com mais de 140 instrues]. J a linha dsPIC30F/dsPIC33F traz controladores hbridos de 16bits. A famlia PIC32MX [com ncleo MIPS] composta por componentes de 32bits. Existem ainda outras famlias de microcontroladores PIC.

Sub-Famlias
Devido a grande variedade de opes de dispositivos dentro de uma mesma famlia, foram criadas as sub-famlias. Os seus componentes se diferenciam em quantidade de memria RAM, quantidade de memria EEPROM de dados [alguns modelos nem possuem], quantidade de memria Flash de programa, nmero de pinos [18, 28, 40,...], freqncia de clock e perifricos. Dentre os principais perifricos podemos citar os timers, conversores A/D, comparadores analgicos, mdulos USART [Porta de Comunicao Serial Assncrona de RX e TX], mdulos MSSP [I2C e SPI master], mdulos CCP [Captura Comparao PWM], etc. O que significam as letras nos cdigos dos PICs? A letra que vai logo aps o prefixo de dois dgitos significa a tecnologia da memria utilizada pelo microcontrolador. Assim as mais comuns so: C que quer dizer memria OTP [One Time Programmable], F quer dizer Flash [programvel

diversas vezes], LF quer dizer Flash de baixa tenso, FJ de Flash de baixa tenso de operao [at 3,6V]. As letras ao final do cdigo, 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]. Maiores informaes a este respeito podem ser obtidas na Datasheet do microcontrolador. Qual a capacidade mxima de memria dos PICs? A capacidade mxima de memria da srie 16 de 8kword [8Kbytes ou 8192 posies de memria]. No entanto, devido a limitaes impostas pela estrutura das instrues RISC dos PICs, a memria de programa dividida em blocos ou pginas, cada uma com 2kword ou 2048 posies de memria [PEREIRA, 2004]. A memria de programa mapeada de forma que cada endereo tenha 8bits ou 1byte. Porm, as instrues armazenadas na memria de programa tm 16 ou 32bits. Assim cada instruo ocupa dois endereos de memria e o PC [Program Counter ou Contador de Programa] ao ser executado incrementa de dois em dois endereos e como o barramento de instruo contem 16bits a leitura dos dois endereos simultnea, formando assim uma instruo de 16bits para um nico acesso [instrues curtas] e 32bits para dois acessos [instrues longas].

Ports
Para que o funcionamento dos pinos I/O coincida com a organizao a 8 bits, todos eles esto agrupados em PORT [portas; portos] PORTs denominadas A,B,C,etc [cada PIC, dependendo da quantidade de pinos que possui, tem uma certa quantidade de PORTs; a PortA e a PortC so as mais comuns]. O agrupamento semelhante para os registradores de configurao da Port. Este assunto ser melhor visualizado em Programando.

Por razes prticas, a maioria dos pinos I/O tem vrias funes. Se um pino usado para uma funo qualquer, no pode ser usado para outra. sabendo-se quais so os registradores que configuram as diversas funes de um determinado pino possvel e necessrio pino desabilitar aquelas que no sero teis em um projeto. projeto O que eu posso acionar ou controlar com um PIC? Todo acionamento de dispositivos deve ser feito direta ou indiretamente atravs das portas de I/O do PIC. Cada porta tem capacidade de drenar ou suprir uma corrente de aproximadamente 25mA, o que suficiente para acionar leds e pequenas cargas. Para cargas maiores se faz necessrio o uso de transistores, tiristores ou rels. Tambm comum usarmos as portas do PIC para controlar LCDs, displays de leds, interfaces seriais, optoacopladores, buzzers, portas lgicas TTL e CMOS, etc Como podemos fazer comunicao de dados entre componentes e um PIC? Alguns modelos de PIC possuem perifricos especializados em comunicao [serial], como USARTs, SPI, I2C, USB, etc. com controle realizado pelos respectivos registradores internos. Para os que no os possuem, possvel realizar essas tarefas por software. Para comunicao em RS232, necessrio o uso de conversores de nvel de sinal [por exemplo: MAX232]. Como o PIC pode receber informaes de fora? Atravs das portas de I/O e configurando-as como portas de entrada. Essas portas do acesso aos conversores A/D, comparadores, USARTs, timers, etc. comum ligarmos as portas de entrada: teclados, sensores, links seriais e paralelos, portas lgicas, etc.

Interrupes

Interrupes so eventos que ocorrem no hardware interno e externo ao PIC [so eventos assncronos que podem ocorrer a qualquer momento] que fazem com que a execuo do programa seja interrompida [devido ao desvio no processamento] e desviada para uma rotina especial [o destino o vetor de interrupo] e depois de atendida, retorna ao ponto de parada do programa principal. Uma boa analogia para melhor entendermos o conceito de interrupo a seguinte: voc est trabalhando digitando algo no computador quando o seu ramal toca. Neste momento voc, interrompe o que est fazendo, para atender ao telefone e verificar o que a pessoa do outro lado da linha est precisando. Terminada a conversa, voc coloca o telefone no gancho novamente e retoma o seu trabalho do ponto onde havia parado. Observe que no precisamos verificar a todo instante, se existe ou no algum na linha, pois quando o ramal chamado, o telefone toca avisando que existe algum querendo falar com voc. Exemplos de interrupes: Interrupo externa [Ex.: recebimento de dados na serial]; Interrupo por mudana de estado [Ex.: mudana de nvel em porta tecla]; Interrupo por tempo [Ex.: estouro de timers internos]; Interrupo de final de escrita na EEPROM. A habilitao das interrupes nos PIC segue a seguinte filosofia. Existe uma chave geral [general interrupt enable] e chaves especficas para cada uma das interrupes. Deste modo, se eu quiser habilitar a interrupo de tempo [TMR0] eu devo setar o bit da chave geral e tambm o bit da chave especfica [T0IE], ambos presentes no registrador especial INTCON [veja este registrador e suas caractersticas na Datasheet do componente MCU que voc pretende ter no circuito aplicao].

[Analogia grfica para o registrador INTCON]

O que so vetores de reset e de interrupo? So endereos na rea de memria para onde desviada a execuo do programa, caso ocorra um evento de reset ou de interrupo.

Timer
No se preocupe muito com a informao sobre Timer e Prescaler [ou ainda Bank0, Bank1, relao destes com posies na EEPROM, e similares], pois, um contedo mais especfico e dirigido para uns poucos loucos como eu que se interessam por maiores detalhes e que nem precisam ser levados em considerao quando se usa o mikroC for PIC que se encarrega destes sem que voc perceba [problema_01: na busca por maiores detalhes que muitos de meus projetos se emperram]. Em outras palavras: saber ou no os prximos dois pargrafos no far muita diferena! O PIC possui internamente um recurso de hardware denominado Timer0. Trata-se de um contador de 8bits incrementado internamente pelo ciclo de mquina ou por um sinal externo [borda de subida ou descida], sendo esta opo feita por software durante a programao. Como o contador possui 8 bits ele pode assumir 256 valores distintos [0 at 255]. Caso o ciclo de mquina seja de 1us, cada incremento do Timer corresponder a um intervalo de 1us. Caso sejam necessrio intervalos de tempos maiores para o mesmo Ciclo de Mquina, utilizamos o recurso de Pre-scale.

Prescaler
O prescaler um divisor de frequncia programvel do sinal que incrementa o Timer0. Quando temos um prescaler de 1:1, cada ciclo de mquina corresponde a um incremento do Timer0 [unidade de Timer0]. Ao alterarmos o prescaler para, por exemplo, 1:4 [os valores possveis so as potencias de dois at 256], o Timer0 ser incrementado uma vez a cada quatro ciclos de mquina.

Sleep
O modo de operao Sleep foi includo na famlia PIC para atender um mercado cada vez maior de produtos que devem funcionar com pilhas ou baterias. Estes equipamentos devem ter um consumo mnimo para que a autonomia seja a mxima. Quando o PIC colocado em modo Sleep [dormir], atravs da instruo SLEEP, o consumo passa da ordem de grandeza de mA [mili mperes] para uA [micro mperes]. Existem trs maneiras de "acordar o PIC": por interrupo externa/estado, estouro de Watchdog ou reinicializao [/MCRL].

Linguagem de programao usual para PICs


Os PICs podem ser programados em linguagem assembly ou em linguagem de alto nvel como C. Para tanto, necessrio um programa compilador para gerar o cdigo hexadecimal a ser gravado no microcontrolador. A linguagem C uma linguagem de alto nvel e estruturada. Sua sintaxe simples e porttil, isto , pode-se usar o mesmo programa em vrias plataformas com poucas modificaes. C muito utilizada para a programao de microcontroladores e tambm tem o poder de interagir com a plataforma em baixo nvel implementao. podendo incluir cdigos em assembly em sua implementao Estou com um PIC protegido. Como posso ler o programa?

No pode. Este recurso implementado nos PICs feito justamente para prevenir que o cdigo do programa seja lido e replicado em outros chips, dessa forma protegendo o direito autoral do programador. Isto conseguido por fusvel de configurao. configurao O que a palavra ou fusveis de configurao [Bits de configurao]? configurao] No momento da gravao de um programa em um PIC podemos fazer a escolha de alguns recursos de que o PIC dispe, setando ou zerando os bits de um determinado endereo da memria. Esses recursos se referem a: tipo de usado, programa, oscilador usado proteo de leitura do programa ativao do proteo EEPROM, WDT, proteo de leitura da EEPROM ativao do Brownout, ativao do Master Clear, ativao do Power up timer, seleo tenso, do Bandgap, habilitao de gravao por baixa tenso entre outros. Essa configurao de fusveis pode ser inserida tambm no programa fonte e vai aparecer automaticamente gravao. no software de gravao Este assunto ser detalhado em Programando. Como gravar o PIC? De posse de um arquivo .hex que contenha os cdigos hexadecimais das instrues do programa [Opcode Cdigo Operacional], voc precisa de um software de controle no PC e um hardware de gravao de PICs. Existem diversos programas e circuitos de gravao disponveis na Internet [muitos gratuitos]. Tambm possvel comprar um gravador pronto.

FAQ
Analgico Como funcionam os conversores Analgico-Digitais dos PICs?

A maioria dos modelos de PICs possui conversor A/D de 10 bits [alguns tm de 8 bits e de 12 bits]. Sempre s um conversor com vrios canais de entrada [selecionados por multiplexao]. Os conversores so do tipo SAR [Registradores por Aproximao Sucessiva], portanto no so muito velozes [em mdia gastam uns 40us para cada converso]. Alm disso, sofrem de algumas limitaes, como a faixa de entrada de tenso dos sinais [de 0V a Vdd], impedncia da fonte do sinal, etc. O processo de converso o seguinte: o sinal a ser amostrado carrega um capacitor de hold. Ao final de um certo perodo, esse capacitor interno do PIC desligado da fonte de sinal e o conversor comea a fazer as aproximaes 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 mdulo CCP? Alguns modelos de PIC possuem um ou mais mdulo de Capture Compare PWM. O recurso de capture serve para se medir a largura [tempo] de um pulso injetado numa porta do PIC atravs 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 coincidncia, executa uma ao. O recurso de PWM modulao por largura de pulso, permite gerar um sinal pulsado de freqncia constante e largura de pulso varivel.

bootloader O que bootloader?

Alguns modelos de PIC podem receber dados externos [ou mesmo internos] e reprogramarem-se [a memria de programa] automaticamente sem o uso de um gravador de PICs. Esses PICs precisam ter uma rotina especial gravada na memria e perdem alguns registradores e portas de I/O para isso. Normalmente os PICs que usam o recurso de bootloader, recebem os dados a serem gravados atravs de uma porta serial. Os PICs podem executar operaes de ponto flutuante? Sim, desde que sejam criadas sub-rotinas especiais para essas operaes. No Application Note 575 da Microchip, se encontram diversas rotinas de ponto flutuante. Operaes de ponto flutuante exigem muito processamento e usam muitos bytes de memria [Os compiladores tambm possuem rotinas de exponenciao, trigonomtricas, logartmicas, etc alm de multiplicao e diviso]. Como a estrutura interna dos PICs usa filosofia RISC, no podemos esperar que ele execute operaes aritmticas ou matemticas complexas diretamente. Basicamente ele executa instrues simples de soma e de subtrao de 8 bits [inteiros], alm das de deslocamento de bits para esquerda ou direita.

By AIM

Você também pode gostar