AD7172 library

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
 *
 *******************************************************************************/