Nesse post vou mostrar como fazer o acesso ao conversor AD MCP3421 da Microchip.

No meu caso estava com o MCP3421A1T-E/CH que ao ver no datasheet encontrei a informação que esse chip vem endereçado de fabrica, podendo ser comprado em com vários endereços seguindo a seguinte tabela.

Part Number – Address Option – Code on package
MCP3421A0T-E/CH – A0 (000) – CANN
MCP3421A1T-E/CH – A1 (001) – CBNN
MCP3421A2T-E/CH – A2 (010) – CCNN
MCP3421A3T-E/CH – A3 (011) – CDNN
MCP3421A4T-E/CH – A4 (100) – CENN
MCP3421A5T-E/CH – A5 (101) – CFNN
MCP3421A6T-E/CH – A6 (110) – CGNN
MCP3421A7T-E/CH – A7 (111) – CHNN

Esse componente tem comunicação I2C, e pode ser configurado para trabalhar em 18, 16, 14 e 12 bits, configuráveis.

Segue o código de como fazer esse acesso no MikroC.

Lembrando: Esse é para o endereço 001,  caso o seu for outro endereço não esqueça de mudar.

[sections] [section title=”Código Fonte”]

// Software I2C connections
sbit Soft_I2C_Scl at RC1_bit;
sbit Soft_I2C_Sda at RC0_bit;
sbit Soft_I2C_Scl_Direction at TRISC1_bit;
sbit Soft_I2C_Sda_Direction at TRISC0_bit;
// End Software I2C connections

void Config_MCP3421()
{
GIE_bit = 0; //desabilita interrupção
//Soft_I2C_Break();
Soft_I2C_Start(); // issue I2C start signal
//
// MCP3421 ADDRESS BYTE – MSB first
//
// 1 – 1 – 0 – 1 – A2 – A1 – A0 – R/W
//
/*
Part Number – Address Option – Code on package
MCP3421A0T-E/CH – A0 (000) – CANN
MCP3421A1T-E/CH – A1 (001) – CBNN
MCP3421A2T-E/CH – A2 (010) – CCNN
MCP3421A3T-E/CH – A3 (011) – CDNN
MCP3421A4T-E/CH – A4 (100) – CENN
MCP3421A5T-E/CH – A5 (101) – CFNN
MCP3421A6T-E/CH – A6 (110) – CGNN
MCP3421A7T-E/CH – A7 (111) – CHNN
*/
//
// Change the address depending on your ADC, check the code on package
// or the invoice from your supplier
//
// 1101XXX0
//
Soft_I2C_Write( 0b11010010 ); // Write mode

//
// MCP3421 CONFIGURATION REGISTER – MSB first
// RDY – C1 – C0 – O/C – S1 – S0 – G1 – G0
//
Soft_I2C_Write( 0b00010000 ); // Continuous conversion – 12bit – PGA = 1V/V
//Soft_I2C_Write( 0b00011100 ); // Continuous conversion – 18bit – PGA = 1V/V
Soft_I2C_Stop(); // issue I2C stop signal

GIE_bit = 1; //habilita interrupção
}

signed long read_MCP3421()
{
signed long dado=0;

GIE_bit = 0; //desabilita interrupção
Soft_I2C_Break();
Soft_I2C_Start();
Soft_I2C_Write(0b11010011);
Delay_us( 10 );
dado=Soft_I2C_Read(1);
if((dado&0b11100000)==0b11100000)//negativo
{
dado=0xff00|dado;
}
dado<<=8;
dado+=Soft_I2C_Read(1);
dado<<=8;
dado+=Soft_I2C_Read(0);
Soft_I2C_Stop();
Soft_I2C_Break();
GIE_bit = 1; //habilita interrupção
return(dado);
}

[/section] [/sections]

Espero ter ajudado novamente, deixe sua opinião, ela é muito importante para nós.


Obrigado e até o próximo post.

DATEK Tecnologia Eletrônica
[PIC] Acessando o Conversor AD MCP3421
Tags:                         

Deixe uma resposta

%d blogueiros gostam disto: