![]() |
發布時間: 2023-10-28 18:37
正文摘要:MXA5481為10位(0~1023)可編程數字電位器(10k) 看數據手冊,本覺得這個芯片比較簡單,就三個命令字: ①、cmd=0x00:設置中間抽頭位置 ②、cmd=0x20:將 ... |
glinfei 發表于 2023-10-31 11:38 還真是,按你的方法先發8位再發剩余2位測試成功。為什么不能連續發10位呢,要分開發? |
lksbbs 發表于 2023-10-30 15:26 要使用SPI模式,MAX5481_SPI必須置1,未通訊前,MAX5481_CS也是置1,圖(3)的Figure4時序圖,MAX5481_CLK也是置1的。但是Figure5 的時序圖MAX5481_CLK卻是置0,改過后數據也是沒成功寫入芯片。 |
xianfajushi 發表于 2023-10-30 07:43 有測過,L端接地,H端接+5V,W端懸空,改變W端(value的值),測量Vwl電壓只有十幾毫伏,并且數值不變 |
試一下如下代碼:
DIN的數據在CLK的上升沿被置入,看你的代碼可能第一位被吃掉了。 |
是不是哪個地方沒有配置對呀,或者是延時做的不對 |
void MAX5481_Init(void) { MXA5481_SPI=1; MXA5481_CS=1; MXA5481_CLK=1; 全部等于1 這里不對吧??? |
npn 發表于 2023-10-30 08:23 芯片用的是MAX5481,數據手冊自然看對應的部分,這個不至于錯哈 |
數據手冊寫著MAX5481-MAX5484 你要搞清楚是什么型號。 |
不太懂,看看有沒有高手知道這問題。 |
大漠落日 發表于 2023-10-29 11:31 IC是新的,換了幾塊板都一樣,數據寫不進去 |
不會是IC有問題吧 |
1、我覺得時鐘沒對準,可能還是第一個節拍問題,建議MAX5481_Write(),for之前先加上 MXA5481_CLK = 0; 2、int轉char我這是轉的底八位啊,如果是我的應該MAX5481_Write(value>>2//一共十位先發8位 MAX5481_Write((value<<6)&0x00C0)// 再發剩余的兩位 3、另外,還建議如果懷疑IC壞了,直接用UP/DOWN模式操作一下試試唄。 |