Como em muitos outros campos da atividade humana, também no caso dos microcontroladores existem termos frequentemente usados e consensualmente admitidos em  alguma opinião (a partir dos quais outras definições e noções são criadas). Assim, o correto entendimento de ideias base, permitem aprender, mais facilmente, outras ideias.

 

 

Microcontrolador

 

É um microprocessador com vários periféricos num único componente eletrônico.

 

 

Pino de Entrada/Saída (I/O)

Pino de ligação externa do microcontrolador, que pode ser configurado como entrada ou saída.

Na maioria dos casos, o pino de entrada e saída permite ao microcontrolador comunicar, controlar ou ler informação.

 

 

Software

 

E a Informação de que o microcontrolador necessita, para poder funcionar.

O software não pode apresentar quaisquer erros se quisermos que o programa e o dispositivo funcionem como deve ser.

O software pode ser escrito em diversas linguagens tais como: Basic, C, Pascal ou assembler.

Fisicamente é um arquivo guardado no disco do computador e que transferimos para o PIC.

 

 

Hardware

 

São todos os componentes e informações  ligados ao microcontrolador.

Um outro modo de ver isto (especialmente se não  funcionar) é que hardware é aquilo  que se pode desligar!

 

 

Simulador

 

Pacote de software necessário em um PC para simular o funcionamento interno do microcontrolador.

É o instrumento ideal para verificar as rotinas de software e todas as variações do código que não implicam ligação com o mundo exterior.

Existem opções para observar o código quando nos rodamos o programa para trás e para a frente ou passo-a-passo e para detecção de erros.

 

 

ICE

 

ICE (In Circuit Emulator) ou emulador interno, é um utensílio bastante útil que se liga entre o PC (não é o microcontrolador) e o dispositivo que estamos desenvolvendo. Isto permite, ao software, correr no computador PC,  como se fosse um microcontrolador real que estivesse inserido no dispositivo. O ICE, possibilita que nos desloquemos através do programa, em tempo real, para observar o que se está a passar dentro do microcontrolador e como este comunica-se com o mundo exterior.

 

 

Emulador de EPROM

 

Um Emulador de EPROM, é um dispositivo que não emula o microcontrolador por completo (como no caso do ICE), mas apenas em sua memória.

É mais frequentemente usado nos microcontroladores que possuem memória externa.

Usando um emulador de Eprom, nós evitamos ter sempre que escrever e apagar a memória EPROM.

 

 

Assembly e Assembler

 

Assembly é uma linguagem de programação que serve para fazer programas.

Os programas são escritos em forma de texto: usando um editor de texto criamos o chamado código fonte.

Este código fonte é transformado pelo compilador e pelo linker em um programa executável.
Muitas vezes ouvimos "linguagem assembler".

Apesar de doer o ouvido este é um erro muito difundido.

A verdade é que, Assembly é o nome da linguagem e Assembler é o programa ou pacote de software que traduz o código fonte em código que o microcontrolador pode compreender.

Uma parte deste software, destina-se também, à detecção dos erros cometidos, ao escrever o programa.


 

 

 

Arquivo HEX

 

Arquivo criado pelo tradutor assembler, quando traduz um arquivo fonte  que está num formato que é entendido pelos microcontroladores.

Este ficheiro aparece normalmente sob a forma Nome_arquivo.HEX, daqui deriva a designação de “arquivo hex".

 

 

Arquivo LIST

 

Trata-se de um arquivo produzido pelo tradutor assembler, que contém todas as instruções do arquivo fonte, o código destino e os respectivos endereços e, ainda, os comentários que o programador escreveu.

É um arquivo muito útil para detectar os erros no programa.

Este ficheiro tem a extensão LST, daqui provém a sua designação.

 

 

Arquivo Fonte (Source File)

 

Arquivo escrito em linguagem perceptível pelos humanos e pelo tradutor assembler.

Também chamado de código fonte .

A tradução do arquivo fonte produz os arquivos HEX e LIST.

 

 

