raycooldes 发表于 2023-11-29 11:07:14

請教STM32L452RE透過SPI通MR-AD7606-F4問題

本帖最后由 raycooldes 于 2023-11-29 11:17 编辑

各位前輩好:

小弟約11月踏入STM32的世界,使用CUBEIDE開發,最近使用如標題上的硬體(AD7606模組),想通ADC模組看類比電壓值
抱歉因為我不是內地人,如果語言上用法有所不同請見諒。
硬體設備如下:
開發版:STM32L452RE
ADC模組:MR-AD7606-F4
目前走SPI通訊,已在R1焊上10K歐姆電阻
在STM32CUBEMX中設置SPI2通訊,這塊模組有8Channel,每個Byte收2Byte資料,所以我定義   uint16_t SPI_RECIEVE   作為儲存使用
-------------------------------------------------------------------------------------
目前看完手冊理解的流程如下:
1.先對AD7606做Initial,片選保持高電位
2.開始對CONVA和CONVB做PWM(這部分,CONVA和B我是並聯在一起的,同步採樣,PWM占空比設定98%,目前設定只輸出一週期後,
先維持高電平不做下一次取樣)
3.BUSY下緣觸發後,進入中斷準備SPI通訊,這部分有注意到T4有做Delay,
4.片選拉低後進行HAL_SPI_Receive_IT(&hspi2, spi_recieve_buffer, 16);
5.SPI通訊結束後拉高片選,準備進行下一次採樣。
-------------------------------------------------------------------------------------
如果我理解的程序沒錯,我目前的問題點在於,SPI每次收回來數據都會漏封包,像是時脈沒對齊
想請問以下基本資訊:
1.我所定義的矩陣uint16_t SPI_RECIEVE,搭配HAL_SPI_Receive_IT,內部的SIZE填寫16是正確的嗎?因為我理解出高低位元各1Byte*8Channel=16Byte。
-------------------------------------------------------------------------------------
附圖為我所設定的參數,圖左上為SPI2通訊設置,圖右上為手冊時序定義(我採用轉換後讀取)
圖左下為SPI2由STM32送出的一個BYTE之CLK時脈,搭配圖右下為8CHANNEL的SPI送出時脈(8Channel,每Channel 16bits)


raycooldes 发表于 2023-11-29 11:16:07

圖片好像LOADING不出來,我補在這邊

eric2013 发表于 2023-11-29 12:04:08

硬件接线的引脚原理图发个截图看下,我看下你的是怎么样的对应关系

raycooldes 发表于 2023-11-30 14:18:28

eric2013 发表于 2023-11-29 12:04
硬件接线的引脚原理图发个截图看下,我看下你的是怎么样的对应关系
您好,目前問題已解決,是SPI通訊中,訊號干擾的問題
目前解決干擾之後,收到的格式即正常



eric2013 发表于 2023-11-30 15:29:49

raycooldes 发表于 2023-11-30 14:18
您好,目前問題已解決,是SPI通訊中,訊號干擾的問題
目前解決干擾之後,收到的格式即正常

谢谢告知问题原因。

trytry 发表于 2023-12-7 18:57:49

可以看下原理图吗 ?DB8脚如何接,我看AD7606数据手册,串行模式下,DB8输出后4个通道的数据
页: [1]
查看完整版本: 請教STM32L452RE透過SPI通MR-AD7606-F4問題