some fixes concerning comm with adc

This commit is contained in:
wn
2014-11-15 17:58:50 +01:00
parent 22d4ce1048
commit d3b2af0dc5
2 changed files with 7 additions and 3 deletions

View File

@ -43,6 +43,7 @@ struct {
void setup() { void setup() {
delay(100);
led.begin(LED_PIN); led.begin(LED_PIN);
ads1210_1.begin(ADC_1_CS_PIN, ADC_1_RDY_PIN); ads1210_1.begin(ADC_1_CS_PIN, ADC_1_RDY_PIN);
ads1210_2.begin(ADC_2_CS_PIN, ADC_2_RDY_PIN); ads1210_2.begin(ADC_2_CS_PIN, ADC_2_RDY_PIN);

View File

@ -34,7 +34,7 @@ void ADS1210::waitForDRdy() const {
void ADS1210::writeRegister(const uint8_t regAddr, const uint8_t value) const { void ADS1210::writeRegister(const uint8_t regAddr, const uint8_t value) const {
//waitForDRdy(); waitForDRdy();
enableCS(); enableCS();
SPI.transfer(regAddr); SPI.transfer(regAddr);
SPI.transfer(value); SPI.transfer(value);
@ -45,7 +45,7 @@ void ADS1210::writeRegister(const uint8_t regAddr, const uint8_t value) const {
uint8_t ADS1210::readRegister(const uint8_t regAddr) const { uint8_t ADS1210::readRegister(const uint8_t regAddr) const {
uint8_t res; uint8_t res;
//waitForDRdy(); waitForDRdy();
enableCS(); enableCS();
SPI.transfer(regAddr | INSR_RW); SPI.transfer(regAddr | INSR_RW);
res = SPI.transfer(0); res = SPI.transfer(0);
@ -61,6 +61,8 @@ void ADS1210::exec() {
uint32_t out; uint32_t out;
} res; } res;
writeRegister(ADDR_CMR3, CMR_SDL | CMR_UB | CMR_REFO);
enableCS(); enableCS();
SPI.transfer(ADDR_DOR2 | INSR_MB1 | INSR_RW); SPI.transfer(ADDR_DOR2 | INSR_MB1 | INSR_RW);
res.in[2] = SPI.transfer(0); res.in[2] = SPI.transfer(0);
@ -107,13 +109,14 @@ void ADS1210::begin(uint8_t csPin, uint8_t drdyPin) {
digitalWrite(m_csPin, HIGH); digitalWrite(m_csPin, HIGH);
SPI.begin(); SPI.begin();
SPI.setBitOrder(MSBFIRST); SPI.setBitOrder(MSBFIRST);
SPI.setClockDivider(SPI_CLOCK_DIV8); SPI.setClockDivider(SPI_CLOCK_DIV128);
SPI.setDataMode(SPI_MODE1); SPI.setDataMode(SPI_MODE1);
// Serial << "done." << endl; // Serial << "done." << endl;
// initialization of ADS1210 // initialization of ADS1210
// Serial << "Start ADS1210 initialization ... "; // Serial << "Start ADS1210 initialization ... ";
pinMode(m_drdyPin, INPUT); pinMode(m_drdyPin, INPUT);
delay(10);
writeRegister(ADDR_CMR3, CMR_SDL | CMR_UB | CMR_REFO); writeRegister(ADDR_CMR3, CMR_SDL | CMR_UB | CMR_REFO);
writeRegister(ADDR_CMR1, 0x1b); // data rate writeRegister(ADDR_CMR1, 0x1b); // data rate
writeRegister(ADDR_CMR0, 0x58); writeRegister(ADDR_CMR0, 0x58);