SlideShare ist ein Scribd-Unternehmen logo
1 von 21
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

Weitere ähnliche Inhalte

Was ist angesagt?

Programando os Microcontroladores PIC
Programando os Microcontroladores PICProgramando os Microcontroladores PIC
Programando os Microcontroladores PICFabio Souza
 
Sistemas embarcados: motivação e primeiros passos
Sistemas embarcados: motivação e primeiros passosSistemas embarcados: motivação e primeiros passos
Sistemas embarcados: motivação e primeiros passosMarcelo Barros de Almeida
 
Palestra PET.Com - Sistemas Embarcados
Palestra PET.Com - Sistemas EmbarcadosPalestra PET.Com - Sistemas Embarcados
Palestra PET.Com - Sistemas EmbarcadosPET Computação
 
10 apostila microcontroladores
10  apostila microcontroladores10  apostila microcontroladores
10 apostila microcontroladoresAlyson Cavalcante
 
Curso microcontroladores pic no mp lab 8
Curso microcontroladores pic no mp lab 8Curso microcontroladores pic no mp lab 8
Curso microcontroladores pic no mp lab 8RogerMasters
 
Microcontroladores pic ling c unicamp
Microcontroladores pic ling c unicampMicrocontroladores pic ling c unicamp
Microcontroladores pic ling c unicampFrancisco Fambrini
 
Programação básica de microcontroladores
Programação básica de microcontroladoresProgramação básica de microcontroladores
Programação básica de microcontroladoresDanilo Morais Pagano
 
Bootloader: Teoria de operação e implementação via USB para PIC
Bootloader: Teoria de operação e implementação via USB para PICBootloader: Teoria de operação e implementação via USB para PIC
Bootloader: Teoria de operação e implementação via USB para PICDaniel Rodrigues de Sousa
 
Embarcados - Ao arduino e além
Embarcados - Ao arduino e alémEmbarcados - Ao arduino e além
Embarcados - Ao arduino e alémFabio Souza
 
PLCduino - A PLC using Arduino platform
PLCduino - A PLC using Arduino platformPLCduino - A PLC using Arduino platform
PLCduino - A PLC using Arduino platformRenato Mintz
 
Material Auxiliar Para Curso BáSico Msp430 55 A 98
Material Auxiliar Para Curso BáSico Msp430   55 A 98Material Auxiliar Para Curso BáSico Msp430   55 A 98
Material Auxiliar Para Curso BáSico Msp430 55 A 98Texas Instruments
 
Palestra FLISOL 2013 - Java + Arduino + Raspberry PI = Uma combinação perfeita
Palestra FLISOL 2013 - Java + Arduino + Raspberry PI = Uma combinação perfeitaPalestra FLISOL 2013 - Java + Arduino + Raspberry PI = Uma combinação perfeita
Palestra FLISOL 2013 - Java + Arduino + Raspberry PI = Uma combinação perfeitaWaelson Negreiros Nunes
 

Was ist angesagt? (20)

Programando os Microcontroladores PIC
Programando os Microcontroladores PICProgramando os Microcontroladores PIC
Programando os Microcontroladores PIC
 
Sistemas embarcados: motivação e primeiros passos
Sistemas embarcados: motivação e primeiros passosSistemas embarcados: motivação e primeiros passos
Sistemas embarcados: motivação e primeiros passos
 
Palestra PET.Com - Sistemas Embarcados
Palestra PET.Com - Sistemas EmbarcadosPalestra PET.Com - Sistemas Embarcados
Palestra PET.Com - Sistemas Embarcados
 
10 apostila microcontroladores
10  apostila microcontroladores10  apostila microcontroladores
10 apostila microcontroladores
 
Curso microcontroladores pic no mp lab 8
Curso microcontroladores pic no mp lab 8Curso microcontroladores pic no mp lab 8
Curso microcontroladores pic no mp lab 8
 
Seminario pic
Seminario picSeminario pic
Seminario pic
 
Processadores intel 4000 a 4004
Processadores intel 4000 a 4004Processadores intel 4000 a 4004
Processadores intel 4000 a 4004
 
Microcontroladores pic ling c unicamp
Microcontroladores pic ling c unicampMicrocontroladores pic ling c unicamp
Microcontroladores pic ling c unicamp
 
Arm Cortex
Arm CortexArm Cortex
Arm Cortex
 
