AD7172 library
Diff: ad7172.cpp
- Revision:
- 1:6d78a35bedd0
- Parent:
- 0:e258a1597fe1
- Child:
- 2:8c5d9f069f11
--- a/ad7172.cpp Thu Apr 30 21:06:54 2020 +0000 +++ b/ad7172.cpp Tue May 05 17:57:07 2020 +0000 @@ -58,11 +58,9 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ******************************************************************************/ - +#define DEBUG #include "ad7172.h" -#define DEBUG - /****************************************************************************** * @AD7172 class constructor. * @@ -74,19 +72,16 @@ : _spi(p_spi), _rdy(p_rdy) { - _spi.format(8,3); //8 bits ; POL=1 ; PHASE=1 - _spi.frequency(10000000); + _spi.format(8,3); // 8 bits ; POL=1 ; PHASE=1 + _spi.frequency(10000000); // 10 MHz SPI clock rate - cs = new DigitalOut(slave_select); - sync = new DigitalOut(sync_pin); - *sync = 1; - *cs=1; - - Reset(); + cs = new DigitalOut(slave_select); // Define cs as digital out variable referred to slave_select pin + sync = new DigitalOut(sync_pin); // Define sync as digital out variable referred to sync_pin + Reset(); // Calling the AD7172-2 restart function } /****************************************************************************** -* @AD717X Enable Device - CS goes low. +* @AD7172 Enable Device - CS goes low. * *******************************************************************************/ void AD7172::enable(){ @@ -94,53 +89,72 @@ } /****************************************************************************** -* @AD717X Disable Device - CS goes high. +* @AD7172 Disable Device - CS goes high. * *******************************************************************************/ void AD7172::disable(){ - *cs=1; + *cs=1; } /****************************************************************************** -* @AD717X Configure Continuous Convertion Mode +* @AD7172 Configure Continuous Convertion Mode * *******************************************************************************/ void AD7172::config_continuous() { - data.data = (0b1<<7)|AD7172_IFMODE_REG_DATA_STAT; //CONTREAD = 1; + data.data = (AD7172_IFMODE_REG_CONT_READ)|AD7172_IFMODE_REG_DATA_STAT; AD7172_PRINTF("CONTCONV"); - AD7172_PRINTF("Register: IFMODE\tWrite: 0x%04X",ad7172.data.data); - WriteRegister(AD7172_IFMODE_REG,2); - enable(); + AD7172_PRINTF("Register: IFMODE\tWrite: 0x%04X",data.data); + WriteRegister(AD7172_IFMODE_REG,2); // Writing to IFMODE register + enable(); // *cs = 0 } /****************************************************************************** -* @AD717X Configure Single Convertion Mode +* @AD7172 Configure Single Convertion Mode * *******************************************************************************/ void AD7172::config_single() { - data.data = AD7172_IFMODE_REG_DATA_STAT; //CONTREAD = 0; + //AGUARDAR SYNC + data.data = AD7172_IFMODE_REG_DATA_STAT|AD7172_IFMODE_REG_ALT_SYNC; //CONTREAD = 0; AD7172_PRINTF("SINGCONV"); - AD7172_PRINTF("Register: IFMODE\tWrite: 0x%04X",ad7172.data.data); - WriteRegister(AD7172_IFMODE_REG,2); - //AGUARDAR SYNC - //CONFIGURAR GPIO REGISTER - enable(); + AD7172_PRINTF("Register: IFMODE\tWrite: 0x%04X",data.data); + WriteRegister(AD7172_IFMODE_REG,2); // Writing to IFMODE register + enable(); // *cs = 0 } /****************************************************************************** -* @AD717X Configure Single Convertion Mode +* @AD7172 Sync Enable +* +*******************************************************************************/ +void AD7172::sync_enable() +{ + *sync = 0; +} + +/****************************************************************************** +* @AD7172 Sync Disable +* +*******************************************************************************/ +void AD7172::sync_disable() +{ + *sync = 1; +} + +/****************************************************************************** +* @AD7172 Single Convertion Mode Conversion Driver * *******************************************************************************/ void AD7172::start_single_conv() { *sync = 0; + wait_ms(1); + *sync = 1; } /****************************************************************************** -* @AD717X Read Device ID - Communication Test. +* @AD7172 Read Device ID - Communication Test. * *******************************************************************************/ void AD7172::ReadID() @@ -153,7 +167,7 @@ } /****************************************************************************** -* @AD717X Read Device Status. +* @AD7172 Read Device Status. * *******************************************************************************/ void AD7172::ReadStatus() @@ -173,14 +187,14 @@ * * @bytes - The number of bytes to be readed *******************************************************************************/ -void AD7172::ReadRegister(uint8_t reg,uint8_t bytes) +void AD7172::ReadRegister(uint8_t reg, uint8_t bytes) { - *cs=0; + *cs = 0; _spi.write(0x40|reg); - data.data=0; + data.data = 0; for(i=bytes-1;i>=0;i--) data.bytes[i] = _spi.write(0x00); - *cs=1; + *cs = 1; } /***************************************************************************//** @@ -191,13 +205,13 @@ * * @bytes - The number of bytes to be stored (data saved on data variable) *******************************************************************************/ -void AD7172::WriteRegister(uint8_t reg,uint8_t bytes) +void AD7172::WriteRegister(uint8_t reg, uint8_t bytes) { - *cs=0; + *cs = 0; _spi.write(reg); for(i=bytes-1;i>=0;i--) _spi.write(data.bytes[i]); - *cs=1; + *cs = 1; } /***************************************************************************//** @@ -228,7 +242,7 @@ } } -/***************************************************************************//** +/***************************************************************************//**************************************************************************** * @brief Reads the conversion result from the device using data register. * *******************************************************************************/ @@ -256,7 +270,7 @@ *sync = 1; } -/***************************************************************************//** +/***************************************************************************//******************************************************************************** * @brief Reads the conversion result from the device for continuous read mode * *******************************************************************************/