Mini curso sobre AT89C2051 e AT89C4051 , 8051 - Parte 1


    Nestes posts, vou falar sobre dois microcontroladores da Atmel, os quais conheço muito bem, são da família com a CPU e periféricos Intel MCS51 .
    Esta linha de microcontroladores é bastante antiga, de 1980, mas na década seguinte, a Atmel lançou sua linha 8051, onde estes dois micros que vamos tratar tem memória flash e algumas modificações no conceito original.

     Quando alguém precisa de um projeto meu ,e este necessita de um micro com custo baixo e, ao mesmo tempo facilidade de encontrar no mercado, fator que muitas vezes é crucial para empresas pequenas, que não podem arcar com custos de estocagem de milhares de peças e importação e além disso é preciso um micro com poucas I/O's digitais, os dois AT89c4051 e AT89c2051, poderão ser escolhidos.

     Apesar disso, em contraste com a linha de CPU AVR da Atmel, esta linha em específico não é muito amigável ao hobbista, tendo em vista de que, sua programação não é feita por ISP ,mas com a facilidade de se importar um programador desses por menos de 30 dólares, isto se torna um problema bem menor.

     Tenho visto esse micro com muita frequencia nos produtos em que me deparo, assim como os AVR, mas alguns detalhes deste chamam a atenção, como o fato de não se precisar de resistor para se ligar LED's, o que pode ser mal interpretado ao se ver um projeto pronto, mais uma vez isso ajuda a diminuir os custos.

     Outra vantagem desse micro são a tensão de operação, de, no mínimo 2.7V, ou seja, pode ser usado com baterias de Li-Ion sem a necessidade de se adicionar um Charge pump ou conversor boost para elevar a tensão.
     Mas há algumas desvantagens nestes dois em específico, como por exemplo o fato de que a maioria das instruções tem busca e execução de 12 ciclos de clock, muito acima da linha AVR com um único ciclo, porém, algo diferente é que eles suportam clock de até 24MHz, o que acaba compensando isto um pouco.

     Por outro lado, esta CPU tem um conjunto de instrução muito bom, com vários métodos de endereçamento de memória, instruções da ALU com carry, borrow, e também as indispensáveis instruções de multiplicação e divisão, que, por incrível que pareça não são encontradas em todos os micros por aí, além destas, há instruções pouco usadas, mas que quando necessárias são uma mão na roda, como a de ajuste decimal do acumulador, a qual tive que usar muitas vezes nos Motorola MC6800

    Quanto ao endereçamento, o que difere ele da maioria dos micros AVR novos, é a possibilidade do 8051 endereçar memória SRAM externa, além da FLASH interna ou ROM interna ou externa, porém nestes dois micros isto não é possível, como se pode ver na figura não há tantos pinos assim para se realizar um endereçamento de memória, mas isto é possível em outros modelos de 8051 Atmel.

    Enfim, este é um set de instruções extremamente completo, ao contrários de certos quase micros por aí, o que o torna um micro onde, se corretamente escrito, um programa em linguagem C pode ficar compacto e muito mais fácil de ser debugado, esta CPU não foi otimizada para isto como a AVR, mas também leva vantagem sobre as RISC com meia dúzia de instruções.

     Outra desvantagem destes dois micros são o fato de não possuir um conversor AD ,porém há um comparador de tensão, que muitas vezes soluciona o problema, além disso, tudo nele é muito fácil de usar, os registros dos periféricos exigem poucas configurações para a operação, o que , no meu caso foi muito bom, já que a linha Atmel 8051 foi a primeira em que tive contato. 

      A complexidade na CPU contrasta completamente com estes periféricos simples, mas, como a programação nestes posts será feita em C, onde o Assembly é necessário, na maioria das vezes para conferência, otimização e debugging, isto torna o aprendizado muito mais rápido e eficiente.   

      Por enquanto é só, comentem!!!

      Em caso de dúvidas sobre as siglas, leia as páginas com links que estão nas palavras!

0 comentários:

Postar um comentário