Linear Technology DC955A - LTC2483 16-bit Delta-Sigma ADC demo board (req. DC590) DC955A DC955A Scheda Tecnica
Codici prodotto
DC955A
LTC2483
0
2483fc
applicaTions inFormaTion
union // adc_code.bits32 all 32 bits
{ // adc_code.by.te0 byte 0
signed int32 bits32; // adc_code.by.te1 byte 1
struct fourbytes by; // adc_code.by.te2 byte 2
} adc_code; // adc_code.by.te3 byte 3
{ // adc_code.by.te0 byte 0
signed int32 bits32; // adc_code.by.te1 byte 1
struct fourbytes by; // adc_code.by.te2 byte 2
} adc_code; // adc_code.by.te3 byte 3
// Start communication with LTC2483:
i2c_start();
if(i2c_write(addr | READ))// If no acknowledge, return zero
{
i2c_stop();
return 0;
}
adc_code.by.te3 = i2c_read();
adc_code.by.te2 = i2c_read();
adc_code.by.te1 = i2c_read();
adc_code.by.te0 = 0;
i2c_stop();
return adc_code.bits32;
} // End of read_LTC2483()
i2c_start();
if(i2c_write(addr | READ))// If no acknowledge, return zero
{
i2c_stop();
return 0;
}
adc_code.by.te3 = i2c_read();
adc_code.by.te2 = i2c_read();
adc_code.by.te1 = i2c_read();
adc_code.by.te0 = 0;
i2c_stop();
return adc_code.bits32;
} // End of read_LTC2483()
/*** initialize() **************************************************************
Basic hardware initialization of controller and LCD, send Hello message to LCD
*******************************************************************************/
void initialize(void)
{
// General initialization stuff.
setup_adc_ports(NO_ANALOGS);
setup_adc(ADC_OFF);
setup_counters(RTCC_INTERNAL,RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
Basic hardware initialization of controller and LCD, send Hello message to LCD
*******************************************************************************/
void initialize(void)
{
// General initialization stuff.
setup_adc_ports(NO_ANALOGS);
setup_adc(ADC_OFF);
setup_counters(RTCC_INTERNAL,RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
// This is the important part - configuring the SPI port
setup_spi(SPI_MASTER|SPI_L_TO_H|SPI_CLK_DIV_16|SPI_SS_DISABLED); // fast SPI clock
CKP = 0; // Set up clock edges - clock idles low, data changes on
CKE = 1; // falling edges, valid on rising edges.
setup_spi(SPI_MASTER|SPI_L_TO_H|SPI_CLK_DIV_16|SPI_SS_DISABLED); // fast SPI clock
CKP = 0; // Set up clock edges - clock idles low, data changes on
CKE = 1; // falling edges, valid on rising edges.
lcd_init(); // Initialize LCD
delay_ms(6);
printf(lcd_putc, “Hello!”); // Obligatory hello message
delay_ms(500); // for half a second
} // End of initialize()
delay_ms(6);
printf(lcd_putc, “Hello!”); // Obligatory hello message
delay_ms(500); // for half a second
} // End of initialize()
/*** main() ********************************************************************
Main program initializes microcontroller registers, then reads the LTC2483
repeatedly
*******************************************************************************/
void main()
{
signed int32 x; // Integer result from LTC2481
float voltage; // Variable for floating point math
int16 timeout;
initialize(); // Hardware initialization
while(1)
{
delay_ms(1); // Pace the main loop to something more than 1 ms
// This is a basic error detection scheme. The LTC2483 will never take more than
// 149.9ms to complete a conversion in the 55Hz
// rejection mode.
Main program initializes microcontroller registers, then reads the LTC2483
repeatedly
*******************************************************************************/
void main()
{
signed int32 x; // Integer result from LTC2481
float voltage; // Variable for floating point math
int16 timeout;
initialize(); // Hardware initialization
while(1)
{
delay_ms(1); // Pace the main loop to something more than 1 ms
// This is a basic error detection scheme. The LTC2483 will never take more than
// 149.9ms to complete a conversion in the 55Hz
// rejection mode.