SlideShare uma empresa Scribd logo
História e características dos Microcontroladores PIC


                      Microcontroladores

 E tudo começou 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 integração de componentes,
que precisa de memória RAM externa, memória EEPROM externa,
HD para armazenamento de programas e outros diversos
periféricos. Ou seja, você usa um microprocessador dentro de um
microcomputador e ele, em conjunto com um monte de outros CIs,
trabalham direitinho. Porém, visando desenvolver um dispositivo
simples, que tivesse características 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
década de 80. Tais características 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, memória e portas de entrada/saída [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
memória gerando uma saída é chamado de sistema computacional.
Podemos definir microcontrolador como sendo um sistema
computacional integrado, pois ele possui unidade de processamento,
               integrado
memória e entradas e saídas integrados em um único chip. Sendo
esta a diferença 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 começou com a lógica digital baseada na condução ou
não de transistores, fets ou diodos entre outros. Mas para não
entrar neste detalhe, vamos simplificar resumindo esta lógica em
dois números ou como falamos muito, em dois dígitos: O 0 [zero] e o
1 [um]. Quando falamos em 0 [zero], estamos nos referindo a Zero
Volt DC e quando falamos em 1 [um] estamos falando em + Vcc No
                                                             Vcc.
caso dos PICs, geralmente, estaremos falando que:
         PICs

0 = GND e 1 = 5Vcc [padrão/lógica TTL].

 Tenha em mente, então, que a lógica digital se baseia em níveis de
tensão contínua. E que os microcontroladores usam a lógica 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
família de componentes com as mesmas características do 8051,
alguns até com as mesmas pinagens dos registradores; outros com
pinagens diferentes, mas com o mesmo conjunto de instruções, com
clock de 4MHZ até aproximadamente 10MHZ. A DALLAS
Semicondutors tem um microcontrolador de alta performance, de
até 90MHZ, compatível 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 número
de materiais didáticos e acadêmicos relacionados ao PIC].

      A Microchip é uma empresa norte americana, fundada em
     1989, com sede na cidade de Chandler, Arizona [oeste dos
     EUA].

 A família PIC possui extensa variedade de modelos e periféricos
internos, com arquitetura Harvard e conjunto de instruções RISC
[Reduced Instruction Set Computer ou Conjunto de Instruções
Reduzidas], com recursos de programação por Memória Flash,
EEPROM e OTP. Há o reconhecimento de interrupções tanto
externas como de periféricos internos. Funcionam com tensões de
alimentação 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 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 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.

      O acesso a essas memórias [gravação e leitura] pode ser feito
     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].
[Configuração física do interior de um microcontrolador]

                  Arquitetura de Construção

A arquitetura de um sistema digital define quem são e como as
partes que compõe o sistema estão interligadas.

      Os primeiros microcontroladores usavam uma estrutura
     interna que tinha apenas um caminho para trafegar os dados
     e endereços. Lembre-se, dados são informações e endereços são
     os locais onde serão armazenados os dados [memória de
     programa]. O nome mais correto para este “caminho” é Bus
     [barramento]. Com apenas um bus tínhamos que trafegar hora
     endereços, hora dados [arquitetura von-Neuman].

As duas arquiteturas mais comuns para sistemas computacionais
digitais são as seguintes:

  • Von-Neuman;
  • Harvard.

 A principal característica da arquitetura Harvard utilizada na
construção dos MCUs PIC é ter a memória de programa separada
da memória de dados e acessada por um barramento independente
[a Unidade Central de Processamento é interligada a memória de
dados e a memória de programa por barramento específico]. Existe
também a arquitetura von-Neumann, onde tanto as memórias de
dados quanto a de programa, são acessadas usando-se um mesmo
barramento de dados [a Unidade Central de Processamento é
interligada à memória por um único barramento. O sistema é
composto por uma única memória onde são armazenados dados e
instruções]. Nesta arquitetura não há limitações à complexidade
das instruções, os sistemas geralmente têm conjuntos de instruções
complexos, o que equivale a dizer que possuem um grande número
de instruções [o que dificulta a memorização do programador] e
cada instrução realiza uma grande seqüência de ações [instruções
complexas], gastando tempos [quantidade de ciclos de execução]
diferentes para serem executadas. Processadores deste tipo são
chamados CISC [Complex Instruction Set CPU ou CPU com
Conjunto de Instruções Complexo]. Os PICs usam um Set ou
conjunto de instruções reduzidas, devido a sua arquitetura
Harvard, chamados de RISC [Reduced Instruction Set Computer].
Este set tem entre 33 a 35 instruções dependendo do PIC. Isto ajuda
na memorização, mas, exige mais do programador. É como falar
fluentemente um outro idioma, conhecendo poucas palavras.




                              Clock
 O clock é um sinal de sincronismo que coordena as ações 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
relógio de sala, o nosso clock corresponde ao pêndulo deslocando
sempre com uma certa precisão e coordenando a contagem da
passagem das horas.

 Um microcontrolador pode ser entendido como sendo uma máquina
que executa operações em ciclos. O clock do oscilador é ligado ao
PIC através do pino OSC1, onde, o circuito interno do
microcontrolador divide o sinal de clock em quatro fases, Q1, Q2, Q3
e Q4 [PICs com memória de programa de 12 e 14 bits] que não se
sobrepõem. Estas quatro pulsações perfazem um ciclo de instrução
[também chamado Ciclo de Máquina e durante o qual uma
                            Máquina]
instrução é executada [Todos os sinais necessários para a busca ou
execução de uma determinada instrução devem ser gerados dentro
deste período de tempo].




  [Nos PICs com memória de programa de 12 e 14 bits um Ciclo de Máquina
  corresponde a quatro períodos de clock [1:4] denominados Q1,Q2,Q3 e Q4]

      Como pode ser o clock do PIC?

      Em aplicações onde a precisão do clock [sinal de sincronismo
     para coordenar as ações do MCU] é necessária, costuma-se
     usar um cristal de quartzo e dois capacitores [ver figura
     abaixo] ou um ressonador cerâmico [menos preciso] ligado a
     dois pinos do PIC. Em aplicações onde precisão não é
     necessária, podemos usar um circuito RC [resistor – capacitor]
     para gerar as oscilações. Muitos modelos de PIC possuem o
     recurso de oscilador interno, onde não precisamos ligar
     componentes externos, porém, a precisão fica entre 1% a 7%.
     Também 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 vários 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 aplicação e
configuração do clock no PIC será melhor detalhada em
Aplicação 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 cerâmico.
   • HS [High Speed Crystal/Resonator] – para cristais com
até 20MHz ou ressonadores com frequências próximas a isto.
   • HSPLL [High Speed Phase Locked Loop] – multiplica a
frequência do cristal por quatro.
   • ER [External Resistor] – este modo usa apenas um
resistor externo ao PIC, utilizando a capacitância intrínseca
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 precisão e a estabilidade não são muito
grandes.
   • INTOSC [Internal Oscillator] – oscilador RC interno que
permite que economizemos em componentes e libera os pinos
para usar como portas [frequência próxima de 4MHz
                        frequência
                        frequ                   4MHz].
   • 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 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.

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 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.

 Exemplo de programa com calibração do oscilador interno
[assembly em C - mikroC for PIC - para PIC16F676
                                       PIC16F676]:

void main ()
{
       asm {
        bsf         STATUS, RP0     ;Bank 1
        call        0x3FF           ;Get the cal value
        movwf       OSCCAL          ;Calibrate
        bcf         STATUS, RP0     ;Bank 0
  }
// restante do programa em C [mikroC for PIC]…
}

 Neste exemplo, o valor 3FFh aparece na Datasheet
[Especificação fornecida pelo fabricante] para a programação
em assembly, porém, 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 próprio site da Microchip [www.microchip.com]. Também
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 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.

                             Pipeline

 Se para efeito de análise dividirmos o processamento interno do
PIC em ciclos de busca e execução, podemos afirmar que para cada
instrução executada foi necessária a execução prévia de um ciclo de
busca. Imagine um sistema que implemente um ciclo de busca e ao
mesmo tempo processe um ciclo de execução [Na arquitetura
Harvard a leitura de instruções e de alguns tipos de operandos
podem ser feitas ao mesmo tempo em que as instruções são
executadas]. Isso significa que o sistema fica o tempo todo
executando instruções, o que acarreta um significativo ganho de
velocidade. Enquanto uma instrução é executada, a seguinte esta
sendo lida [Desta forma, no início de cada Ciclo de Máquina haverá
uma instrução pronta para ser executada]. Esse processo é
conhecido como pipeline [canalização].

 No entanto algumas instruções fazem com que este sistema seja