Programação básica de microcontroladores
Programação básica de microcontroladoresProgramação básica de microcontroladores
Programação básica de microcontroladores
 
Processadores intel 8008 e 8080
Processadores intel 8008 e 8080Processadores intel 8008 e 8080
Processadores intel 8008 e 8080
 
Apostila cpic
Apostila cpicApostila cpic
Apostila cpic
 
SDAC MODULO 7
SDAC MODULO 7SDAC MODULO 7
SDAC MODULO 7
 
Bootloader: Teoria de operação e implementação via USB para PIC
Bootloader: Teoria de operação e implementação via USB para PICBootloader: Teoria de operação e implementação via USB para PIC
Bootloader: Teoria de operação e implementação via USB para PIC
 
Existe vida após o Arduino?
Existe vida após o Arduino?Existe vida após o Arduino?
Existe vida após o Arduino?
 
Embarcados - Ao arduino e além
Embarcados - Ao arduino e alémEmbarcados - Ao arduino e além
Embarcados - Ao arduino e além
 
PLCduino - A PLC using Arduino platform
PLCduino - A PLC using Arduino platformPLCduino - A PLC using Arduino platform
PLCduino - A PLC using Arduino platform
 
Material Auxiliar Para Curso BáSico Msp430 55 A 98
Material Auxiliar Para Curso BáSico Msp430   55 A 98Material Auxiliar Para Curso BáSico Msp430   55 A 98
Material Auxiliar Para Curso BáSico Msp430 55 A 98
 
Arduino
ArduinoArduino
Arduino
 
Palestra FLISOL 2013 - Java + Arduino + Raspberry PI = Uma combinação perfeita
Palestra FLISOL 2013 - Java + Arduino + Raspberry PI = Uma combinação perfeitaPalestra FLISOL 2013 - Java + Arduino + Raspberry PI = Uma combinação perfeita
Palestra FLISOL 2013 - Java + Arduino + Raspberry PI = Uma combinação perfeita
 

Andere mochten auch

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 MikroCFabio 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 DigitaisFabio Souza
 
Apostila pic 16f877
Apostila pic 16f877Apostila pic 16f877
Apostila pic 16f877Luciano Zica
 
Preguntas frecuentes de mercosur
Preguntas frecuentes de mercosurPreguntas frecuentes de mercosur
Preguntas frecuentes de mercosurManuel Bedoya D
 
Dismenorrea y síndrome premenstrual
Dismenorrea y síndrome premenstrualDismenorrea y síndrome premenstrual
Dismenorrea y síndrome premenstrualEmmanuel Solorza
 
Project charter trackit
Project charter trackitProject charter trackit
Project charter trackitCahya Adhi
 
Market Potential of Home Automation
Market Potential of Home AutomationMarket Potential of Home Automation
Market Potential of Home AutomationDinna Dsouza
 

Andere mochten auch (15)

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
 
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
 
Apostila pic 16f877
Apostila pic 16f877Apostila pic 16f877
Apostila pic 16f877
 
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
 
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
 
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
 
Project charter trackit
Project charter trackitProject charter trackit
Project charter trackit
 
Tabela de conversao
Tabela de conversaoTabela de conversao
Tabela de conversao
 
Market Potential of Home Automation
Market Potential of Home AutomationMarket Potential of Home Automation
Market Potential of Home Automation
 
FAMILIA MICROCONTROLADORES
FAMILIA MICROCONTROLADORESFAMILIA MICROCONTROLADORES
FAMILIA MICROCONTROLADORES
 

Ähnlich wie História e características dos Microcontroladores PIC em

Pcs2031 projeto01 introducao_pic_v4
Pcs2031 projeto01 introducao_pic_v4Pcs2031 projeto01 introducao_pic_v4
Pcs2031 projeto01 introducao_pic_v4Flávia Martins
 
Arquitetura de computadores Módulo 4
Arquitetura de computadores Módulo 4Arquitetura de computadores Módulo 4
Arquitetura de computadores Módulo 4Luis Ferreira
 
Trabalho sobre processadores
Trabalho sobre processadoresTrabalho sobre processadores
Trabalho sobre processadoresTiago
 
3b5d17 748a8b99e224a1bf91f42123e5388634
3b5d17 748a8b99e224a1bf91f42123e53886343b5d17 748a8b99e224a1bf91f42123e5388634
3b5d17 748a8b99e224a1bf91f42123e5388634JADSON 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.pptxAntonioCarlos349007
 
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 ComputadoresJorge Ávila Miranda
 