Detecção de erros (Debugging)

 

Ao escrever um programa, nós cometemos erros  que não nos apercebemos.

Estes erros podem ser muito simples como é o caso de erros tipográficos, ou erros complexos como os que advêm do uso incorreto da linguagem de programação.

O assembler é capaz de descobrir a maioria destes erros e mencioná-los no ficheiro ‘.LST’.

Outros erros, só podem ser descobertos, experimentando e observando o funcionamento do dispositivo.

 

 

Memória: ROM, EPROM, EEPROM, FLASH, RAM

 

São dispositivos capazes de armazenar informações digitais.

A menor unidade de informação que pode ser armazenada é o bit.

Outros tipos de agrupamentos também são muito usuais quando se trata de memória, são eles:

Bit à “0” ou “1”.
Nibble à agrupamento de 4 bits.
Byte à agrupamento de 8 bits ou 2 nibble.
Word à agrupamento de 16 bits ou 2 bytes ou 4 nibble.

 

 

TIPOS DE MEMÓRIAS

 

 

Memórias Não-Voláteis

 

Caracterizam- se por não perder os dados gravados ao cessar-se a alimentação elétrica. São  usadas portanto  para  registro  de dados por um tempo mais longo e que não necessitem de  atualização constante.

 

TIPOS DE MEMÓRIA ROM

1.  ROM é uma memória somente de leitura, ou seja, os dados são armazenados no processo de fabricação, não permitindo nova gravação, não pode ser limpa, aquilo que se escreve nela, permanece para sempre e nunca mais pode ser apagado.

 

2.  PROM é  uma  ROM  que  é fornecida virgem para o comprador. Este então deve utilizar um equipamento especial para gravar na PROM os dados desejados. A gravação é feita de uma só vez, para toda a capacidade da PROM, e uma vez realizada, não pode mais ser desfeita. A PROM tampouco perde seu conteúdo na ausência de uma fonte de eletricidade. A gravação é feita através da circulação de uma corrente elétrica que rompe o fusível onde deseja-se armazenar o nível lógico “0”.

 

3.  EPROM é uma PROM que pode ter seus dados apagados e reutilizados. O processo de  apagamento consiste na exposição das células de memória a raios ultravioleta. Por isso, que estas memórias são dotadas de uma “janela” de quartzo.

 

4.  EEPROM ou E2PROM é uma ROM programável pelo usuário e que pode ser apagada e reprogramada repetidamente através da aplicação de uma tensão mais elevada  que  a  tensão  normal  de  operação.  Diferentemente  das  EPROM’s,  as EEPROM’s não precisam ser removidas do equipamento ou computador para ser modificadas. Entretanto, o apagamento e reprogramação tem de ser feito para todo o  conteúdo  da  EEPROM,  e  não  seletivamente.  O  processo  de  apagamento  e reprogramação tem um número limitado, tipicamente da ordem de dezenas ou centenas de milhares de vezes, ao fim do qual a EEPROM chega ao fim de sua vida útil e deve ser substituída.

pode ser apagada eletricamente usando a tensão a que o microcontrolador funciona.

 

5.  FLASH ROM

 A  memória  Flash  é  um  tipo  de  memória  não-volátil  (por  ser constantemente alimentada por uma bateria), que pode ser apagada e regravada em unidades de memória chamadas  blocos. É uma variação da EEPROM que, diferentemente  da  memória  Flash,  é  apagada  e  reescrita  byte  por  byte,  um processo mais lento que o feito em blocos. A memória Flash usa tensões usuais do equipamento para apagamento e reprogramação

 

 

 

 

Memórias Voláteis

Usualmente chamadas de RAM’s

(Random Access Memory),  são caracterizadas  por reter os dados gravados enquanto a eletricidade   é fornecida   a   elas. Assim que o fornecimento cessa, os dados  são perdidos.  A escrita ou leitura a qualquer posição de memória leva o mesmo  tempo. As memórias SRAM dividem-se basicamente em RAM’s estáticas e RAM’s dinâmicas.

 