desarticulado: são as chamadas instruções de desvio. As instruções
de desvio são aquelas que alteram o valor do Program Counter
[contador/ponteiro de programa]. Quando ocorre um desvio a
instrução que já foi previamente buscada pelo sistema de Pipeline
não é válida, pois estava na posição de memória de programa
apontada pelo PC antes dele ter seu valor alterado para o destino
especificado. Conseqüentemente torna-se necessário a execução de
um novo ciclo de busca, que obviamente demandará mais um ciclo
de máquina, resultando em um tempo total de processamento igual
a dois ciclos de máquinas.
TCY0 é lido da memória o código da instrução MOVLW 55h (não
nos interessa a instrução que foi executada, por isso não está
representada por retângulo).
 TCY1
 TCY1 é executada a instrução MOVLW 55h e é lida da memória a
instrução MOVWF PORTB.
 TCY2 é executada a instrução MOVWF PORTB e lida a instrução
CALL SUB_1.
 TCY3 é executada a chamada [call] de um subprograma CALL
SUB_1 e é lida a instrução BSF PORTA, BIT3. Como esta instrução
não é a que nos interessa, ou seja, não é a primeira instrução do
subprograma SUB_1, cuja execução é o que vem a seguir, a leitura
de uma instrução tem que ser feita de novo. Este é um bom exemplo
de uma instrução que precisa de mais de um ciclo.
 TCY4 este ciclo de instrução é totalmente usado para ler a primeira
instrução do subprograma no endereço SUB_1.
 TCY5 é executada a primeira instrução do subprograma SUB_1 e
lida a instrução seguinte.
[Toda instrução do PIC demanda um Ciclo de Máquina para ser executada,
  exceto instruções de desvio e salto que demandam dois Ciclos de Máquina]

     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 [sinal de sincronismo
     para coordenar as ações do MCU], consegue trabalhar a
     1MIPS [Um Milhão de Instruções por Segundo]. Algumas
     instruções de desvio e salto, precisam de 2 ciclos de máquina.
     PICs mais rápidos rodam a 48MHz de clock.

                             Famílias PIC

 Como os microcontroladores podem ter diferentes configurações de
montagem, a divisão dos mesmos em Famílias ou Linhas ou Séries
foi realizada para agrupar os MCUs que têm vários componentes,
com tamanhos e recursos iguais. Sendo que o código desenvolvido
para um componente de uma determinada família é compatível com
os demais componentes da mesma família, exceto por algumas
pequenas alterações, que se referem principalmente aos periféricos.
Cada família tem o seu próprio conjunto de instruções. Assim, para
um mesmo fabricante, as famílias guardam uma semelhança entre
si, apesar de não serem exatamente iguais.

 Tanto a linha PIC18 quanto a linha PIC16 são compostas por
microcontroladores de oito bits para o endereçamento e barramento
de dados. Já o endereçamento e barramento de programa da linha
PIC18 contam com dois bits a mais, que a linha PIC16. Fazendo
uma comparação, a linha PIC12 e PIC16 tem instruções de 14bits e
um conjunto de 35 instruções, com o aumento para 16bits na linha
PIC18 o conjunto passa a executar de 75 a 83 instruções [incluídas
as 8 instruções de tabela, não disponíveis em todos os modelos],
dependendo do modelo do MCU.

 A família PIC24F / PIC24H é composta por componentes de 16bits
[com mais de 140 instruções]. Já a linha dsPIC30F/dsPIC33F traz
controladores híbridos de 16bits. A família PIC32MX [com núcleo
MIPS] é composta por componentes de 32bits. Existem ainda outras
famílias de microcontroladores PIC.

                           Sub-Famílias

 Devido a grande variedade de opções de dispositivos dentro de uma
mesma família, foram criadas as sub-famílias. Os seus componentes
se diferenciam em quantidade de memória RAM, quantidade de
memória EEPROM de dados [alguns modelos nem possuem],
quantidade de memória Flash de programa, número de pinos [18,
28, 40,...], freqüência de clock e periféricos. Dentre os principais
periféricos podemos citar os timers, conversores A/D, comparadores
analógicos, módulos USART [Porta de Comunicação Serial
Assíncrona de RX e TX], módulos MSSP [I2C e SPI master],
módulos CCP [Captura – Comparação – PWM], etc.

      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 que quer dizer memória OTP [One
     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]. Maiores
     informações a este respeito podem ser obtidas na Datasheet do
     microcontrolador.

     Qual é a capacidade máxima de memória dos PICs?

      A capacidade máxima de memória da série 16 é de 8kword
     [8Kbytes ou 8192 posições de memória]. No entanto, devido a
     limitações impostas pela estrutura das instruções RISC dos
     PICs, a memória de programa é dividida em blocos ou páginas,
     cada uma com 2kword ou 2048 posições de memória
     [PEREIRA, 2004].

      A memória de programa é mapeada de forma que cada
     endereço tenha 8bits ou 1byte. Porém, as instruções
     armazenadas na memória de programa têm 16 ou 32bits.
     Assim cada instrução ocupa dois endereços de memória e o PC
     [Program Counter ou Contador de Programa] ao ser executado
     incrementa de dois em dois endereços e como o barramento de
     instrução contem 16bits a leitura dos dois endereços é
     simultânea, formando assim uma instrução de 16bits para um
     único acesso [instruções curtas] e 32bits para dois acessos
     [instruções longas].

                               Ports

 Para que o funcionamento dos pinos I/O coincida com a organização
a 8 bits, todos eles estão agrupados em PORTs [portas; portos]
                                        PORT
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 são as mais comuns]. O agrupamento é semelhante para os
registradores de configuração da Port. Este assunto será melhor
visualizado em Programando.
Por razões práticas, a maioria dos pinos I/O tem várias funções. Se
um pino é usado para uma função qualquer, não pode ser usado
para outra. sabendo-se quais são os registradores que configuram as
diversas funções de um determinado pino é possível e necessário
                                       pino
desabilitar aquelas que não serão ú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 através 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 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

      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 [por exemplo: MAX232].

      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.

                           Interrupções
Interrupções são eventos que ocorrem no hardware interno e
externo ao PIC [são eventos assíncronos – que podem ocorrer a
qualquer momento] que fazem com que a execução do programa seja
interrompida [devido ao desvio no processamento] e desviada para
uma rotina especial [o destino é o vetor de interrupção] e depois de
atendida, retorna ao ponto de parada do programa principal.

 Uma boa analogia para melhor entendermos o conceito de
interrupção é 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 não
precisamos verificar a todo instante, se existe ou não alguém na
linha, pois quando o ramal é chamado, o telefone toca avisando que
existe alguém querendo falar com você.

Exemplos de interrupções:

  • Interrupção externa [Ex.: recebimento de dados na serial];
  • Interrupção por mudança de estado [Ex.: mudança de nível em
    porta – tecla];
  • Interrupção por tempo [Ex.: estouro de timers internos];
  • Interrupção de final de escrita na EEPROM.

 A habilitação das interrupções nos PIC segue a seguinte filosofia.
Existe uma chave geral [general interrupt enable] e chaves
específicas para cada uma das interrupções. Deste modo, se eu
quiser habilitar a interrupção de tempo [TMR0] eu devo “setar” o bit
da chave geral e também o bit da chave específica [T0IE], ambos
presentes no registrador especial INTCON [veja este registrador e
suas características na Datasheet do componente MCU que você
pretende ter no circuito aplicação].
[Analogia gráfica para o registrador INTCON]

     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.

                                Timer

 Não se preocupe muito com a informação sobre Timer e Prescaler
[ou ainda Bank0, Bank1, relação destes com posições na EEPROM,
e similares], pois, é um conteúdo mais específico e dirigido para uns
poucos loucos como eu que se interessam por maiores detalhes e que
nem precisam ser levados em consideração 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 não os
próximos dois parágrafos não fará muita diferença!

 O PIC possui internamente um recurso de hardware denominado
Timer0. Trata-se de um contador de 8bits incrementado
internamente pelo ciclo de máquina ou por um sinal externo [borda
de subida ou descida], sendo esta opção feita por software durante a
programação. Como o contador possui 8 bits ele pode assumir 256
valores distintos [0 até 255]. Caso o ciclo de máquina seja de 1us,
cada incremento do Timer corresponderá a um intervalo de 1us.
Caso sejam necessário intervalos de tempos maiores para o mesmo
Ciclo de Máquina, utilizamos o recurso de Pre-scale.
Prescaler

 O prescaler é um divisor de frequência programável do sinal que
