123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129 |
- /*
- * 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){
- HAL_Delay(1);
- /* * * *DAC Setting* * * * */
- AD5318_Ctrl(0x800C);
- HAL_Delay(1);
- AD5318_Ctrl(0xA000);
- HAL_Delay(1);
- /* * * *DAC OPERATE* * * * */
- #if 0 // PYJ.2019.10.21_BEGIN --
- AD5318_Ctrl(0x0000);
- AD5318_Ctrl(0x1000);
- AD5318_Ctrl(0x2000);
- AD5318_Ctrl(0x3000);
- AD5318_Ctrl(0x4000);
- AD5318_Ctrl(0x5000);
- AD5318_Ctrl(0x6000);
- AD5318_Ctrl(0x7000);
- HAL_Delay(1);
- #endif // PYJ.2019.10.21_END --
- }
- void AD5318_Ctrl(uint16_t ShiftTarget) {
- char i; /* serial counter */
- // printf("ShiftTarget : %x \r\n",ShiftTarget);
- #if 0 // PYJ.2019.11.14_BEGIN --
- if(ShiftTarget & 0x1000){
- 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 */
- Pol_Delay_us(10);
- 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 */
- Pol_Delay_us(10);
- HAL_GPIO_WritePin(DA_SCLK_GPIO_Port, DA_SCLK_Pin, GPIO_PIN_RESET); /* lower clock line */
- ShiftTarget <<= 1;
- Pol_Delay_us(10);
- }
- 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);
- Pol_Delay_us(10);
- HAL_GPIO_WritePin(DA_SYNC_GPIO_Port, DA_SYNC_Pin, GPIO_PIN_SET);
- Pol_Delay_us(10);
- HAL_GPIO_WritePin(DA_DIN_GPIO_Port, DA_DIN_Pin, GPIO_PIN_RESET);
- Pol_Delay_us(10);
- HAL_GPIO_WritePin(DA_LDAC_GPIO_Port, DA_LDAC_Pin, GPIO_PIN_SET);
- Pol_Delay_us(10);
- /* rise DAC SYNC line again */
- HAL_GPIO_WritePin(DA_SYNC_GPIO_Port, DA_SYNC_Pin, GPIO_PIN_RESET);
- Pol_Delay_us(10);
- HAL_GPIO_WritePin(DA_LDAC_GPIO_Port, DA_LDAC_Pin, GPIO_PIN_RESET);
- Pol_Delay_us(10);
- }
- else{
- 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 */
- Pol_Delay_us(10);
- 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 */
- Pol_Delay_us(10);
- HAL_GPIO_WritePin(DA_SCLK_GPIO_Port, DA_SCLK_Pin, GPIO_PIN_RESET); /* lower clock line */
- ShiftTarget <<= 1;
- Pol_Delay_us(10);
- }
- 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);
- Pol_Delay_us(10);
- HAL_GPIO_WritePin(DA_SYNC_GPIO_Port, DA_SYNC_Pin, GPIO_PIN_SET);
- Pol_Delay_us(10);
- HAL_GPIO_WritePin(DA_DIN_GPIO_Port, DA_DIN_Pin, GPIO_PIN_RESET);
- Pol_Delay_us(10);
- HAL_GPIO_WritePin(DA_LDAC_GPIO_Port, DA_LDAC_Pin, GPIO_PIN_SET);
- Pol_Delay_us(10);
- /* rise DAC SYNC line again */
- HAL_GPIO_WritePin(DA_SYNC_GPIO_Port, DA_SYNC_Pin, GPIO_PIN_RESET);
- Pol_Delay_us(10);
- HAL_GPIO_WritePin(DA_LDAC_GPIO_Port, DA_LDAC_Pin, GPIO_PIN_RESET);
- Pol_Delay_us(10);
- }
- #else
- HAL_GPIO_WritePin(DA_LDAC_GPIO_Port, DA_LDAC_Pin, GPIO_PIN_SET);
- if(ShiftTarget & 0x1000){
- 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 */
- if(i <= 2)
- HAL_GPIO_WritePin(DA_SYNC_GPIO_Port, DA_SYNC_Pin, GPIO_PIN_SET);
- else
- HAL_GPIO_WritePin(DA_SYNC_GPIO_Port, DA_SYNC_Pin, GPIO_PIN_RESET);
-
- HAL_GPIO_WritePin(DA_SCLK_GPIO_Port, DA_SCLK_Pin, GPIO_PIN_SET); /* rise clk line again */
- Pol_Delay_us(10);
- 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 */
- Pol_Delay_us(10);
- HAL_GPIO_WritePin(DA_SCLK_GPIO_Port, DA_SCLK_Pin, GPIO_PIN_RESET); /* lower clock line */
- ShiftTarget <<= 1;
- Pol_Delay_us(10);
- }
-
- Pol_Delay_us(10);
- HAL_GPIO_WritePin(DA_LDAC_GPIO_Port, DA_LDAC_Pin, GPIO_PIN_RESET);
- Pol_Delay_us(10);
- HAL_GPIO_WritePin(DA_SYNC_GPIO_Port, DA_SYNC_Pin, GPIO_PIN_SET);
- Pol_Delay_us(10);
- HAL_GPIO_WritePin(DA_DIN_GPIO_Port, DA_DIN_Pin, GPIO_PIN_RESET);
- Pol_Delay_us(10);
- /* rise DAC SYNC line again */
- HAL_GPIO_WritePin(DA_SYNC_GPIO_Port, DA_SYNC_Pin, GPIO_PIN_RESET);
- Pol_Delay_us(10);
- HAL_GPIO_WritePin(DA_LDAC_GPIO_Port, DA_LDAC_Pin, GPIO_PIN_SET);
- Pol_Delay_us(10);
- #endif // PYJ.2019.11.14_END --
- }
- }
|