/** @brief SPI initialization @return none **/ void SPI_Init(void) { DioPul(pADI_GP0, 0xf8); /* Disable the internal pull ups on P0 */ DioCfg(pADI_GP0, 0x0015); /* Configure P0[2:0] for SPI1 */ DioPulPin(AD7798_CS_PORT, AD7798_CS_PIN_NUMBER, 0); // Disable the internal pull up on AD7798 CS pin DioOenPin(AD7798_CS_PORT, AD7798_CS_PIN_NUMBER, 1); // Set CS pin for AD7798 as output DioSet(AD7798_CS_PORT, AD7798_CS_PIN); DioPulPin(ADT7310_CS_PORT, ADT7310_CS_PIN_NUMBER, 0); // Disable the internal pull up on ADT7310 CS pin DioOenPin(ADT7310_CS_PORT, ADT7310_CS_PIN_NUMBER, 1); // Set CS pin for ADT7310 as output DioSet(ADT7310_CS_PORT, ADT7310_CS_PIN); DioPulPin(AD5270_CS_PORT, AD5270_CS_PIN_NUMBER, 0); // Disable the internal pull up on ADT7310 CS pin DioOenPin(AD5270_CS_PORT, AD5270_CS_PIN_NUMBER, 1); // Set CS pin for ADT7310 as output DioSet(AD5270_CS_PORT, AD5270_CS_PIN); SpiBaud(pADI_SPI1, 9, SPIDIV_BCRST_DIS); /* Set the SPI1 clock rate in Master mode to x kHz. */ /* SPI configuration*/ SpiCfg(pADI_SPI1, SPICON_MOD_TX4RX4, SPICON_MASEN_EN, SPICON_CON_EN | SPICON_SOEN_EN | SPICON_RXOF_EN | SPICON_ZEN_EN | SPICON_TIM_TXWR | SPICON_CPOL_HIGH | SPICON_CPHA_SAMPLETRAILING | SPICON_ENABLE_EN); }
/** @brief Initialization the accelerometer sensor @return none **/ void Sensor_Init(void) { DioPulPin(CSACC_PORT, CSACC_PIN_NUMBER, 0); /* Disable the internal pull up on CSACC pin */ DioOenPin(CSACC_PORT, CSACC_PIN_NUMBER, 1); /* Set CSACC pin as output */ DioPulPin(INT1ACC_PORT, INT1ACC_PIN_NUMBER, 0); /* Disable the internal pull up on INT1ACC pin */ DioOenPin(INT1ACC_PORT, INT1ACC_PIN_NUMBER, 0); /* Set INT1ACC pin as input */ DioPulPin(INT2ACC_PORT, INT2ACC_PIN_NUMBER, 0); /* Disable the internal pull up on INT2ACC pin */ DioOenPin(INT2ACC_PORT, INT2ACC_PIN_NUMBER, 0); /* Set INT2ACC pin as input */ SPI_Write(SOFT_RESET_REG, 0x52, SPI_WRITE_REG); /* Soft reset accelerometer */ timer_sleep(100); /* Wait at least 0.5 ms */ /* Set activity threshold */ SPI_Write(THRESH_ACT_L, ACT_VALUE & 0xFF, SPI_WRITE_REG); SPI_Write(THRESH_ACT_H, ACT_VALUE >> 8, SPI_WRITE_REG); SPI_Write(TIME_ACT, (ACT_TIMER / 10), SPI_WRITE_REG); /* Set activity time at 100Hz data rate */ /* Set inactivity threshold */ SPI_Write(THRESH_INACT_L, INACT_VALUE & 0xFF, SPI_WRITE_REG); SPI_Write(THRESH_INACT_H, INACT_VALUE >> 8, SPI_WRITE_REG); /* Set inactivity time at 100Hz data rate */ SPI_Write(TIME_INACT_L, ((INACT_TIMER * 100) & 0xFF), SPI_WRITE_REG); SPI_Write(TIME_INACT_H, ((INACT_TIMER * 100) >> 8), SPI_WRITE_REG); SPI_Write(ACT_INACT_CTL, 0x3F, SPI_WRITE_REG); /* Set Loop mode, referenced mode for activity and inactivity, enable activity and inactivity functionality */ SPI_Write(INTMAP1, 0x40, SPI_WRITE_REG); /* Map the awake status to INT1 pin */ }
/** @brief Initialization @return none **/ void AD7091R_Init(void) { SPI_Init(); /* SPI initialization */ DioPulPin(CONVST_PORT, CONVST_PIN_NUMBER, 0); /* Disable the internal pull up on CONVST pin */ DioOenPin(CONVST_PORT, CONVST_PIN_NUMBER, 1); /* Set CONVST pin as output */ DioSet(CONVST_PORT, CONVST_PIN); /* Set CONVST pin as high */ AD7091R_SoftwareReset(); /* Perform an AD7091R software reset required at initialization */ u8StartCounter = 0; /* Reset start counter */ }
void SPIClass::Init() { DioPulPin(pADI_GP0, PIN0, 0); DioCfgPin(pADI_GP0, PIN0, 1); //MISO DioPulPin(pADI_GP0, PIN1, 0); DioCfgPin(pADI_GP0, PIN1, 1); //SCLK DioPulPin(pADI_GP0, PIN2, 0); DioCfgPin(pADI_GP0, PIN2, 1); //MOSI DioPulPin(CS_PORT, CS_PIN_NUMBER, 0); /* Disable the internal pull up on AD7798 CS pin */ DioOenPin(CS_PORT, CS_PIN_NUMBER, 1); /* Set CS pin for AD7798 as output */ DioSet(CS_PORT, CS_PIN); SpiBaud(pADI_SPI1, 9, SPIDIV_BCRST_DIS); /* Set the SPI1 clock rate in Master mode to x kHz. */ /* SPI configuration*/ SpiCfg(pADI_SPI1, SPICON_MOD_TX4RX4, SPICON_MASEN_EN, SPICON_CON_EN | SPICON_SOEN_EN | SPICON_RXOF_EN | SPICON_ZEN_EN | SPICON_TIM_TXWR | SPICON_CPOL_HIGH | SPICON_CPHA_SAMPLETRAILING | SPICON_ENABLE_EN); }
static DeviceStatus_TYPE _drv_devopen(pDeviceAbstract pdev, uint16 oflag){ DioCfgPin(pADI_GP0,PIN0,0); //Set P0.0 as GPIO DioOenPin(pADI_GP0,PIN0,1); //Enable P0.0 Output DioPulPin(pADI_GP0,PIN0,1); //Enable P0.0 Output Pullup pwm_output_enable(); _drv_ioctl(pdev, PWM_IOC_RHREF_FORCE_H, NULL); _drv_ioctl(pdev, PWM_IOC_HEAT_FORCE_H, NULL); _drv_ioctl(pdev, PWM_IOC_MEASURE_ON, NULL); return DEVICE_OK; }