欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

奇怪的XPT2046_ADC芯片的SPI時序!

查看數: 4439 | 評論數: 21 | 收藏 0
關燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發布時間: 2021-11-11 20:56

正文摘要:

今天在寫XPT2046的ADC芯片程序時發現的一個問題對芯片使用SPI方式寫入指令時的時序問題下面上邏輯分析儀波形圖: 請看圖一: 0通道為時鐘信號 1通道為單片機寫入信號(數據) 2通道為ADC    輸 ...

回復

ID:1118271 發表于 2024-4-25 14:24
SHANWAZI 發表于 2021-11-15 21:58
非常感謝提出建議和思路我再細看一下芯片手冊。。。。。。!

你好,我也遇到這個問題,不知道能否給一下后面您的進一步探究結果
ID:232366 發表于 2021-11-15 21:58
188610329 發表于 2021-11-14 22:07
你試試看極端值,比如最低,或者最高,是不是給你全0,全1,是的話,就說明,通訊肯定是對的,如果不是的話 ...

非常感謝提出建議和思路我再細看一下芯片手冊!。。。。。!
ID:624769 發表于 2021-11-14 22:07
你試試看極端值,比如最低,或者最高,是不是給你全0,全1,是的話,就說明,通訊肯定是對的,如果不是的話,那么還是分析分析Driver 1 & 2 這里是不是有什么問題。 手冊我沒仔細看。畢竟這芯片我也沒有,研究了也沒啥用,但是,比較確定的是,Driver 1 & 2 肯定是有一定用處的。 也許是觸控板的控制,也許是ADC控制,細讀手冊吧, 按IO的標注來看,通信協議有點類似 MicroWire 非常接近SPI 但不是SPI的協議,比如第一個1, 以及等待Busy, 都是MicorWire 協議的特征,所以,如果真是MicroWire協議的話,那么,時序要求是非常嚴格的,你再仔細對照手冊看看吧。不排除,要ADC之前,要額外發個什么指令初始化之類的。
ID:232366 發表于 2021-11-14 16:59
188610329 發表于 2021-11-14 16:32
當Dout開始輸出的時候,轉換已經完畢了,
所以,你唯一需要等待的,只是BUSY 變低電平。
代碼上來講,你 ...

感謝指導。。。!  似乎明白這時序圖了。。。≡瓉硪恢笔俏铱村e時序圖了。
ID:624769 發表于 2021-11-14 16:32
當Dout開始輸出的時候,轉換已經完畢了,
所以,你唯一需要等待的,只是BUSY 變低電平。
代碼上來講,你只需要在發完PD0之后, BUSY == 1 之后,
再給一個時鐘 即第9時鐘,之后,
while(BUSY);  傻等BUSY為0即可
然后,就是接受12位數據。
按時序圖上看,收完11位數據后,收最后一位數據時 Driver 2 需要給低電平,然后再給3個空時鐘,然后CS拉高。
ID:624769 發表于 2021-11-14 14:05
SHANWAZI 發表于 2021-11-14 13:22
是的是的他的真正在處于轉換是不是在BUSY變成高電平后的八個時鐘周期或者是12個?

真正轉換,應該在busy為高,表示在轉換。
此時你再給一個時鐘,之后,就安靜等待Busy為低,等到busy 為低了,DOUT就會輸出,可能是1可能是0這個不用管,反正給夠12個時鐘,收足12個位數據,然后再算到底是多少。
ID:232366 發表于 2021-11-14 13:22

是的是的他的真正在處于轉換是不是在BUSY變成高電平后的八個時鐘周期或者是12個?
ID:624769 發表于 2021-11-14 12:49
SHANWAZI 發表于 2021-11-14 00:02
以按照您建議操作也并未有啥改善  反倒直接沒有輸出了!尷尬

是這個東西吧?



