12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- /*
- * AD5318.c
- *
- * Created on: 2019. 7. 30.
- * Author: parkyj
- */
- #include "ad5318.h"
- extern void Pol_Delay_us(volatile uint32_t microseconds);
- void AD5318_Initialize(void){
- /* * * *DAC Setting* * * * */
- AD5318_Ctrl(0x800C);
- AD5318_Ctrl(0xA000);
- /* * * *DAC OPERATE* * * * */
- AD5318_Ctrl(0x0FFF);
- AD5318_Ctrl(0x13FF);
- AD5318_Ctrl(0x24FF);
- AD5318_Ctrl(0x35FF);
- AD5318_Ctrl(0x46FF);
- AD5318_Ctrl(0x57FF);
- AD5318_Ctrl(0x68FF);
- AD5318_Ctrl(0x79FF);
- HAL_Delay(1);
- }
- void AD5318_Ctrl(uint16_t ShiftTarget) {
- char i; /* serial counter */
- // printf("ShiftTarget : %x \r\n",ShiftTarget);
- HAL_GPIO_WritePin(DA_SYNC_GPIO_Port, DA_SYNC_Pin, GPIO_PIN_RESET);
- for (i=0;i < 16;i++) { /* loop through all 16 data bits */
- HAL_GPIO_WritePin(DA_SCLK_GPIO_Port, DA_SCLK_Pin, GPIO_PIN_SET); /* rise clk line again */
- if (ShiftTarget & 0x8000) HAL_GPIO_WritePin(DA_DIN_GPIO_Port, DA_DIN_Pin, GPIO_PIN_SET);
- else HAL_GPIO_WritePin(DA_DIN_GPIO_Port, DA_DIN_Pin, GPIO_PIN_RESET); /* set data bit */
- HAL_GPIO_WritePin(DA_SCLK_GPIO_Port, DA_SCLK_Pin, GPIO_PIN_RESET); /* lower clock line */
- ShiftTarget <<= 1;
- }
- HAL_GPIO_WritePin(DA_LDAC_GPIO_Port, DA_LDAC_Pin, GPIO_PIN_SET);
- Pol_Delay_us(10);
- HAL_GPIO_WritePin(DA_LDAC_GPIO_Port, DA_LDAC_Pin, GPIO_PIN_RESET);
- HAL_GPIO_WritePin(DA_SYNC_GPIO_Port, DA_SYNC_Pin, GPIO_PIN_SET);
- HAL_GPIO_WritePin(DA_DIN_GPIO_Port, DA_DIN_Pin, GPIO_PIN_RESET);
- HAL_GPIO_WritePin(DA_LDAC_GPIO_Port, DA_LDAC_Pin, GPIO_PIN_SET);
- /* rise DAC SYNC line again */
- HAL_GPIO_WritePin(DA_SYNC_GPIO_Port, DA_SYNC_Pin, GPIO_PIN_RESET);
- HAL_GPIO_WritePin(DA_LDAC_GPIO_Port, DA_LDAC_Pin, GPIO_PIN_RESET);
-
- }
|