Microcontroladores x microprocessadores
Microcontroladores x microprocessadoresMicrocontroladores x microprocessadores
Microcontroladores x microprocessadoresmiroslayer
 
Arquitetura de Microcontroladores Microchip PIC
Arquitetura de Microcontroladores Microchip PICArquitetura de Microcontroladores Microchip PIC
Arquitetura de Microcontroladores Microchip PICAlexandre Brandão Lustosa
 
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 completapanelada
 
Microcontroladores PIC.pptx
Microcontroladores PIC.pptxMicrocontroladores PIC.pptx
Microcontroladores PIC.pptxfmtpereira
 
Apresentação pic
Apresentação picApresentação pic
Apresentação picSaddam Lande
 
Pic apostila
Pic apostilaPic apostila
Pic apostilamoschen
 

Ähnlich wie História e características dos Microcontroladores PIC em (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
 
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
 
Pic apostila
Pic apostilaPic apostila
Pic apostila
 

Kürzlich hochgeladen

Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfRecomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfFrancisco Márcio Bezerra Oliveira
 
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...IsabelPereira2010
 
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfLeloIurk1
 
Historia da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdfHistoria da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdfEmanuel Pio
 
A QUATRO MÃOS - MARILDA CASTANHA . pdf
A QUATRO MÃOS  -  MARILDA CASTANHA . pdfA QUATRO MÃOS  -  MARILDA CASTANHA . pdf
A QUATRO MÃOS - MARILDA CASTANHA . pdfAna Lemos
 
Discurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptxDiscurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptxferreirapriscilla84
 
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfProjeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfHELENO FAVACHO
 
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de..."É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...Rosalina Simão Nunes
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...azulassessoria9
 
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEMPRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEMHELENO FAVACHO
 
Slides sobre as Funções da Linguagem.pptx
Slides sobre as Funções da Linguagem.pptxSlides sobre as Funções da Linguagem.pptx
Slides sobre as Funções da Linguagem.pptxMauricioOliveira258223
 
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfplanejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfmaurocesarpaesalmeid
 
About Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de HotéisAbout Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de Hotéisines09cachapa
 
o ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdfo ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdfCamillaBrito19
 
CRUZADINHA - Leitura e escrita dos números
CRUZADINHA   -   Leitura e escrita dos números CRUZADINHA   -   Leitura e escrita dos números
CRUZADINHA - Leitura e escrita dos números Mary Alvarenga
 
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdfPROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdfHELENO FAVACHO
 
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdfLeloIurk1
 
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....LuizHenriquedeAlmeid6
 
Bloco de português com artigo de opinião 8º A, B 3.docx
Bloco de português com artigo de opinião 8º A, B 3.docxBloco de português com artigo de opinião 8º A, B 3.docx
Bloco de português com artigo de opinião 8º A, B 3.docxkellyneamaral
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...azulassessoria9
 

Kürzlich hochgeladen (20)

Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfRecomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
 
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
 
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
 
Historia da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdfHistoria da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdf
 
A QUATRO MÃOS - MARILDA CASTANHA . pdf
A QUATRO MÃOS  -  MARILDA CASTANHA . pdfA QUATRO MÃOS  -  MARILDA CASTANHA . pdf
A QUATRO MÃOS - MARILDA CASTANHA . pdf
 
Discurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptxDiscurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptx
 
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfProjeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
 
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de..."É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
 
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEMPRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
 
Slides sobre as Funções da Linguagem.pptx
Slides sobre as Funções da Linguagem.pptxSlides sobre as Funções da Linguagem.pptx
Slides sobre as Funções da Linguagem.pptx
 
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfplanejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
 
About Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de HotéisAbout Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de Hotéis
 
o ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdfo ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdf
 
CRUZADINHA - Leitura e escrita dos números
CRUZADINHA   -   Leitura e escrita dos números CRUZADINHA   -   Leitura e escrita dos números
CRUZADINHA - Leitura e escrita dos números
 
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdfPROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
 
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
 
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
 
Bloco de português com artigo de opinião 8º A, B 3.docx
Bloco de português com artigo de opinião 8º A, B 3.docxBloco de português com artigo de opinião 8º A, B 3.docx
Bloco de português com artigo de opinião 8º A, B 3.docx
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
 

História e características dos Microcontroladores PIC em

  • 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