incrementa o Timer0. Quando temos um prescaler de 1:1, cada ciclo
de máquina corresponde a um incremento do Timer0 [unidade de
Timer0]. Ao alterarmos o prescaler para, por exemplo, 1:4 [os
valores possíveis são as potencias de dois até 256], o Timer0 será
incrementado uma vez a cada quatro ciclos de máquina.

                              Sleep

 O modo de operação Sleep foi incluído na família PIC para atender
um mercado cada vez maior de produtos que devem funcionar com
pilhas ou baterias. Estes equipamentos devem ter um consumo
mínimo para que a autonomia seja a máxima. Quando o PIC é
colocado em modo Sleep [dormir], através da instrução SLEEP, o
consumo passa da ordem de grandeza de mA [mili àmperes] para
uA [micro àmperes]. Existem três maneiras de "acordar o PIC": por
interrupção externa/estado, estouro de Watchdog ou reinicialização
[/MCRL].

        Linguagem de programação usual para PICs

 Os PICs podem ser programados em linguagem assembly ou em
linguagem de alto nível como C. Para tanto, é necessário um
programa compilador para gerar o código hexadecimal a ser gravado
no microcontrolador.

 A linguagem C é uma linguagem de alto nível e estruturada. Sua
sintaxe é simples e portátil, isto é, pode-se usar o mesmo programa
em várias plataformas com poucas modificações.

 C é muito utilizada para a programação de microcontroladores e
também tem o poder de interagir com a plataforma em baixo nível
podendo incluir códigos em assembly em sua implementação
                                            implementação.

      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. Isto é conseguido por fusível de
     configuração.
     configuração

      O que é a palavra ou fusíveis de configuração [Bits de
     configuração]?
     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. Esses recursos se referem a: tipo de
               usado,                       programa,
     oscilador usado proteção de leitura do programa ativação do
     WDT, proteção de leitura da EEPROM ativação do Brownout,
            proteção              EEPROM,
     ativação do Master Clear, ativação do Power up timer, seleção
     do Bandgap, habilitação de gravação por baixa tensão entre
                                                     tensão,
     outros. Essa configuração de fusíveis pode ser inserida
     também no programa fonte e vai aparecer automaticamente
     no software de gravação Este assunto será detalhado em
                     gravação.
     Programando.

     Como gravar o PIC?

      De posse de um arquivo .hex que contenha os códigos
     hexadecimais das instruções do programa [Opcode – Código
     Operacional], 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
     [muitos gratuitos]. Também é possível comprar um gravador
     pronto.

                              FAQ

                              Analógico
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
40us 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, executa uma ação.

      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 é bootloader?
        bootloader
Alguns modelos de PIC podem receber dados externos [ou mesmo
internos] e reprogramarem-se [a memória de programa]
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 usam 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 [Os
compiladores também possuem rotinas de exponenciação,
trigonométricas, logarítmicas, etc além de multiplicação e divisão].

 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. Basicamente ele executa instruções simples
de soma e de subtração de 8 bits [inteiros], além das de
deslocamento de bits para esquerda ou direita.



                                                             By AIM

Mais conteúdo relacionado

Mais procurados

[Motores sincronos e assincronos]
[Motores sincronos e assincronos][Motores sincronos e assincronos]
[Motores sincronos e assincronos]
Daniel Santos
 
Instalação de motores de indução
Instalação de motores de induçãoInstalação de motores de indução
Instalação de motores de indução
Edson Lopes
 
Computação quântica 2012.2
Computação quântica 2012.2Computação quântica 2012.2
Computação quântica 2012.2
Wilson de Oliveira
 
Técnicas de soldagem
Técnicas de soldagemTécnicas de soldagem
Técnicas de soldagemBruno Pereira
 
Frenagem por corrente continua
Frenagem por corrente continuaFrenagem por corrente continua
Frenagem por corrente continua
heltonpz
 
Comandos elétricos 1
Comandos elétricos 1Comandos elétricos 1
Comandos elétricos 1
Ederson Silva
 
Endereços de ip, tipos de endereços,
Endereços de ip, tipos de endereços,Endereços de ip, tipos de endereços,
Endereços de ip, tipos de endereços,
H P
 
Potência em circuitos trifásicos
Potência em circuitos trifásicosPotência em circuitos trifásicos
Potência em circuitos trifásicos
zeu1507
 
Flip Flops Parte 1
Flip Flops Parte 1Flip Flops Parte 1
Flip Flops Parte 1
Elaine Cecília Gatto
 
Aula disjuntor
Aula disjuntorAula disjuntor
Aula disjuntor
Vamberto Barbosa
 
Transformadores para medição e proteção
Transformadores para medição e proteçãoTransformadores para medição e proteção
Transformadores para medição e proteçãoRodrigo Prado
 
Eletronica de potencia
Eletronica de potenciaEletronica de potencia
Eletronica de potencia
Fernando Freitas
 
Clp – controlador lógico programável
Clp – controlador lógico programávelClp – controlador lógico programável
Clp – controlador lógico programável
Victor Said
 
Apresentação motores de indução
Apresentação motores de induçãoApresentação motores de indução
Apresentação motores de indução
Luiz Carlos Farkas
 
Circuitos elétricos 2
Circuitos elétricos 2Circuitos elétricos 2
Circuitos elétricos 2
msmarquinhos
 

Mais procurados (20)

Máquina indução
Máquina induçãoMáquina indução
Máquina indução
 
[Motores sincronos e assincronos]
[Motores sincronos e assincronos][Motores sincronos e assincronos]
[Motores sincronos e assincronos]
 
Instalação de motores de indução
Instalação de motores de induçãoInstalação de motores de indução
Instalação de motores de indução
 
Computação quântica 2012.2
Computação quântica 2012.2Computação quântica 2012.2
Computação quântica 2012.2
 
Rms
RmsRms
Rms
 
Técnicas de soldagem
Técnicas de soldagemTécnicas de soldagem
Técnicas de soldagem
 
STC NG5 DR4 Andreia
STC NG5 DR4 AndreiaSTC NG5 DR4 Andreia
STC NG5 DR4 Andreia
 
Frenagem por corrente continua
Frenagem por corrente continuaFrenagem por corrente continua
Frenagem por corrente continua
 
Comandos elétricos 1
Comandos elétricos 1Comandos elétricos 1
Comandos elétricos 1
 
Endereços de ip, tipos de endereços,
Endereços de ip, tipos de endereços,Endereços de ip, tipos de endereços,
Endereços de ip, tipos de endereços,
 
Potência em circuitos trifásicos
Potência em circuitos trifásicosPotência em circuitos trifásicos
Potência em circuitos trifásicos
 
Flip Flops Parte 1
Flip Flops Parte 1Flip Flops Parte 1
Flip Flops Parte 1
 
Aula disjuntor
Aula disjuntorAula disjuntor
Aula disjuntor
 
Transformadores para medição e proteção
Transformadores para medição e proteçãoTransformadores para medição e proteção
Transformadores para medição e proteção
 
Eletronica de potencia
Eletronica de potenciaEletronica de potencia
Eletronica de potencia
 
Topologias de rede
Topologias de redeTopologias de rede
Topologias de rede
 
Clp – controlador lógico programável
Clp – controlador lógico programávelClp – controlador lógico programável
Clp – controlador lógico programável
 
Apresentação motores de indução
Apresentação motores de induçãoApresentação motores de indução
Apresentação motores de indução
 
Circuitos elétricos 2
Circuitos elétricos 2Circuitos elétricos 2
Circuitos elétricos 2
 
Multimetros
MultimetrosMultimetros
Multimetros
 

Destaque

Arquitetura do pic
Arquitetura do picArquitetura do pic
Arquitetura do picSaddam Lande
 
Aplicações do microcontrolador PIC
Aplicações do microcontrolador PICAplicações do microcontrolador PIC
Aplicações do microcontrolador PIC
Daniel Rodrigues de Sousa
 
Aplicação dos microcontroladores no dia a dia
Aplicação dos microcontroladores no dia a diaAplicação dos microcontroladores no dia a dia
Aplicação dos microcontroladores no dia a dia
Daniel Rodrigues de Sousa
 
Microcontroladores PIC - Introdução
Microcontroladores PIC - IntroduçãoMicrocontroladores PIC - Introdução
Microcontroladores PIC - IntroduçãoFabio Souza
 