TIPOS DE MEMÓRIA RAM

 

1.  SRAM

a memória SRAM armazena bits em células  de  tipo  flip-flop,  que  retém  a  informação até que  esta  seja  alterada, diferentemente  das  RAM’s  dinâmicas,  que  utilizam  células compostas  de  um capacitor e um transistor. Como o capacitor perde sua carga em um determinado tempo, as RAM’s dinâmicas têm de ter seu conteúdo periodicamente restabelecido, numa operação chamada refresh.

As SRAM são muito mais rápidas que as  RAM’s dinâmicas, e por isto mesmo mais caras.  São usadas  na  memória    cache  de  um  computador,  uma  memória especializada  que serve  de  intermediária  entre  os  bancos  principais  de  RAM dinâmica e o microprocessador. A  cache, tipicamente de tamanho na faixa de 64Kbytes  a  2Mbytes, replica  dados  dos  bancos  principais  de  RAM  dinâmica, permitindo que o microprocessador ou CPU colete diretamente na cache os dados, sem precisar buscá-los na RAM dinâmica, mais lenta. O seu alto custo é o motivo principal  pelo  qual  os  bancos principais  de  RAM  de  um  computador  não  são confeccionados todos em SRAM.

 

2.  DRAM (Dinamic Random Access Memory):

As memórias DRAM são o tipo mais comum de RAM para uso em computadores pessoais ou de maior porte. A DRAM é dinâmica porque, ao contrário da SRAM, precisa restabelecer o conteúdo de suas células de armazenamento periodicamente (na faixa de  milissegundos ex.: 32 ms), no processo chamado refresh. A SRAM é isenta de refresh pois as células de memórias consistem em flip-flop’s, ao invés de uma célula de armazenamento que mantém uma carga, como o capacitor. Esta célula é composta de um capacitor da ordem de fento faraday (10-15). O refresh consiste em percorrer todas as linhas da memória. Por exemplo, uma memória de 4Mbit possui 2048 linhas e 2048 colunas. Vamos supor que o tempo de acesso desta memória seja de 100ns, então para acessar todas as linhas são necessário 0,2ms (2048 linhas x 100ns = 0,2ms), como o tempo máximo entre um refresh e outro é de 32ms, restam 31,8ms para uso da memória.

 

3.  FPM-RAM

Este tipo de memória guarda o valor da última linha acessada, portanto, para os próximos dados acessados na mesma linha, o controlador de memória não precisará enviar à memória o valor da linha, somente o da coluna. Com isso,  o acesso seqüencial é mais rápido. O primeiro dado acessado demorará o tempo normal, mas o acesso aos demais dados da mesma linha será mais rápido.

 

4.  EDO-RAM

A EDO RAM também trabalha com acesso seqüenciais, com a diferença que acontecem de forma mais rápida. Isto foi possível com a adição de um latch na saída de dados.

 

5.  BEDO-RAM (Burst Extended Data Out) RAM

A memória BEDO é muito parecida com a memória EDO, porém na BEDO ao invés de informar a LINHA COLUNA COLUNA COLUNA, é necessário apenas informar a LINHA COLUNA e as colunas seguintes são geradas automaticamente.

 

6.  SDRAM (Synchronous Dynamic RAM)

A SDRAM, além de ser sincronizada pelo clock do barramento, também tem um contador interno que faz com que o controlador de memória não precise requisitar novos dados, caso eles sejam consecutivos, e principalmente, possui duas  matrizes  de  capacitores,  fazendo  com  que  seja  possível  dois acessos  a endereços diferentes serem iniciados em paralelo. O acesso à memória SDRAM  é feito através de comandos, tornando-se uma memória mais "inteligente" do que as demais.

 

7.  DDR-RAM (Doubled Data Rate RAM)

A memória DDR é uma SDRAM com a taxa de dados dobrada. Ela trabalha com duas  memórias  SDRAM  em  paralelo,  permitindo  assim  dobrar  a  taxa  de transferência de dados. Ela é capaz de entregar dois dados por cada ciclo de clock, um sincronizado pela borda de subida e outro pela borda de descida.

 

