TLC5620 DA芯片使用说明
| TLC5620 是TI出品的四路DA输出芯片,以下是其驱动代码,供参考。 #define TLC5620Data_Pin GPIO_PIN_3 #define TLC5620Data_GPIO_Port GPIOE #define TLC5620CLK_Pin GPIO_PIN_4 #define TLC5620CLK_GPIO_Port GPIOE #define TLC5620LODA_Pin GPIO_PIN_5 #define TLC5620LODA_GPIO_Port GPIOE #define TLC5620LDAC_Pin GPIO_PIN_6 #define TLC5620LDAC_GPIO_Port GPIOE #define MinZFLimit 2 #define ZhenFuRange 200 uint16_t ZhenFuBuffer[4]; /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// void ZhenFuAdjust(uint8_t channel) { uint8_t zhenfu,a; zhenfu=(uint8_t)(MinZFLimit+ZhenFuBuffer[channel]*ZhenFuRange/100);//Count zhenfu---- HAL_GPIO_WritePin(TLC5620LODA_GPIO_Port,TLC5620LODA_Pin,GPIO_PIN_SET); HAL_GPIO_WritePin(TLC5620LDAC_GPIO_Port,TLC5620LDAC_Pin,GPIO_PIN_SET); //A1--------------------------------------------------------------------------------- HAL_GPIO_WritePin(TLC5620CLK_GPIO_Port,TLC5620CLK_Pin,GPIO_PIN_SET); HAL_GPIO_WritePin(TLC5620CLK_GPIO_Port,TLC5620CLK_Pin,GPIO_PIN_SET); if((channel&0x02)==0x02) { HAL_GPIO_WritePin(TLC5620Data_GPIO_Port,TLC5620Data_Pin,GPIO_PIN_SET); HAL_GPIO_WritePin(TLC5620Data_GPIO_Port,TLC5620Data_Pin,GPIO_PIN_SET); } else { HAL_GPIO_WritePin(TLC5620Data_GPIO_Port,TLC5620Data_Pin,GPIO_PIN_RESET); HAL_GPIO_WritePin(TLC5620Data_GPIO_Port,TLC5620Data_Pin,GPIO_PIN_RESET); } HAL_GPIO_WritePin(TLC5620CLK_GPIO_Port,TLC5620CLK_Pin,GPIO_PIN_RESET); HAL_GPIO_WritePin(TLC5620CLK_GPIO_Port,TLC5620CLK_Pin,GPIO_PIN_RESET); //A0--------------------------------------------------------------------------------- HAL_GPIO_WritePin(TLC5620CLK_GPIO_Port,TLC5620CLK_Pin,GPIO_PIN_SET); HAL_GPIO_WritePin(TLC5620CLK_GPIO_Port,TLC5620CLK_Pin,GPIO_PIN_SET); if((channel&0x01)==0x01) { HAL_GPIO_WritePin(TLC5620Data_GPIO_Port,TLC5620Data_Pin,GPIO_PIN_SET); HAL_GPIO_WritePin(TLC5620Data_GPIO_Port,TLC5620Data_Pin,GPIO_PIN_SET); } else { HAL_GPIO_WritePin(TLC5620Data_GPIO_Port,TLC5620Data_Pin,GPIO_PIN_RESET); HAL_GPIO_WritePin(TLC5620Data_GPIO_Port,TLC5620Data_Pin,GPIO_PIN_RESET); } HAL_GPIO_WritePin(TLC5620CLK_GPIO_Port,TLC5620CLK_Pin,GPIO_PIN_RESET); HAL_GPIO_WritePin(TLC5620CLK_GPIO_Port,TLC5620CLK_Pin,GPIO_PIN_RESET); //REN--------------------------------------------------------------------------------- HAL_GPIO_WritePin(TLC5620CLK_GPIO_Port,TLC5620CLK_Pin,GPIO_PIN_SET); HAL_GPIO_WritePin(TLC5620CLK_GPIO_Port,TLC5620CLK_Pin,GPIO_PIN_SET); HAL_GPIO_WritePin(TLC5620Data_GPIO_Port,TLC5620Data_Pin,GPIO_PIN_SET);//1 HAL_GPIO_WritePin(TLC5620Data_GPIO_Port,TLC5620Data_Pin,GPIO_PIN_SET); //HAL_GPIO_WritePin(TLC5620Data_GPIO_Port,TLC5620Data_Pin,GPIO_PIN_RESET);//0 //HAL_GPIO_WritePin(TLC5620Data_GPIO_Port,TLC5620Data_Pin,GPIO_PIN_RESET); HAL_GPIO_WritePin(TLC5620CLK_GPIO_Port,TLC5620CLK_Pin,GPIO_PIN_RESET); HAL_GPIO_WritePin(TLC5620CLK_GPIO_Port,TLC5620CLK_Pin,GPIO_PIN_RESET); //for(a=0;a<8;a++)HAL_GPIO_WritePin(TLC5620CLK_GPIO_Port,TLC5620CLK_Pin,GPIO_PIN_RESET);//delay for(a=0;a<8;a++) { HAL_GPIO_WritePin(TLC5620CLK_GPIO_Port,TLC5620CLK_Pin,GPIO_PIN_SET); HAL_GPIO_WritePin(TLC5620CLK_GPIO_Port,TLC5620CLK_Pin,GPIO_PIN_SET); if((zhenfu&0x80)==0x80) { HAL_GPIO_WritePin(TLC5620Data_GPIO_Port,TLC5620Data_Pin,GPIO_PIN_SET); HAL_GPIO_WritePin(TLC5620Data_GPIO_Port,TLC5620Data_Pin,GPIO_PIN_SET); } else { HAL_GPIO_WritePin(TLC5620Data_GPIO_Port,TLC5620Data_Pin,GPIO_PIN_RESET); HAL_GPIO_WritePin(TLC5620Data_GPIO_Port,TLC5620Data_Pin,GPIO_PIN_RESET); } HAL_GPIO_WritePin(TLC5620CLK_GPIO_Port,TLC5620CLK_Pin,GPIO_PIN_RESET); HAL_GPIO_WritePin(TLC5620CLK_GPIO_Port,TLC5620CLK_Pin,GPIO_PIN_RESET); zhenfu<<=1; } HAL_GPIO_WritePin(TLC5620LODA_GPIO_Port,TLC5620LODA_Pin,GPIO_PIN_RESET); HAL_GPIO_WritePin(TLC5620LODA_GPIO_Port,TLC5620LODA_Pin,GPIO_PIN_RESET); HAL_GPIO_WritePin(TLC5620LODA_GPIO_Port,TLC5620LODA_Pin,GPIO_PIN_RESET); HAL_GPIO_WritePin(TLC5620LODA_GPIO_Port,TLC5620LODA_Pin,GPIO_PIN_RESET); HAL_GPIO_WritePin(TLC5620LODA_GPIO_Port,TLC5620LODA_Pin,GPIO_PIN_SET); HAL_GPIO_WritePin(TLC5620LODA_GPIO_Port,TLC5620LODA_Pin,GPIO_PIN_SET); HAL_GPIO_WritePin(TLC5620LODA_GPIO_Port,TLC5620LODA_Pin,GPIO_PIN_SET); HAL_GPIO_WritePin(TLC5620LODA_GPIO_Port,TLC5620LODA_Pin,GPIO_PIN_SET); HAL_GPIO_WritePin(TLC5620LDAC_GPIO_Port,TLC5620LDAC_Pin,GPIO_PIN_RESET); HAL_GPIO_WritePin(TLC5620LDAC_GPIO_Port,TLC5620LDAC_Pin,GPIO_PIN_RESET); HAL_GPIO_WritePin(TLC5620LDAC_GPIO_Port,TLC5620LDAC_Pin,GPIO_PIN_RESET); HAL_GPIO_WritePin(TLC5620LDAC_GPIO_Port,TLC5620LDAC_Pin,GPIO_PIN_RESET); HAL_GPIO_WritePin(TLC5620LDAC_GPIO_Port,TLC5620LDAC_Pin,GPIO_PIN_SET); HAL_GPIO_WritePin(TLC5620LDAC_GPIO_Port,TLC5620LDAC_Pin,GPIO_PIN_SET); HAL_GPIO_WritePin(TLC5620LDAC_GPIO_Port,TLC5620LDAC_Pin,GPIO_PIN_SET); HAL_GPIO_WritePin(TLC5620LDAC_GPIO_Port,TLC5620LDAC_Pin,GPIO_PIN_SET); } |

芯片解密