Resumo linguagem c para microcontroladores PIC usando MikroC
Resumo linguagem c para microcontroladores PIC usando MikroCResumo linguagem c para microcontroladores PIC usando MikroC
Resumo linguagem c para microcontroladores PIC usando MikroC
Fabio Souza
 
Programando os Microcontroladores PIC
Programando os Microcontroladores PICProgramando os Microcontroladores PIC
Programando os Microcontroladores PIC
Fabio Souza
 
Microcontroladores PIC - Entradas e saídas Digitais
Microcontroladores PIC - Entradas e saídas DigitaisMicrocontroladores PIC - Entradas e saídas Digitais
Microcontroladores PIC - Entradas e saídas Digitais
Fabio Souza
 
10 apostila microcontroladores
10  apostila microcontroladores10  apostila microcontroladores
10 apostila microcontroladores
Alyson Cavalcante
 
Apostila pic 16f877
Apostila pic 16f877Apostila pic 16f877
Apostila pic 16f877
Luciano Zica
 
Seminario pic
Seminario picSeminario pic
Seminario pic
Rômulo Jales
 
Tipos de microcontroladores
Tipos de microcontroladoresTipos de microcontroladores
Tipos de microcontroladores
Juan Jose Quirino Laureano
 
Déménagement yel'o v2
Déménagement yel'o v2Déménagement yel'o v2
Déménagement yel'o v2
🎯 Soraya Rolland
 
Certificado
CertificadoCertificado
Certificado
Monica Taday
 
Preguntas frecuentes de mercosur
Preguntas frecuentes de mercosurPreguntas frecuentes de mercosur
Preguntas frecuentes de mercosur
Manuel Bedoya D
 
Microcontroladores AVR
Microcontroladores AVRMicrocontroladores AVR
Microcontroladores AVR
Líus Fontenelle Carneiro
 
Dismenorrea y síndrome premenstrual
Dismenorrea y síndrome premenstrualDismenorrea y síndrome premenstrual
Dismenorrea y síndrome premenstrual
Emmanuel Solorza
 
IEA - I Workshop em pressão intracraniana - Parte 3
IEA - I Workshop em pressão intracraniana - Parte 3IEA - I Workshop em pressão intracraniana - Parte 3
IEA - I Workshop em pressão intracraniana - Parte 3
Instituto de Estudos Avançados - USP
 

Destaque (20)

Arquitetura do pic
Arquitetura do picArquitetura do pic
Arquitetura do pic
 
Aplicações do microcontrolador PIC
Aplicações do microcontrolador PICAplicações do microcontrolador PIC
Aplicações do microcontrolador PIC
 
Aplicação dos microcontroladores no dia a dia
Aplicação dos microcontroladores no dia a diaAplicação dos microcontroladores no dia a dia
Aplicação dos microcontroladores no dia a dia
 
Microcontroladores PIC - Introdução
Microcontroladores PIC - IntroduçãoMicrocontroladores PIC - Introdução
Microcontroladores PIC - Introdução
 
Resumo linguagem c para microcontroladores PIC usando MikroC
Resumo linguagem c para microcontroladores PIC usando MikroCResumo linguagem c para microcontroladores PIC usando MikroC
Resumo linguagem c para microcontroladores PIC usando MikroC
 
Programando os Microcontroladores PIC
Programando os Microcontroladores PICProgramando os Microcontroladores PIC
Programando os Microcontroladores PIC
 
Microcontroladores PIC - Entradas e saídas Digitais
Microcontroladores PIC - Entradas e saídas DigitaisMicrocontroladores PIC - Entradas e saídas Digitais
Microcontroladores PIC - Entradas e saídas Digitais
 
10 apostila microcontroladores
10  apostila microcontroladores10  apostila microcontroladores
10 apostila microcontroladores
 
Apostila pic 16f877
Apostila pic 16f877Apostila pic 16f877
Apostila pic 16f877
 
Seminario pic
Seminario picSeminario pic
Seminario pic
 
Kit Didático 8051
Kit Didático 8051Kit Didático 8051
Kit Didático 8051
 
Tipos de microcontroladores
Tipos de microcontroladoresTipos de microcontroladores
Tipos de microcontroladores
 
Programando microcontroladores pic março
Programando microcontroladores pic marçoProgramando microcontroladores pic março
Programando microcontroladores pic março
 
Déménagement yel'o v2
Déménagement yel'o v2Déménagement yel'o v2
Déménagement yel'o v2
 
Certificado
CertificadoCertificado
Certificado
 
Preguntas frecuentes de mercosur
Preguntas frecuentes de mercosurPreguntas frecuentes de mercosur
Preguntas frecuentes de mercosur
 
Microcontroladores AVR
Microcontroladores AVRMicrocontroladores AVR
Microcontroladores AVR
 
Dismenorrea y síndrome premenstrual
Dismenorrea y síndrome premenstrualDismenorrea y síndrome premenstrual
Dismenorrea y síndrome premenstrual
 
IEA - I Workshop em pressão intracraniana - Parte 3
IEA - I Workshop em pressão intracraniana - Parte 3IEA - I Workshop em pressão intracraniana - Parte 3
IEA - I Workshop em pressão intracraniana - Parte 3
 
C pic
C picC pic
C pic
 

Semelhante a 1 história e características dos microcontroladores pic

Pcs2031 projeto01 introducao_pic_v4
Pcs2031 projeto01 introducao_pic_v4Pcs2031 projeto01 introducao_pic_v4
Pcs2031 projeto01 introducao_pic_v4
Flávia Martins
 
Arquitetura de computadores Módulo 4
Arquitetura de computadores Módulo 4Arquitetura de computadores Módulo 4
Arquitetura de computadores Módulo 4
Luis Ferreira
 
Trabalho sobre processadores
Trabalho sobre processadoresTrabalho sobre processadores
Trabalho sobre processadores
Tiago
 
3b5d17 748a8b99e224a1bf91f42123e5388634
3b5d17 748a8b99e224a1bf91f42123e53886343b5d17 748a8b99e224a1bf91f42123e5388634
3b5d17 748a8b99e224a1bf91f42123e5388634
JADSON SANTOS
 
Aula 2 - Introdução aos Miconcontroladores.pptx
Aula 2 - Introdução aos Miconcontroladores.pptxAula 2 - Introdução aos Miconcontroladores.pptx
Aula 2 - Introdução aos Miconcontroladores.pptx
AntonioCarlos349007
 
ApresPP.pptx
ApresPP.pptxApresPP.pptx
ApresPP.pptx
Jeovane Sousa
 
Aula05 - Arquitetura e manutanção de Computadores
Aula05 - Arquitetura e manutanção de ComputadoresAula05 - Arquitetura e manutanção de Computadores
Aula05 - Arquitetura e manutanção de Computadores
Jorge Ávila Miranda
 
Microcontroladores x microprocessadores
Microcontroladores x microprocessadoresMicrocontroladores x microprocessadores
Microcontroladores x microprocessadores
miroslayer
 
Arquitetura de Microcontroladores Microchip PIC
Arquitetura de Microcontroladores Microchip PICArquitetura de Microcontroladores Microchip PIC
Arquitetura de Microcontroladores Microchip PIC
Alexandre Brandão Lustosa
 
Apostila cpic
Apostila cpicApostila cpic
Apostila cpic
Wantuil Oliveira
 
Aula 1 conhecimentos básicos - hardware
Aula 1    conhecimentos básicos - hardwareAula 1    conhecimentos básicos - hardware
Aula 1 conhecimentos básicos - hardwareCristiano Carvalho
 
Clp completa
Clp completaClp completa
Clp completa
panelada
 
Microcontroladores PIC.pptx
Microcontroladores PIC.pptxMicrocontroladores PIC.pptx
Microcontroladores PIC.pptx
fmtpereira
 
Apresentação pic
Apresentação picApresentação pic
Apresentação picSaddam Lande
 
Introducao clp
Introducao clpIntroducao clp
Introducao clp
Carlos Vanti
 
Introducao clp
Introducao clpIntroducao clp
Introducao clp
Denilson Vitorino
 

Semelhante a 1 história e características dos microcontroladores pic (20)

Pcs2031 projeto01 introducao_pic_v4
Pcs2031 projeto01 introducao_pic_v4Pcs2031 projeto01 introducao_pic_v4
Pcs2031 projeto01 introducao_pic_v4
 
Arquitetura de computadores Módulo 4
Arquitetura de computadores Módulo 4Arquitetura de computadores Módulo 4
Arquitetura de computadores Módulo 4
 
Trabalho sobre processadores
Trabalho sobre processadoresTrabalho sobre processadores
Trabalho sobre processadores
 
