ltc6994數據手冊
1. 什麼是伺服電壓(Servo Voltage)
就是可以實時穩定的電壓
2. LTC2326-16涓巗tm32閫氳繃spi閫氳鏃跺備綍鍚鍔ㄤ紶杈撴暟鎹錛
瑕佸惎鍔↙TC2326-16涓嶴TM32涔嬮棿鐨凷PI閫氫俊錛屾偍闇瑕佹寜鐓т互涓嬫ラよ繘琛屾搷浣滐細
1. 紜淇滾TC2326-16鍜孲TM32涔嬮棿鐨凷PI鐗╃悊榪炴帴姝g『銆傜『淇漇PI鏃墮挓錛圫CK錛夊拰鏁版嵁錛圡OSI鍜孧ISO錛夌嚎姝g『榪炴帴銆
2. 閰嶇疆STM32鐨凷PI鎺у埗鍣ㄣ傛偍闇瑕佽劇疆SPI妯″紡銆佹暟鎹澶у皬銆佷紶杈撻『搴忕瓑鍙傛暟銆傝繖浜涘弬鏁扮殑鍏蜂綋璁劇疆鍙栧喅浜庢偍鐨勫簲鐢ㄩ渶奼傘備互涓嬫槸涓涓紺轟緥浠g爜鐗囨碉紝鐢ㄤ簬閰嶇疆SPI鎺у埗鍣錛
```c
// 璁劇疆SPI鎺у埗鍣ㄦā寮
SPI_InitStruct.Mode = SPI_MODE_MASTER; // 璁劇疆涓轟富妯″紡
SPI_InitStruct.Direction = SPI_DIRECTION_2LINES; // 璁劇疆涓哄弻綰垮叏鍙屽伐妯″紡
SPI_InitStruct.DataSize = SPI_DATASIZE_16BIT; // 璁劇疆浼犺緭鏁版嵁澶у皬涓16浣
SPI_InitStruct.CLKPolarity = SPI_POLARITY_LOW; // 鏃墮挓鏋佹т負浣庣數騫蟲椂絀洪棽
SPI_InitStruct.CLKPhase = SPI_PHASE_1EDGE; // 鏃墮挓鐩鎬綅涓虹涓杈規部
SPI_InitStruct.NSS = SPI_NSS_SOFT; // 浣跨敤杞浠舵帶鍒剁墖閫変俊鍙
SPI_InitStruct.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_DIV2; // 璁劇疆鏃墮挓鍒嗛戠郴鏁頒負2
SPI_InitStruct.CRCCalculation = SPI_CRCCALCULATION_DISABLE; // 紱佺敤鏍¢獙鍜岃$畻
SPI_InitStruct.CRCPolynomial = 7; // 鏍¢獙鍜屽氶」寮忔湭浣跨敤
HAL_SPI_Init(&hspi1, &SPI_InitStruct); // 鍒濆嬪寲SPI鎺у埗鍣
```
3. 閰嶇疆LTC2326-16鐨勫伐浣滄ā寮忓拰閲囨牱閫熺巼銆侺TC2326-16鏄涓涓16浣岮DC鑺鐗囷紝鍏鋒湁澶氱嶉厤緗閫夐」銆傛偍闇瑕佹牴鎹鎮ㄧ殑搴旂敤闇奼傝劇疆瀹冪殑瀵勫瓨鍣ㄣ備互涓嬫槸涓涓紺轟緥浠g爜鐗囨碉紝鐢ㄤ簬閰嶇疆LTC2326-16鐨勬煇浜涘瘎瀛樺櫒錛
```c
// 璁劇疆LTC2326-16鐨勫伐浣滄ā寮忓拰閲囨牱閫熺巼
unsigned char configRegister = 0x00; // Configuration register鍦板潃
unsigned char configValue = 0xXYZ; // 閰嶇疆鍊
HAL_GPIO_WritePin(LTC2326_CS_GPIO_Port, LTC2326_CS_Pin, GPIO_PIN_RESET); // 鐗囬変俊鍙鋒媺浣
HAL_SPI_Transmit(&hspi1, &configRegister, 1, HAL_MAX_DELAY); // 鍙戦侀厤緗瀵勫瓨鍣ㄥ湴鍧
HAL_SPI_Transmit(&hspi1, &configValue, 1, HAL_MAX_DELAY); // 鍙戦侀厤緗鍊
HAL_GPIO_WritePin(LTC2326_CS_GPIO_Port, LTC2326_CS_Pin, GPIO_PIN_SET); // 鐗囬変俊鍙鋒媺楂
```
鍦ㄨ繖涓紺轟緥涓錛屾垜浠鍋囪炬偍宸茬粡灝哃TC2326-16鐨勭墖閫変俊鍙瘋繛鎺ュ埌STM32鐨勬煇涓狦PIO寮曡剼錛堝侺TC2326_CS_Pin錛夛紝騫朵笖鎮ㄥ凡緇忓湪STM32鐨勪唬鐮佷腑榪涜屼簡鐩稿簲鐨勯厤緗銆
4. 鍙戣搗鏁版嵁浼犺緭銆備竴鏃︽偍瀹屾垚浜哠PI鎺у埗鍣ㄥ拰LTC2326-16鐨勯厤緗錛屾偍灝卞彲浠ュ紑濮嬪惎鍔ㄦ暟鎹浼犺緭浜嗐備互涓嬫槸涓涓紺轟緥浠g爜鐗囨碉紝鐢ㄤ簬浠嶭TC2326-16璇誨彇ADC鏁版嵁錛
```c
unsigned char readRegister = 0x20; // Read register鍦板潃
unsigned char data[2]; // 鐢ㄤ簬鎺ユ敹鏁版嵁鐨勭紦鍐插尯
HAL_GPIO_WritePin(LTC2326_CS_GPIO_Port, LTC2326_CS_Pin, GPIO_PIN_RESET); // 鐗囬変俊鍙鋒媺浣
HAL_SPI_Transmit(&hspi1, &readRegister, 1, HAL_MAX_DELAY); // 鍙戦佽誨瘎瀛樺櫒鍦板潃
HAL_SPI_Receive(&hspi1, data, 2, HAL_MAX_DELAY); // 鎺ユ敹2涓瀛楄妭鐨勬暟鎹
HAL_GPIO_WritePin(LTC2326_CS_GPIO_Port, LTC2326_CS_Pin, GPIO_PIN_SET); // 鐗囬変俊鍙鋒媺楂
unsigned int adcValue = (data[0] << 8) | data[1]; // 灝嗘帴鏀跺埌鐨勬暟鎹鍚堝苟涓轟竴涓16浣嶇殑ADC鍊
```
鍦ㄨ繖涓紺轟緥涓錛屾垜浠浣跨敤readRegister鍦板潃璇誨彇LTC2326-16鐨凙DC鏁版嵁錛屽苟灝嗗叾瀛樺偍鍦╠ata緙撳啿鍖轟腑銆傜劧鍚庯紝鎴戜滑灝嗘帴鏀跺埌鐨勬暟鎹鍚堝苟涓轟竴涓16浣嶇殑ADC鍊箋
璇鋒敞鎰忥紝涓婅堪浠g爜鐗囨典粎涓虹ず渚嬶紝鍏蜂綋鐨勯厤緗鍜屾搷浣滃彲鑳戒細鍥犳偍鐨勫簲鐢ㄩ渶奼傝屾湁鎵涓嶅悓銆傛偍闇瑕佹牴鎹甃TC2326-16鍜孲TM32鐨勬暟鎹鎵嬪唽鍜岀‖浠舵枃妗h繘琛岃繘涓姝ョ殑閰嶇疆鍜屼嬌鐢ㄣ