你好
我使用Arduino控制ads124s06來轉換類比-數位訊號
當我在控制時,我可以用RREG、WREG設定並讀取register
但是當我使用0x08啟動轉換,0x12 RDATA時,卻都看不到轉換數據(回傳都是0)
請幫我檢查我的code哪裡有錯好嗎?
謝謝
以下是我的code
Chien-Yu hsu:
補充以下是 pin 連結訊號
標示pin+数字 為Arduino 的pin
PIN
function
connect1
AINCOM
0V2
AIN5
2.12V3
AIN4
2.63V4
AIN3
2.05V5
AIN2
2.65V6
AIN1
2.23V7
AIN0
2.21V8
START
pin119
CS
pin5310
DIN
pin5111
SCLK
pin5212
DOUT
pin5013
DRDY
pin1214
DGND
0V15
IOVDD
5V16
DVDD
3.3V17
CLK
0V18
RESET
pin1319
GPIO3
NA20
GPIO2
NA21
GPIO1
NA22
GPIO0
NA23
REFOUT
1uF to AVSS24
REFCOM
0V25
NC
NA26
AVDD
5V27
AVSS
0V28
AVSS-SW
0V29
REFN0
2.5V30
REFP0
0V31
REFN1
2.5V32
REFP1
0V
user151383853:
回复 Chien-Yu hsu:
也没有看见你的程序, 那几个 statx在哪里赋值了,却 print 了
Kailyn Chen:
ADS124S06的源代码没有提供,您可以参考一下ADS124S08 的source code中关于采集和处理数据部分。 www.ti.com/…/ADS124S08EVM
Chien-Yu hsu:
回复 user151383853:
1.一开始就已经先int statX定义了,在Arduino里SPI一次只能传送8bit,因此把24bit资料分三次读取,在data sheet第69页图90显示,读取资料时,DIN为low,所以我code为stat=SPI.transfer(0);让Arduino传送low讯号,并在同时交换DOUT讯号给Arduino(依我的理解:在Arduino里,SPI为同时输出与接收,要有输出讯号才能同时接收到讯号,且使用同一个SPI,因此我用stat=SPI.transfer(0) 传送8bit的0讯号借此收到data并将称为stat)
2.stat=SPI.transfer(0) 再print出去应该是没问题的,因为我可以用这方式读取register的值,输出值正确
3.目前我看到似乎跟我把REFP0/REFN0 Pin接错有关,改成REFP0=5V,REFN0=0V 读取值不再是只有输出的最大/最小值,但他对于即时反应好像怪怪的,调为AIN1/AINCOM,改变AIN1的电压,ADS124s06输出值却不会即时变化,我还不了解为什么?