As memórias são compostas por três conjuntos de fios, ou seja, três barramentos, são eles:

Barramento  de  Endereço  é o  conjunto  de  fios  por  onde  são  acessados  os endereços dos dados armazenados.

O barramento de endereço é unidirecional, ou seja, a informação trafega apenas em um sentido (entrada).

 

Barramento  de  Dados  à  conjunto  de  fios  por  onde  os  dados  trafegam.  O barramento  de  dados  pode  ser  bidirecional  (a  informação  pode  trafegar  num sentido ou no outro – entrada/saída) ou unidirecional.

 

Sinais de Controle à conjunto de fios que indicam se a memória está selecionada

(CS Chip Select), se é um processo de escrita (WR Write), de leitura (RD Read) ou OE (Output Enable – habilita a saída do dado o mesmo que RD).

 

 

Endereçamento

 

Determina e designa o local da memória onde ficara gravado a informação.

 

 

ASCII

 

Abreviatura para “American Standard Code for Information Interchange” – código standard americano para troca de dados. 

É largamente utilizado e, em particular, atribui a cada caracter alfanumérico (letra ou número) um código de oito bits.

 

 

Carry

 

Bit de transferência, associado às operações aritméticas.

 

 

Código

 

Arquivo ou parte do arquivo que contém as instruções do programa.

 

 

Byte, Kilobyte, Megabyte

 

Termos relacionados com quantidades de informação.

A unidade básica é o byte que corresponde a 8 bits.

Um kilobyte são 1024 bytes e um megabyte tem 1024 kilobytes.

 

 

Flag  (veja mais)

 

A tradução literal de "flag" é bandeira.

Não é à toa que as "flags" do processador receberam este nome pois funcionam como sinalizadores.

Manteremos o nome flag e não usaremos nenhum tipo de tradução porque esta denominação já foi incorporada ao "cotidiano"  e não vale a pena discutir.
As flags são apenas um bit de memória e se localizam dentro do processador.

Como cada flag é apenas um bit, num dado momento elas só podem ser 1 ou 0 ("setada" ou "zerada").

Existem seis flags usadas para indicar o resultado de certas instruções.

Algumas instruções como CMP, TEST e BT não fazem outra coisa a não ser alterar algumas destas flags. Outras instruções realizam outras operações além de alterar algumas das flags.

Algumas instruções simplesmente não alteram as flags.

Na descrição dos mneumônicos das instruções geralmente são citadas as flags que são alteradas.
Um uso comum das flags é o de desviar a execução para um ponto em particular do código usando instruções de salto condicional.

Estas instruções farão o salto ou não dependendo do estado de uma ou mais flags.

Apenas cinco das flags podem ser usadas deste modo - zero, sinal, carry, overflow e paridade.

A sexta flag (carry auxiliar) e a sétima flag (flag de direção) são lidas por outro tipo de instrução.

A seguir estão informações adicionais a respeito das cinco flags que podem ser usadas por saltos condicionais:
 

 

 

 

 

Vetor de interrupção ou interrupções

 

Local na memória do microcontrolador.

Desta localização o microcontrolador retira informação sobre uma seção do programa que vai ser executada em resposta a um acontecimento de interesse para o programador e dispositivo.

 

 

Programador

 

Dispositivo que torna possível escrever software na memória do microcontrolador, possibilitando, assim, que o microcontrolador funcione autonomamente. Compreende uma seção de hardware, normalmente ligada a um dos portos do microcontrolador e uma parte de software sob a forma de um programa que corre num computador PC.

 

USART:

Universal Synchronous/Asynchronous Receiver/Transmitter - Chip ou circuito utilizado para interfacial equipamentos digitais, utilizando tanto comunicação serial síncrona quanto assíncrona.
  

 

 

© C o p y r i g h t  2 0 0 5  Nova Eletrônica Reservados todos os direitos. Para comentários contate o  webmaster.