3b5d17 748a8b99e224a1bf91f42123e5388634
3b5d17 748a8b99e224a1bf91f42123e53886343b5d17 748a8b99e224a1bf91f42123e5388634
3b5d17 748a8b99e224a1bf91f42123e5388634
 
Aula 2 - Introdução aos Miconcontroladores.pptx
Aula 2 - Introdução aos Miconcontroladores.pptxAula 2 - Introdução aos Miconcontroladores.pptx
Aula 2 - Introdução aos Miconcontroladores.pptx
 
ApresPP.pptx
ApresPP.pptxApresPP.pptx
ApresPP.pptx
 
Corpo relatorio
Corpo relatorioCorpo relatorio
Corpo relatorio
 
Aula05 - Arquitetura e manutanção de Computadores
Aula05 - Arquitetura e manutanção de ComputadoresAula05 - Arquitetura e manutanção de Computadores
Aula05 - Arquitetura e manutanção de Computadores
 
Microcontroladores x microprocessadores
Microcontroladores x microprocessadoresMicrocontroladores x microprocessadores
Microcontroladores x microprocessadores
 
Arquitetura de Microcontroladores Microchip PIC
Arquitetura de Microcontroladores Microchip PICArquitetura de Microcontroladores Microchip PIC
Arquitetura de Microcontroladores Microchip PIC
 
Apostila cpic
Apostila cpicApostila cpic
Apostila cpic
 
Basico sobre clp
Basico sobre clpBasico sobre clp
Basico sobre clp
 
Microprocessadores
MicroprocessadoresMicroprocessadores
Microprocessadores
 
Aula 1 conhecimentos básicos - hardware
Aula 1    conhecimentos básicos - hardwareAula 1    conhecimentos básicos - hardware
Aula 1 conhecimentos básicos - hardware
 
Clp completa
Clp completaClp completa
Clp completa
 
Microcontroladores PIC.pptx
Microcontroladores PIC.pptxMicrocontroladores PIC.pptx
Microcontroladores PIC.pptx
 
Apresentação pic
Apresentação picApresentação pic
Apresentação pic
 
Pic18xx
Pic18xxPic18xx
Pic18xx
 
Introducao clp
Introducao clpIntroducao clp
Introducao clp
 
Introducao clp
Introducao clpIntroducao clp
Introducao clp
 

Último

Correção do 1º Simulado Enem 2024 - Mês de Abril.pdf
Correção do 1º Simulado Enem 2024 - Mês de Abril.pdfCorreção do 1º Simulado Enem 2024 - Mês de Abril.pdf
Correção do 1º Simulado Enem 2024 - Mês de Abril.pdf
Edilson431302
 
LIÇÃO 9 - ORDENANÇAS PARA UMA VIDA DE SANTIFICAÇÃO.pptx
LIÇÃO 9 - ORDENANÇAS PARA UMA VIDA DE SANTIFICAÇÃO.pptxLIÇÃO 9 - ORDENANÇAS PARA UMA VIDA DE SANTIFICAÇÃO.pptx
LIÇÃO 9 - ORDENANÇAS PARA UMA VIDA DE SANTIFICAÇÃO.pptx
WelidaFreitas1
 
ptoposta curricular de geografia.da educação de jovens a e adultos
ptoposta curricular de geografia.da educação de jovens a e adultosptoposta curricular de geografia.da educação de jovens a e adultos
ptoposta curricular de geografia.da educação de jovens a e adultos
Escola Municipal Jesus Cristo
 
o que está acontecendo no Rio grande do Sul
o que está acontecendo no Rio grande do Sulo que está acontecendo no Rio grande do Sul
o que está acontecendo no Rio grande do Sul
CarlaInsStaub
 
Eurodeputados Portugueses 2019-2024 (nova atualização)
Eurodeputados Portugueses 2019-2024 (nova atualização)Eurodeputados Portugueses 2019-2024 (nova atualização)
Eurodeputados Portugueses 2019-2024 (nova atualização)
Centro Jacques Delors
 
APOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdf
APOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdfAPOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdf
APOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdf
RenanSilva991968
 
UFCD_8298_Cozinha criativa_índice do manual
UFCD_8298_Cozinha criativa_índice do manualUFCD_8298_Cozinha criativa_índice do manual
UFCD_8298_Cozinha criativa_índice do manual
Manuais Formação
 
EJA -livro para professor -dos anos iniciais letramento e alfabetização.pdf
EJA -livro para professor -dos anos iniciais letramento e alfabetização.pdfEJA -livro para professor -dos anos iniciais letramento e alfabetização.pdf
EJA -livro para professor -dos anos iniciais letramento e alfabetização.pdf
Escola Municipal Jesus Cristo
 
PROVA FINAL Filosofia e Educação Cristã.ppt
PROVA FINAL Filosofia e Educação Cristã.pptPROVA FINAL Filosofia e Educação Cristã.ppt
PROVA FINAL Filosofia e Educação Cristã.ppt
betokg
 
Sócrates e os sofistas - apresentação de slides
Sócrates e os sofistas - apresentação de slidesSócrates e os sofistas - apresentação de slides
Sócrates e os sofistas - apresentação de slides
jbellas2
 
Química orgânica e as funções organicas.pptx
Química orgânica e as funções organicas.pptxQuímica orgânica e as funções organicas.pptx
Química orgânica e as funções organicas.pptx
KeilianeOliveira3
 
O autismo me ensinou - Letícia Butterfield.pdf
O autismo me ensinou - Letícia Butterfield.pdfO autismo me ensinou - Letícia Butterfield.pdf
O autismo me ensinou - Letícia Butterfield.pdf
Letícia Butterfield
 
Slides Lição 9, Central Gospel, As Bodas Do Cordeiro, 1Tr24.pptx
Slides Lição 9, Central Gospel, As Bodas Do Cordeiro, 1Tr24.pptxSlides Lição 9, Central Gospel, As Bodas Do Cordeiro, 1Tr24.pptx
Slides Lição 9, Central Gospel, As Bodas Do Cordeiro, 1Tr24.pptx
LuizHenriquedeAlmeid6
 
Atividade - Letra da música "Tem Que Sorrir" - Jorge e Mateus
Atividade - Letra da música "Tem Que Sorrir"  - Jorge e MateusAtividade - Letra da música "Tem Que Sorrir"  - Jorge e Mateus
Atividade - Letra da música "Tem Que Sorrir" - Jorge e Mateus
Mary Alvarenga
 
Aula 3- 6º HIS - As origens da humanidade, seus deslocamentos e os processos ...
Aula 3- 6º HIS - As origens da humanidade, seus deslocamentos e os processos ...Aula 3- 6º HIS - As origens da humanidade, seus deslocamentos e os processos ...
Aula 3- 6º HIS - As origens da humanidade, seus deslocamentos e os processos ...
Luana Neres
 
Slides Lição 10, CPAD, Desenvolvendo uma Consciência de Santidade, 2Tr24.pptx
Slides Lição 10, CPAD, Desenvolvendo uma Consciência de Santidade, 2Tr24.pptxSlides Lição 10, CPAD, Desenvolvendo uma Consciência de Santidade, 2Tr24.pptx
Slides Lição 10, CPAD, Desenvolvendo uma Consciência de Santidade, 2Tr24.pptx
LuizHenriquedeAlmeid6
 
MÁRTIRES DE UGANDA Convertem-se ao Cristianismo - 1885-1887.pptx
MÁRTIRES DE UGANDA Convertem-se ao Cristianismo - 1885-1887.pptxMÁRTIRES DE UGANDA Convertem-se ao Cristianismo - 1885-1887.pptx
MÁRTIRES DE UGANDA Convertem-se ao Cristianismo - 1885-1887.pptx
Martin M Flynn
 
Aproveitando as ferramentas do Tableau para criatividade e produtividade
Aproveitando as ferramentas do Tableau para criatividade e produtividadeAproveitando as ferramentas do Tableau para criatividade e produtividade
Aproveitando as ferramentas do Tableau para criatividade e produtividade
Ligia Galvão
 
História Do Assaré - Prof. Francisco Leite
História Do Assaré - Prof. Francisco LeiteHistória Do Assaré - Prof. Francisco Leite
História Do Assaré - Prof. Francisco Leite
profesfrancleite
 
2021-7o-ano-PPt-Oracoes-coordenadas..pptx
2021-7o-ano-PPt-Oracoes-coordenadas..pptx2021-7o-ano-PPt-Oracoes-coordenadas..pptx
2021-7o-ano-PPt-Oracoes-coordenadas..pptx
BarbaraBeatriz15
 

