DAC na LPC1768 Imagem 2

Tutorial do DAC LPC1768 | Como usar o DAC no LPC1768 MCU?

cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br


Neste tutorial, mostrarei como usar o DAC no LPC1768 MCU. O DAC é um periférico significativamente menos utilizado de um MCU quando comparado a outros periféricos como UART, Timers, ADC, etc. Não obstante, é bom ter um periférico para produzir sinais analógicos. Neste tutorial do LPC1768 DAC, você pode entender como gerar formas de onda analógicas diferentes usando o DAC no LPC1768.

NOTA IMPORTANTE: Já mencionei isso nos tutoriais anteriores, mas vou repeti-lo em todos os tutoriais do LPC1768. Faça o download da folha de dados e do manual do usuário do LPC1768 MCU no site oficial do NXP. Não posso explicar / discutir cada tópico em detalhes. Você deve procurar o tópico da discussão nesses documentos e coletar informações adicionais.

Introdução

DAC é a abreviação de Digital to Analog Converter. É exatamente o oposto de um ADC (conversor de analógico para digital) e é um dos periféricos mais simples e fáceis de usar de um MCU de braço Cortex-M3.

Os DACs são usados ​​principalmente em equipamentos de áudio como o Music Players para converter os dados digitais em sinais de áudio analógicos. Da mesma forma, existem DACs de vídeo para converter dados de vídeo digital em sinais de vídeo analógicos a serem exibidos em uma tela.

Existem diferentes tipos de implementações de DAC, como DAC de resistor comutado, DAC de escada R – 2R, DAC de aproximação sucessiva etc. Uma das maneiras mais simples de implementar um DAC é usar a funcionalidade PWM de um periférico de timer (se a unidade DAC dedicada não estiver presente).

Semelhante a um ADC, um DAC também tem resolução. Indicou o número de valores possíveis que uma unidade DAC pode produzir entre os extremos de tensão. Por exemplo, um DAC de 8 bits pode produzir 28 isto é, 256 níveis diferentes para uma faixa de tensão.

DAC no LPC1768 MCU

Chegando ao DAC no LPC1768 MCU, ele contém um periférico de DAC de 10 bits baseado na Resistor String Architecture. Pode produzir saída em buffer e a taxa máxima de atualização é de 1 MHz.

Como a resolução do DAC no LPC1768 é de 10 bits, pode produzir 210 valores diferentes entre os níveis de tensão de referência positivo e negativo.

A tensão de saída de um DAC pode ser calculada usando a seguinte fórmula.

DAC na LPC1768 Imagem 2

Onde,

  • VAOUT = Tensão analógica de saída do DAC
  • VREFP = Tensão de referência positiva do DAC
  • VREFN = Tensão de referência negativa do DAC
  • DACVALUE = valor digital de 10 bits, que deve ser convertido em tensão analógica.

Pinos associados ao DAC

Como existe apenas um canal no DAC, apenas um pino de saída do periférico do DAC. Os pinos restantes estão relacionados à energia. A tabela a seguir fornece uma visão geral dos pinos associados ao DAC periférico do LPC1768 MCU.

PIN

Função Descrição
AOUT – P0.26 Saída Analógica

Fornece a tensão de saída analógica com referência ao GND analógico (VSSA)

VREFP, VREFN

Referências de tensão Esses pinos fornecem as tensões de referência positiva e negativa para DAC e ADC. 3.3V e 0V geralmente isolados.
VDDA, VSSA Potência analógica e GND

Igual a VDD e VSS mas isolado para minimizar o ruído.

Registradores DPC LPC1768

Vamos agora ver os registros associados ao DAC de LPC1768. Existem totalmente três registros para o DAC no LPC1768. Eles são DACR, DACCTRL e DACCNTVAL. Os registros DACCTRL e DACCNTVAL estão associados às operações de DMA no DAC. Então, vamos nos concentrar no DACR, ou seja, no Registro do conversor D / A.

cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br

Registro do conversor DACR – D / A: contém o valor digital que deve ser convertido em valor analógico. Além disso, este registro contém um pouco de uma troca entre potência e desempenho.

Bits [15:6]

VALOR

Esses bits contêm o valor digital (DACVALUE) que deve ser convertido em valor analógico (VAOUT) com base na fórmula mencionada anteriormente.

Mordeu [16] VIÉS

Quando 0, o tempo de acomodação do DAC é de 1 µS (a taxa de atualização é de 1 MHz), a corrente máxima é de 700 µA.

Quando 1, o tempo de acomodação do DAC é de 2,5 µS (a taxa de atualização é de 400 kHz), a corrente máxima é de 350 µA.

Exemplo

Vamos agora ver um programa de exemplo simples para usar o DAC no LPC1768 MCU. Se as operações de DMA não forem usadas, a programação do DAC periférico é muito simples. Basta configurar o pino P.026 como AOUT e carregar o valor digital de 10 bits no registro DACR. Você receberá o valor analógico convertido como saída.

Não há pino de controle de energia para o DAC no LPC1768, em contraste com a maioria dos outros periféricos. Para habilitar o DAC Peripheral, tudo o que você precisa fazer é configurar o pino relevante como DACOUT, ou seja, fazer P0.26 como AOUT.

Outra propriedade importante do DAC são suas tensões de referência. Geralmente, o VREFP está conectado a 3.3V (isolado do V principalDD) e o VREFN está conectado a 0V (também isolado do V principalSS)

Se usarmos os valores de tensão de referência acima, a saída do DAC no pino AOUT pode ser calculada usando a seguinte fórmula:

DAC na LPC1768 Imagem 1

Portanto, simplesmente escrevendo um valor de 10 bits, ou seja, entre 0 e 1023 nos bits VALUE do registro DACR, você pode obter uma tensão analógica entre 0V e 3,3V.

Outro fator importante do DAC é a troca entre potência e desempenho. Neste exemplo, usaremos o menor tempo de acomodação possível, isto é, 1 µS, configurando o bit BIAS no registro DACR como 0. Isso significa que a frequência de atualização da saída DAC é de 1 MHz.

Código

#incluir
void Timer0_Init (void);
atrasos nulos (não assinados em milissegundos);
int main (vazio)
{
Timer0_Init ();
LPC_PINCON-> PINSEL1 | = (1 << 21);
valor int não assinado = 0;
enquanto (1)
{
if (valor> 1023)
{
valor = 0;
}
LPC_DAC-> DACR = (valor << 6);
atrasos (10);
valor ++;
}
}

void Timer0_Init (void)
{
LPC_TIM0-> CTCR = 0x0;
LPC_TIM0-> PR = 25000-1;
LPC_TIM0-> TCR = 0x02;
}

atrasos nulos (não assinados em milissegundos)
{
LPC_TIM0-> TCR = 0x02;
LPC_TIM0-> TCR = 0x01;
while (LPC_TIM0-> TC
LPC_TIM0-> TCR = 0x00;
}

Eu usei o Timer0 periférico para gerar o atraso desejado. Então, confira o meu Tutorial sobre o temporizador LPC1768.

Conclusão

Um tutorial simples sobre como usar o DAC no LPC1768 MCU é explicado aqui. Usando o DAC Peripheral, você pode gerar formas de onda analógicas diferentes, como onda quadrada, onda sinusoidal, onda de dente de serra etc.

cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br
Leia Também  Concessão tarifária concedida a produtos eletrônicos de consumo