按時序圖上看, CS拉底后,DI 必須置1,然后再給時鐘,此時Dout會為低,所以你說的沒“輸出”如果指為低,那么就對了。
唯一不確定的,就是下面那兩條線Dirver1 and 2,是否必須在第五個時鐘拉高,是不是必要條件,但是感覺,拉高的時機來看,必須拉高了,后面才會有Busy, Dout才會有回傳。你現在橫豎不成功,可以試試。
ID:232366 發表于 2021-11-14 11:26
rayin 發表于 2021-11-14 09:56
用示波器抓下波形相對邏輯分析儀要準確一點, 邏輯分析儀對速度快點的信號可能不準確,給你造成誤導. 希望對 ...

感謝提出建議!
ID:232366 發表于 2021-11-14 11:25
TTQ001 發表于 2021-11-14 03:48
感謝分享有關 SPI 時序

一起學習
ID:517951 發表于 2021-11-14 09:56
用示波器抓下波形相對邏輯分析儀要準確一點, 邏輯分析儀對速度快點的信號可能不準確,給你造成誤導. 希望對你有用.
ID:420836 發表于 2021-11-14 03:48
感謝分享有關 SPI 時序
ID:232366 發表于 2021-11-14 00:02
188610329 發表于 2021-11-12 22:27
你試試看 調整一下時序,

拉低CS 之后,拉高DI, 給1微秒的延時之后,再拉高時鐘線,看你的時序圖  時鐘 ...

以按照您建議操作也并未有啥改善  反倒直接沒有輸出了!尷尬
ID:624769 發表于 2021-11-12 22:27
你試試看 調整一下時序,

拉低CS 之后,拉高DI, 給1微秒的延時之后,再拉高時鐘線,看你的時序圖  時鐘和DI幾乎同時拉高了,是不是這個原因造成你的DOUT 又拉低了呢?因為沒有收到有效信號?
ID:232366 發表于 2021-11-12 21:33
ID:232366 發表于 2021-11-12 18:12
188610329 發表于 2021-11-12 14:42
DOUT 一般需要10K上拉,你的MISO 低電平肯定有問題,沒有信號的時候,即使IO高阻也應該高電平。

有的!根據數據手冊所說此腳是AD串行數字量輸出供單片機讀取 而我單片機IO腳是有對應上拉電阻的10K應該沒什么問題吧? 依您所說即使沒有信號時 和此腳IO高阻也應該出現高電平狀態!但是現在恰恰相反! 而且出現電平跳變的地方也正是在寫入控制字節時的CLOCK脈沖下出現的?我現在就是因為這個才感到疑惑。按手冊所說DOUT引腳是在BUSY引腳出現下降沿時ADC轉換結果的最高位會出現在DOUT引腳,F在恰恰是在寫入控制字節時DOUT就已經在輸出了?在邏輯分析儀上可以看出。
ID:624769 發表于 2021-11-12 14:42
DOUT 一般需要10K上拉,你的MISO 低電平肯定有問題,沒有信號的時候,即使IO高阻也應該高電平。
ID:232366 發表于 2021-11-12 10:24
rayin 發表于 2021-11-12 08:42
2046這個電阻觸控IC上個月用過, clcok 信號要輸入8+1+16個,前面8個是寫入控制字節0x90,0xd0, 再給一個clc ...

非常感謝分享經驗!我現在只是使用此芯片作為ADC模塊 且并沒有把BUSY管腳到單片機上。
現在的這個時序好奇怪并沒有讀取DOUT的數據,
寫的同時也會有數據返回。。。。。!一時半會弄不明白。。。。!
ID:517951 發表于 2021-11-12 08:42
2046這個電阻觸控IC上個月用過, clcok 信號要輸入8+1+16個,前面8個是寫入控制字節0x90,0xd0, 再給一個clcok用于清除busy信號, 后面16個clock是用來接收12位AD轉換xy的坐標。
問題1: 寫入0x90,0xd0的時候,2046是不會發送AD信號的。要等busy信號清除之后,才發送。我用的過程中,寫入0x90,0xd0的時候,miso上是沒有信號跳變的,清除busy信號之后,2046才外發數據。
問題2:busy信號是AD轉換過程需要花費時間,完成了2046會清除。

以上是我的一點經驗共享。

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表