Último (20)

Correção do 1º Simulado Enem 2024 - Mês de Abril.pdf
Correção do 1º Simulado Enem 2024 - Mês de Abril.pdfCorreção do 1º Simulado Enem 2024 - Mês de Abril.pdf
Correção do 1º Simulado Enem 2024 - Mês de Abril.pdf
 
LIÇÃO 9 - ORDENANÇAS PARA UMA VIDA DE SANTIFICAÇÃO.pptx
LIÇÃO 9 - ORDENANÇAS PARA UMA VIDA DE SANTIFICAÇÃO.pptxLIÇÃO 9 - ORDENANÇAS PARA UMA VIDA DE SANTIFICAÇÃO.pptx
LIÇÃO 9 - ORDENANÇAS PARA UMA VIDA DE SANTIFICAÇÃO.pptx
 
ptoposta curricular de geografia.da educação de jovens a e adultos
ptoposta curricular de geografia.da educação de jovens a e adultosptoposta curricular de geografia.da educação de jovens a e adultos
ptoposta curricular de geografia.da educação de jovens a e adultos
 
o que está acontecendo no Rio grande do Sul
o que está acontecendo no Rio grande do Sulo que está acontecendo no Rio grande do Sul
o que está acontecendo no Rio grande do Sul
 
Eurodeputados Portugueses 2019-2024 (nova atualização)
Eurodeputados Portugueses 2019-2024 (nova atualização)Eurodeputados Portugueses 2019-2024 (nova atualização)
Eurodeputados Portugueses 2019-2024 (nova atualização)
 
APOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdf
APOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdfAPOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdf
APOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdf
 
UFCD_8298_Cozinha criativa_índice do manual
UFCD_8298_Cozinha criativa_índice do manualUFCD_8298_Cozinha criativa_índice do manual
UFCD_8298_Cozinha criativa_índice do manual
 
EJA -livro para professor -dos anos iniciais letramento e alfabetização.pdf
EJA -livro para professor -dos anos iniciais letramento e alfabetização.pdfEJA -livro para professor -dos anos iniciais letramento e alfabetização.pdf
EJA -livro para professor -dos anos iniciais letramento e alfabetização.pdf
 
PROVA FINAL Filosofia e Educação Cristã.ppt
PROVA FINAL Filosofia e Educação Cristã.pptPROVA FINAL Filosofia e Educação Cristã.ppt
PROVA FINAL Filosofia e Educação Cristã.ppt
 
Sócrates e os sofistas - apresentação de slides
Sócrates e os sofistas - apresentação de slidesSócrates e os sofistas - apresentação de slides
Sócrates e os sofistas - apresentação de slides
 
Química orgânica e as funções organicas.pptx
Química orgânica e as funções organicas.pptxQuímica orgânica e as funções organicas.pptx
Química orgânica e as funções organicas.pptx
 
O autismo me ensinou - Letícia Butterfield.pdf
O autismo me ensinou - Letícia Butterfield.pdfO autismo me ensinou - Letícia Butterfield.pdf
O autismo me ensinou - Letícia Butterfield.pdf
 
Slides Lição 9, Central Gospel, As Bodas Do Cordeiro, 1Tr24.pptx
Slides Lição 9, Central Gospel, As Bodas Do Cordeiro, 1Tr24.pptxSlides Lição 9, Central Gospel, As Bodas Do Cordeiro, 1Tr24.pptx
Slides Lição 9, Central Gospel, As Bodas Do Cordeiro, 1Tr24.pptx
 
Atividade - Letra da música "Tem Que Sorrir" - Jorge e Mateus
Atividade - Letra da música "Tem Que Sorrir"  - Jorge e MateusAtividade - Letra da música "Tem Que Sorrir"  - Jorge e Mateus
Atividade - Letra da música "Tem Que Sorrir" - Jorge e Mateus
 
Aula 3- 6º HIS - As origens da humanidade, seus deslocamentos e os processos ...
Aula 3- 6º HIS - As origens da humanidade, seus deslocamentos e os processos ...Aula 3- 6º HIS - As origens da humanidade, seus deslocamentos e os processos ...
Aula 3- 6º HIS - As origens da humanidade, seus deslocamentos e os processos ...
 
Slides Lição 10, CPAD, Desenvolvendo uma Consciência de Santidade, 2Tr24.pptx
Slides Lição 10, CPAD, Desenvolvendo uma Consciência de Santidade, 2Tr24.pptxSlides Lição 10, CPAD, Desenvolvendo uma Consciência de Santidade, 2Tr24.pptx
Slides Lição 10, CPAD, Desenvolvendo uma Consciência de Santidade, 2Tr24.pptx
 
MÁRTIRES DE UGANDA Convertem-se ao Cristianismo - 1885-1887.pptx
MÁRTIRES DE UGANDA Convertem-se ao Cristianismo - 1885-1887.pptxMÁRTIRES DE UGANDA Convertem-se ao Cristianismo - 1885-1887.pptx
MÁRTIRES DE UGANDA Convertem-se ao Cristianismo - 1885-1887.pptx
 
Aproveitando as ferramentas do Tableau para criatividade e produtividade
Aproveitando as ferramentas do Tableau para criatividade e produtividadeAproveitando as ferramentas do Tableau para criatividade e produtividade
Aproveitando as ferramentas do Tableau para criatividade e produtividade
 
História Do Assaré - Prof. Francisco Leite
História Do Assaré - Prof. Francisco LeiteHistória Do Assaré - Prof. Francisco Leite
História Do Assaré - Prof. Francisco Leite
 
2021-7o-ano-PPt-Oracoes-coordenadas..pptx
2021-7o-ano-PPt-Oracoes-coordenadas..pptx2021-7o-ano-PPt-Oracoes-coordenadas..pptx
2021-7o-ano-PPt-Oracoes-coordenadas..pptx
 

1 história e características dos microcontroladores pic

  • 1. História e características dos Microcontroladores PIC Microcontroladores E tudo começou 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 integração de componentes, que precisa de memória RAM externa, memória EEPROM externa, HD para armazenamento de programas e outros diversos periféricos. Ou seja, você usa um microprocessador dentro de um microcomputador e ele, em conjunto com um monte de outros CIs, trabalham direitinho. Porém, visando desenvolver um dispositivo simples, que tivesse características 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 década de 80. Tais características 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, memória e portas de entrada/saída [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 memória gerando uma saída é chamado de sistema computacional. Podemos definir microcontrolador como sendo um sistema computacional integrado, pois ele possui unidade de processamento, integrado memória e entradas e saídas integrados em um único chip. Sendo esta a diferença 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].
  • 2. Mas, tudo isto começou com a lógica digital baseada na condução ou não de transistores, fets ou diodos entre outros. Mas para não entrar neste detalhe, vamos simplificar resumindo esta lógica em dois números ou como falamos muito, em dois dígitos: O 0 [zero] e o 1 [um]. Quando falamos em 0 [zero], estamos nos referindo a Zero Volt DC e quando falamos em 1 [um] estamos falando em + Vcc No Vcc. caso dos PICs, geralmente, estaremos falando que: PICs 0 = GND e 1 = 5Vcc [padrão/lógica TTL]. Tenha em mente, então, que a lógica digital se baseia em níveis de tensão contínua. E que os microcontroladores usam a lógica 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 família de componentes com as mesmas características do 8051, alguns até com as mesmas pinagens dos registradores; outros com pinagens diferentes, mas com o mesmo conjunto de instruções, com clock de 4MHZ até aproximadamente 10MHZ. A DALLAS Semicondutors tem um microcontrolador de alta performance, de até 90MHZ, compatível 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 número de materiais didáticos e acadêmicos relacionados ao PIC]. A Microchip é uma empresa norte americana, fundada em 1989, com sede na cidade de Chandler, Arizona [oeste dos EUA]. A família PIC possui extensa variedade de modelos e periféricos internos, com arquitetura Harvard e conjunto de instruções RISC [Reduced Instruction Set Computer ou Conjunto de Instruções Reduzidas], com recursos de programação por Memória Flash,
  • 3. EEPROM e OTP. Há o reconhecimento de interrupções tanto externas como de periféricos internos. Funcionam com tensões de alimentação 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 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 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. O acesso a essas memórias [gravação e leitura] pode ser feito 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].
  • 4. [Configuração física do interior de um microcontrolador] Arquitetura de Construção A arquitetura de um sistema digital define quem são e como as partes que compõe o sistema estão interligadas. Os primeiros microcontroladores usavam uma estrutura interna que tinha apenas um caminho para trafegar os dados e endereços. Lembre-se, dados são informações e endereços são os locais onde serão armazenados os dados [memória de programa]. O nome mais correto para este “caminho” é Bus [barramento]. Com apenas um bus tínhamos que trafegar hora endereços, hora dados [arquitetura von-Neuman]. As duas arquiteturas mais comuns para sistemas computacionais digitais são as seguintes: • Von-Neuman; • Harvard. A principal característica da arquitetura Harvard utilizada na construção dos MCUs PIC é ter a memória de programa separada da memória de dados e acessada por um barramento independente [a Unidade Central de Processamento é interligada a memória de dados e a memória de programa por barramento específico]. Existe também a arquitetura von-Neumann, onde tanto as memórias de dados quanto a de programa, são acessadas usando-se um mesmo barramento de dados [a Unidade Central de Processamento é
  • 5. interligada à memória por um único barramento. O sistema é composto por uma única memória onde são armazenados dados e instruções]. Nesta arquitetura não há limitações à complexidade das instruções, os sistemas geralmente têm conjuntos de instruções complexos, o que equivale a dizer que possuem um grande número de instruções [o que dificulta a memorização do programador] e cada instrução realiza uma grande seqüência de ações [instruções complexas], gastando tempos [quantidade de ciclos de execução] diferentes para serem executadas. Processadores deste tipo são chamados CISC [Complex Instruction Set CPU ou CPU com Conjunto de Instruções Complexo]. Os PICs usam um Set ou conjunto de instruções reduzidas, devido a sua arquitetura Harvard, chamados de RISC [Reduced Instruction Set Computer]. Este set tem entre 33 a 35 instruções dependendo do PIC. Isto ajuda na memorização, mas, exige mais do programador. É como falar fluentemente um outro idioma, conhecendo poucas palavras. Clock O clock é um sinal de sincronismo que coordena as ações 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 relógio de sala, o nosso clock corresponde ao pêndulo deslocando sempre com uma certa precisão e coordenando a contagem da passagem das horas. Um microcontrolador pode ser entendido como sendo uma máquina que executa operações em ciclos. O clock do oscilador é ligado ao
  • 6. PIC através do pino OSC1, onde, o circuito interno do microcontrolador divide o sinal de clock em quatro fases, Q1, Q2, Q3 e Q4 [PICs com memória de programa de 12 e 14 bits] que não se sobrepõem. Estas quatro pulsações perfazem um ciclo de instrução [também chamado Ciclo de Máquina e durante o qual uma Máquina] instrução é executada [Todos os sinais necessários para a busca ou execução de uma determinada instrução devem ser gerados dentro deste período de tempo]. [Nos PICs com memória de programa de 12 e 14 bits um Ciclo de Máquina corresponde a quatro períodos de clock [1:4] denominados Q1,Q2,Q3 e Q4] Como pode ser o clock do PIC? Em aplicações onde a precisão do clock [sinal de sincronismo para coordenar as ações do MCU] é necessária, costuma-se usar um cristal de quartzo e dois capacitores [ver figura abaixo] ou um ressonador cerâmico [menos preciso] ligado a dois pinos do PIC. Em aplicações onde precisão não é necessária, podemos usar um circuito RC [resistor – capacitor] para gerar as oscilações. Muitos modelos de PIC possuem o recurso de oscilador interno, onde não precisamos ligar componentes externos, porém, a precisão fica entre 1% a 7%. Também podemos simplesmente injetar um sinal de clock de um oscilador independente do PIC. Exemplo de Circuito Oscilador:
  • 7. CRYSTAL OPERATION [OR CERAMIC RESONATOR] [HS, XT OR LP OSC CONFIGURATION] Abaixo segue uma lista identificando os vários 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 aplicação e configuração do clock no PIC será melhor detalhada em Aplicação 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 cerâmico. • HS [High Speed Crystal/Resonator] – para cristais com até 20MHz ou ressonadores com frequências próximas a isto. • HSPLL [High Speed Phase Locked Loop] – multiplica a frequência do cristal por quatro. • ER [External Resistor] – este modo usa apenas um resistor externo ao PIC, utilizando a capacitância intrínseca 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 precisão e a estabilidade não são muito grandes. • INTOSC [Internal Oscillator] – oscilador RC interno que permite que economizemos em componentes e libera os pinos para usar como portas [frequência próxima de 4MHz frequência frequ 4MHz]. • EC [External Clock In] – apenas injetamos um sinal de clock externo no PIC.
  • 8. Os PICs mais modernos possuem o 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. 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 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. Exemplo de programa com calibração do oscilador interno [assembly em C - mikroC for PIC - para PIC16F676 PIC16F676]: void main () { asm { bsf STATUS, RP0 ;Bank 1 call 0x3FF ;Get the cal value movwf OSCCAL ;Calibrate bcf STATUS, RP0 ;Bank 0 } // restante do programa em C [mikroC for PIC]… } Neste exemplo, o valor 3FFh aparece na Datasheet [Especificação fornecida pelo fabricante] para a programação em assembly, porém, 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.
  • 9. 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 próprio site da Microchip [www.microchip.com]. Também 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 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
  • 10. 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. Pipeline Se para efeito de análise dividirmos o processamento interno do PIC em ciclos de busca e execução, podemos afirmar que para cada instrução executada foi necessária a execução prévia de um ciclo de busca. Imagine um sistema que implemente um ciclo de busca e ao mesmo tempo processe um ciclo de execução [Na arquitetura Harvard a leitura de instruções e de alguns tipos de operandos podem ser feitas ao mesmo tempo em que as instruções são executadas]. Isso significa que o sistema fica o tempo todo executando instruções, o que acarreta um significativo ganho de velocidade. Enquanto uma instrução é executada, a seguinte esta sendo lida [Desta forma, no início de cada Ciclo de Máquina haverá uma instrução pronta para ser executada]. Esse processo é conhecido como pipeline [canalização]. No entanto algumas instruções fazem com que este sistema seja desarticulado: são as chamadas instruções de desvio. As instruções de desvio são aquelas que alteram o valor do Program Counter [contador/ponteiro de programa]. Quando ocorre um desvio a instrução que já foi previamente buscada pelo sistema de Pipeline não é válida, pois estava na posição de memória de programa apontada pelo PC antes dele ter seu valor alterado para o destino especificado. Conseqüentemente torna-se necessário a execução de um novo ciclo de busca, que obviamente demandará mais um ciclo de máquina, resultando em um tempo total de processamento igual a dois ciclos de máquinas.
  • 11. TCY0 é lido da memória o código da instrução MOVLW 55h (não nos interessa a instrução que foi executada, por isso não está representada por retângulo). TCY1 TCY1 é executada a instrução MOVLW 55h e é lida da memória a instrução MOVWF PORTB. TCY2 é executada a instrução MOVWF PORTB e lida a instrução CALL SUB_1. TCY3 é executada a chamada [call] de um subprograma CALL SUB_1 e é lida a instrução BSF PORTA, BIT3. Como esta instrução não é a que nos interessa, ou seja, não é a primeira instrução do subprograma SUB_1, cuja execução é o que vem a seguir, a leitura de uma instrução tem que ser feita de novo. Este é um bom exemplo de uma instrução que precisa de mais de um ciclo. TCY4 este ciclo de instrução é totalmente usado para ler a primeira instrução do subprograma no endereço SUB_1. TCY5 é executada a primeira instrução do subprograma SUB_1 e lida a instrução seguinte.
  • 12. [Toda instrução do PIC demanda um Ciclo de Máquina para ser executada, exceto instruções de desvio e salto que demandam dois Ciclos de Máquina] 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 [sinal de sincronismo para coordenar as ações do MCU], consegue trabalhar a 1MIPS [Um Milhão de Instruções por Segundo]. Algumas instruções de desvio e salto, precisam de 2 ciclos de máquina. PICs mais rápidos rodam a 48MHz de clock. Famílias PIC Como os microcontroladores podem ter diferentes configurações de montagem, a divisão dos mesmos em Famílias ou Linhas ou Séries foi realizada para agrupar os MCUs que têm vários componentes, com tamanhos e recursos iguais. Sendo que o código desenvolvido para um componente de uma determinada família é compatível com os demais componentes da mesma família, exceto por algumas pequenas alterações, que se referem principalmente aos periféricos. Cada família tem o seu próprio conjunto de instruções. Assim, para
  • 13. um mesmo fabricante, as famílias guardam uma semelhança entre si, apesar de não serem exatamente iguais. Tanto a linha PIC18 quanto a linha PIC16 são compostas por microcontroladores de oito bits para o endereçamento e barramento de dados. Já o endereçamento e barramento de programa da linha PIC18 contam com dois bits a mais, que a linha PIC16. Fazendo uma comparação, a linha PIC12 e PIC16 tem instruções de 14bits e um conjunto de 35 instruções, com o aumento para 16bits na linha PIC18 o conjunto passa a executar de 75 a 83 instruções [incluídas as 8 instruções de tabela, não disponíveis em todos os modelos], dependendo do modelo do MCU. A família PIC24F / PIC24H é composta por componentes de 16bits [com mais de 140 instruções]. Já a linha dsPIC30F/dsPIC33F traz controladores híbridos de 16bits. A família PIC32MX [com núcleo MIPS] é composta por componentes de 32bits. Existem ainda outras famílias de microcontroladores PIC. Sub-Famílias Devido a grande variedade de opções de dispositivos dentro de uma mesma família, foram criadas as sub-famílias. Os seus componentes se diferenciam em quantidade de memória RAM, quantidade de memória EEPROM de dados [alguns modelos nem possuem], quantidade de memória Flash de programa, número de pinos [18, 28, 40,...], freqüência de clock e periféricos. Dentre os principais periféricos podemos citar os timers, conversores A/D, comparadores analógicos, módulos USART [Porta de Comunicação Serial Assíncrona de RX e TX], módulos MSSP [I2C e SPI master], módulos CCP [Captura – Comparação – PWM], etc. 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 que quer dizer memória OTP [One Time Programmable], F quer dizer Flash [programável
  • 14. 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]. Maiores informações a este respeito podem ser obtidas na Datasheet do microcontrolador. Qual é a capacidade máxima de memória dos PICs? A capacidade máxima de memória da série 16 é de 8kword [8Kbytes ou 8192 posições de memória]. No entanto, devido a limitações impostas pela estrutura das instruções RISC dos PICs, a memória de programa é dividida em blocos ou páginas, cada uma com 2kword ou 2048 posições de memória [PEREIRA, 2004]. A memória de programa é mapeada de forma que cada endereço tenha 8bits ou 1byte. Porém, as instruções armazenadas na memória de programa têm 16 ou 32bits. Assim cada instrução ocupa dois endereços de memória e o PC [Program Counter ou Contador de Programa] ao ser executado incrementa de dois em dois endereços e como o barramento de instrução contem 16bits a leitura dos dois endereços é simultânea, formando assim uma instrução de 16bits para um único acesso [instruções curtas] e 32bits para dois acessos [instruções longas]. Ports Para que o funcionamento dos pinos I/O coincida com a organização a 8 bits, todos eles estão agrupados em PORTs [portas; portos] PORT 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 são as mais comuns]. O agrupamento é semelhante para os registradores de configuração da Port. Este assunto será melhor visualizado em Programando.
  • 15. Por razões práticas, a maioria dos pinos I/O tem várias funções. Se um pino é usado para uma função qualquer, não pode ser usado para outra. sabendo-se quais são os registradores que configuram as diversas funções de um determinado pino é possível e necessário pino desabilitar aquelas que não serão ú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 através 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 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 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 [por exemplo: MAX232]. 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. Interrupções
  • 16. Interrupções são eventos que ocorrem no hardware interno e externo ao PIC [são eventos assíncronos – que podem ocorrer a qualquer momento] que fazem com que a execução do programa seja interrompida [devido ao desvio no processamento] e desviada para uma rotina especial [o destino é o vetor de interrupção] e depois de atendida, retorna ao ponto de parada do programa principal. Uma boa analogia para melhor entendermos o conceito de interrupção é 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 não precisamos verificar a todo instante, se existe ou não alguém na linha, pois quando o ramal é chamado, o telefone toca avisando que existe alguém querendo falar com você. Exemplos de interrupções: • Interrupção externa [Ex.: recebimento de dados na serial]; • Interrupção por mudança de estado [Ex.: mudança de nível em porta – tecla]; • Interrupção por tempo [Ex.: estouro de timers internos]; • Interrupção de final de escrita na EEPROM. A habilitação das interrupções nos PIC segue a seguinte filosofia. Existe uma chave geral [general interrupt enable] e chaves específicas para cada uma das interrupções. Deste modo, se eu quiser habilitar a interrupção de tempo [TMR0] eu devo “setar” o bit da chave geral e também o bit da chave específica [T0IE], ambos presentes no registrador especial INTCON [veja este registrador e suas características na Datasheet do componente MCU que você pretende ter no circuito aplicação].
  • 17. [Analogia gráfica para o registrador INTCON] 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. Timer Não se preocupe muito com a informação sobre Timer e Prescaler [ou ainda Bank0, Bank1, relação destes com posições na EEPROM, e similares], pois, é um conteúdo mais específico e dirigido para uns poucos loucos como eu que se interessam por maiores detalhes e que nem precisam ser levados em consideração 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 não os próximos dois parágrafos não fará muita diferença! O PIC possui internamente um recurso de hardware denominado Timer0. Trata-se de um contador de 8bits incrementado internamente pelo ciclo de máquina ou por um sinal externo [borda de subida ou descida], sendo esta opção feita por software durante a programação. Como o contador possui 8 bits ele pode assumir 256 valores distintos [0 até 255]. Caso o ciclo de máquina seja de 1us, cada incremento do Timer corresponderá a um intervalo de 1us. Caso sejam necessário intervalos de tempos maiores para o mesmo Ciclo de Máquina, utilizamos o recurso de Pre-scale.
  • 18. Prescaler O prescaler é um divisor de frequência programável do sinal que incrementa o Timer0. Quando temos um prescaler de 1:1, cada ciclo de máquina corresponde a um incremento do Timer0 [unidade de Timer0]. Ao alterarmos o prescaler para, por exemplo, 1:4 [os valores possíveis são as potencias de dois até 256], o Timer0 será incrementado uma vez a cada quatro ciclos de máquina. Sleep O modo de operação Sleep foi incluído na família PIC para atender um mercado cada vez maior de produtos que devem funcionar com pilhas ou baterias. Estes equipamentos devem ter um consumo mínimo para que a autonomia seja a máxima. Quando o PIC é colocado em modo Sleep [dormir], através da instrução SLEEP, o consumo passa da ordem de grandeza de mA [mili àmperes] para uA [micro àmperes]. Existem três maneiras de "acordar o PIC": por interrupção externa/estado, estouro de Watchdog ou reinicialização [/MCRL]. Linguagem de programação usual para PICs Os PICs podem ser programados em linguagem assembly ou em linguagem de alto nível como C. Para tanto, é necessário um programa compilador para gerar o código hexadecimal a ser gravado no microcontrolador. A linguagem C é uma linguagem de alto nível e estruturada. Sua sintaxe é simples e portátil, isto é, pode-se usar o mesmo programa em várias plataformas com poucas modificações. C é muito utilizada para a programação de microcontroladores e também tem o poder de interagir com a plataforma em baixo nível podendo incluir códigos em assembly em sua implementação implementação. Estou com um PIC protegido. Como posso ler o programa?
  • 19. 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. Isto é conseguido por fusível de configuração. configuração O que é a palavra ou fusíveis de configuração [Bits de configuração]? 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. Esses recursos se referem a: tipo de usado, programa, oscilador usado proteção de leitura do programa ativação do WDT, proteção de leitura da EEPROM ativação do Brownout, proteção EEPROM, ativação do Master Clear, ativação do Power up timer, seleção do Bandgap, habilitação de gravação por baixa tensão entre tensão, outros. Essa configuração de fusíveis pode ser inserida também no programa fonte e vai aparecer automaticamente no software de gravação Este assunto será detalhado em gravação. Programando. Como gravar o PIC? De posse de um arquivo .hex que contenha os códigos hexadecimais das instruções do programa [Opcode – Código Operacional], 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 [muitos gratuitos]. Também é possível comprar um gravador pronto. FAQ Analógico Como funcionam os conversores Analógico-Digitais dos PICs?
  • 20. 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 40us 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, executa uma ação. 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 é bootloader? bootloader
  • 21. Alguns modelos de PIC podem receber dados externos [ou mesmo internos] e reprogramarem-se [a memória de programa] 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 usam 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 [Os compiladores também possuem rotinas de exponenciação, trigonométricas, logarítmicas, etc além de multiplicação e divisão]. 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. Basicamente ele executa instruções simples de soma e de subtração de 8 bits [inteiros], além das de deslocamento de bits para esquerda ou direita. By AIM