在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

雙劍合璧 !看HPM6750 如何賦能 ADS1263 實現32位高精度數據處理

先楫半導體HPMicro ? 2022-08-19 10:06 ? 次閱讀

本文摘自先楫開發者@xiashuang的測評內容,分享了先楫HPM6750 如何賦能 ADS1263 實現32位高精度數據采集及處理 ,來看看吧

--------------- 以下為測評內容---------------

(本期測評開發板為 HPM6750EVK)


據官方用戶手冊, TI 的32位ADC:ADS1263 性能很強,最高采樣到38.4k(26us),需要的處理器性能必須要具有很強的運算功能,正好試下HPM6750,于是畫了一塊PCB板,經過一周的等待終于到了,焊接了必要的元件就開干!


6ea5e830-1f2e-11ed-9ade-dac502259ad0.jpg

6ec32f12-1f2e-11ed-9ade-dac502259ad0.jpg


為了先驗證板子的情況,先用軟件模擬 SPI 進行實驗,需要 7 根信號線進行連接通訊,定義的GPIO如下:

*RST---------PE25
*DRDY--------PE26
*MISO--------SPI2.MISO  PB25
*MOSI--------SPI2.MOSI  PB22
*SCK---------SPI2.SCK   PB21
*CS----------PF1
*START-------PF4

先初始化IO口,時鐘的開啟已經在board_init()中完成,所以指示配置一下寄存器就行

 /*設置IO口為通用IO*/
  HPM_IOC->PAD[IOC_PAD_PE25].FUNC_CTL = IOC_PE25_FUNC_CTL_GPIO_E_25; 
    HPM_IOC->PAD[IOC_PAD_PE26].FUNC_CTL = IOC_PE26_FUNC_CTL_GPIO_E_26;
    HPM_IOC->PAD[IOC_PAD_PB25].FUNC_CTL = IOC_PB25_FUNC_CTL_GPIO_B_25;
    HPM_IOC->PAD[IOC_PAD_PB22].FUNC_CTL = IOC_PB22_FUNC_CTL_GPIO_B_22;
    HPM_IOC->PAD[IOC_PAD_PB21].FUNC_CTL = IOC_PB21_FUNC_CTL_GPIO_B_21;
    HPM_IOC->PAD[IOC_PAD_PF01].FUNC_CTL = IOC_PF01_FUNC_CTL_GPIO_F_01;
    HPM_IOC->PAD[IOC_PAD_PF04].FUNC_CTL = IOC_PF04_FUNC_CTL_GPIO_F_04;
/*配置輸入輸出*/
    /*ps-上下拉電阻 PE-上下拉開關 SMT-施密特 DS-驅動強度 OD-開漏  MS-電壓選擇*/
    uint32_t pad_ctl_out = IOC_PAD_PAD_CTL_PE_SET(1) | IOC_PAD_PAD_CTL_PS_SET(1);
    uint32_t pad_ctl_in = IOC_PAD_PAD_CTL_PE_SET(1) | IOC_PAD_PAD_CTL_PS_SET(1)|IOC_PAD_PAD_CTL_SMT_SET(1);
    gpio_set_pin_output_with_initial(HPM_GPIO0, GPIO_DO_GPIOE, 25, 1);
    gpio_set_pin_output_with_initial(HPM_GPIO0, GPIO_DO_GPIOB, 22, 1);
    gpio_set_pin_output_with_initial(HPM_GPIO0, GPIO_DO_GPIOB, 21, 1);
    gpio_set_pin_output_with_initial(HPM_GPIO0, GPIO_DO_GPIOF, 01, 1);
    gpio_set_pin_output_with_initial(HPM_GPIO0, GPIO_DO_GPIOF, 04, 1);
    HPM_IOC->PAD[IOC_PAD_PE25].PAD_CTL = pad_ctl_out;
    HPM_IOC->PAD[IOC_PAD_PB22].PAD_CTL = pad_ctl_out;
    HPM_IOC->PAD[IOC_PAD_PB21].PAD_CTL = pad_ctl_out;
    HPM_IOC->PAD[IOC_PAD_PF01].PAD_CTL = pad_ctl_out;
    HPM_IOC->PAD[IOC_PAD_PF04].PAD_CTL = pad_ctl_out;

    HPM_IOC->PAD[IOC_PAD_PE26].PAD_CTL = pad_ctl_in;
    HPM_IOC->PAD[IOC_PAD_PB25].PAD_CTL = pad_ctl_in;

相應的IO輸出及輸入讀取如下:

#define ADS1263_RESET_H gpio_write_pin(HPM_GPIO0, GPIO_DO_GPIOE, 25, 1)
#define ADS1263_RESET_L gpio_write_pin(HPM_GPIO0, GPIO_DO_GPIOE, 25, 0)
#define ADS1263_START_H gpio_write_pin(HPM_GPIO0, GPIO_DO_GPIOF, 4, 1)
#define ADS1263_START_L gpio_write_pin(HPM_GPIO0, GPIO_DO_GPIOF, 4, 0)
#define ADS1263_CS_H    gpio_write_pin(HPM_GPIO0, GPIO_DO_GPIOF, 1, 1)
#define ADS1263_CS_L    gpio_write_pin(HPM_GPIO0, GPIO_DO_GPIOF, 1, 0)
#define ADS1263_SCLK_H  gpio_write_pin(HPM_GPIO0, GPIO_DO_GPIOB, 21, 1)
#define ADS1263_SCLK_L  gpio_write_pin(HPM_GPIO0, GPIO_DO_GPIOB, 21, 0)
#define ADS1263_DIN_H   gpio_write_pin(HPM_GPIO0, GPIO_DO_GPIOB, 22, 1)
#define ADS1263_DIN_L   gpio_write_pin(HPM_GPIO0, GPIO_DO_GPIOB, 22, 0)
#define ADS1263_DOUT    gpio_read_pin(HPM_GPIO0, GPIO_DI_GPIOB, 25)
#define ADS1263_DRDY    gpio_read_pin(HPM_GPIO0, GPIO_DI_GPIOE, 26)

初始化ADS1263

int init_ads1263(void)

{
    printf("*************************************************************\r\n");
    printf("*                                                           *\r\n");
    printf("* ADS1263 TEST ^_^                                          *\r\n");
    printf("*                                                           *\r\n");
    printf("*************************************************************\r\n");

    GPIO_Configuration();
    ADS1263_INIT();//ADS1263初始化
    ADS1263_CS_L;
    Delay(0xf);
    ADS1263_WRITE(0x08);//START1 command,當START引腳為低電平時,可由此命令啟動ADC1的轉換。
    ADS1263_CS_H;
    Delay(0xf);
    return 0;
}
讀取AD值
int read_ads1263(void)
{
    if(ADS1263_DRDY != 1)
    {
        ADS1263_CS_L;
        Delay(0xf);
        ADS1263_WRITE(0x12);//讀取ADC1
        STATUS=ADS1263_READ_REG();
        ADC1_DATA=ADS1263_READ();
        checksum = ADS1263_READ_REG();
        ADS1263_CS_H; 
        count++;
        D[47]++;
        if(D[76] > 0)
        {
            ADC1_DATA = Filter_ch1(ADC1_DATA,D[76],D[77]);
        }
        ADC1_DATA = CELL_ADSOURSE_FILTER(ADC1_DATA,D[78],D[79]);

        mv_Now = ADC1_DATA / 2147483648.0 * 2500 / 32;//mv數
        //測試重量參數
        Weight = (mv_Now - mv_Zero)/ 10.0f * mv_Full * mv_Cali;
        INT32toREG(ADC1_DATA,&D[0]);//源碼
        FP32toREG(mv_Now,&D[2]);//mv數
        FP32toREG(Weight,&D[4]);//重量
        //校秤參數
        mv_Zero = REGtoFP32(&D[70]);//mv零點
        mv_Full = REGtoFP32(&D[72]);//滿量程
        mv_Cali = REGtoFP32(&D[74]);//校準系數    

        return ADC1_DATA;
    }
    else
        return 0;
}

利用上次移植的modbus 裸機例子,在主循環中不斷查詢AD狀態讀取。

連接好線,接上稱重傳感器開始測試


6ed788cc-1f2e-11ed-9ade-dac502259ad0.jpg

MODBUS上位機畫面,使用50kg C3電阻應變橋式稱重傳感器采樣400次精度在±1g,后來降低采樣到60次/s,滑動平均5次,精度在±0.2g 。

6eeff362-1f2e-11ed-9ade-dac502259ad0.png

邏輯分析儀抓取波形圖。采用軟件模擬SPI,速度在3M左右,讀取命令+狀態+4字節數據+校驗共7個字節數據在20.5us左右

6f18f2bc-1f2e-11ed-9ade-dac502259ad0.png


【實驗總結】

HPM6750 在配置IO時要注意名稱,因為IO引腳較多,宏定義也比較多,在初始化容易寫錯(這次因為IO編號寫錯導致兩個IO口沒有輸出,查了1個多小時)??磥韴D形化代碼工具還是很有必要的(*悄咪咪告訴你們,先楫圖形化代碼工具已經上線使用中啦);

HPM6750 的驅動強度和施密特單獨出來和I.MX RT系列比較像增加了IO控制的靈活性,PCB上高速信號的抗信號反射電阻和驅動限流電阻都可以省去了,等以后試下芯片的施密特能否代替外部輸入上的 74HC14;

HPM6750 運算速度很快,等以后試試高階FIR看看;

ADS1263 的高速采樣及其以來模擬電源的紋波,對內部DCDC電源還是要增加濾波器,采樣60HZ對50-hz和60hz紋波抑制后精度一下就上來了;

--------------- 以上為全部測評內容---------------


本期的測評分享就到這里,若想獲取更多關于HPM6750的精彩內容,可點擊下面 “ 閱讀原文 ”了解詳情哦~


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 開發板
    +關注

    關注

    25

    文章

    5062

    瀏覽量

    97581
收藏 人收藏

    評論

    相關推薦

    ADS1263如何實現設置通道然后讀取其對應的數據?

    現在正使用ADS1263做多通道數據采集,五個差分通道,AIN0/AIN1,AIN2/AIN3...........,現在程序已能正常讀寫寄存器,但是如何實現多通道數據的輪流 讀取還
    發表于 12-31 06:55

    ADS1263怎么和單片進行硬件連接?

    ADS1263那些引腳怎么連接?
    發表于 12-11 08:03

    設計ADS1263數據采集卡時遇到ADC實際數據輸出率與理論配置不符的情況,怎么解決?

    恒榮幸你能夠在百忙之中查閱我的帖子,在此表示我誠摯的謝意。 本人在設計ADS1263 數據采集卡時遇到ADC實際數據輸出率與理論配置不符的情況。具體細節如下。 ADS1263拓撲電路
    發表于 12-10 07:32

    ADS1263第3引腳AINCOM的作用是什么,怎么使用?

    目前選用TI的ADC采集芯片ADS1263,有些問題需要咨詢一下: 1、該芯片必須支持差分嗎? 2、第3引腳AINCOM的作用是什么,怎么使用? 3、還有第15、16晶振引腳是不是只能
    發表于 12-10 06:22

    ADS1263集成的激勵電流源IDAC有什么用?

    請問ADS1263集成的激勵電流源 IDAC有沒有使用案例,或者說這個IDAC用在什么場景下
    發表于 12-09 08:05

    ADS1263初始化后,讀取的寄存器值都為0,為什么?

    ADS1263初始化后,讀取的寄存器值都為0,這是為什么?
    發表于 12-09 07:03

    ADS1263相比ADS1255有什么缺點呢?

    您好,我們一直使用的是ADS1255,現在準備設計新的產品,看到了有32bit的ADS1263,我看到了ADS1263的很多優點,例如32bit等等。我感覺從功能上來看要優于ADS1
    發表于 11-29 08:26

    ADS1263通道之間信號出現串擾怎么解決?

    項目中使用到ADS1263做為多通道采集,目前ADS1263使用4個通道做輪詢采集,每個通道采用差分輸入,軟件配置單次采集模式(03寄存器配置為0x40),采集使用定時器定時采集,每個通道之間采集
    發表于 11-29 06:32

    精密ADS1263在PCB設計時芯片底部需要鋪銅接地嗎?

    精密ADC ADS1263在PCB設計時,芯片底部需要鋪銅接地嗎?
    發表于 11-28 08:33

    請問ADS1263/ADS1262這款ADC的腳“START”如果不使用,應該怎么處理這個腳,是直接接地嗎?

    請問ADS1263/ADS1262這款ADC的腳“START”如果不使用,應該怎么處理這個腳,是直接接地嗎?
    發表于 11-28 06:40

    ADS1263可以當ADS1262來用嗎?

    我使用的是ADS1263,但是只用ADC1,所以我是按照手冊10.4節的“initialization setup”的ADS1262的配置流程配置的寄存器。我感覺寄存器的數據寫入沒啥
    發表于 11-27 07:54

    ADS1263這種32bit的AD不需要使用儀表放大器作為前級也保證精度嗎?

    尊敬的工程師: 您好,Datasheet中,ADS1263在首頁的圖中就直接連接了電橋進行測量,如下圖所示: 我們公司以前都是采用儀表放大器+24AD(例如INA128儀表放大器
    發表于 11-27 06:25

    ADS1263模擬輸入管腳的輸入電容是多大?

    ADS1263模擬輸入管腳的輸入電容是多大?下圖是max11254給出的參數,不知ADS1263的是多少?datasheet里沒有給出。
    發表于 11-22 10:13

    ADS1263測電壓會發生數據移位的情況,為什么?

    ADS1263測接地點電壓測出來是0.0029左右為什么?我是連續測量200次取電壓平均值,會發生數據移位很多次測出電壓值為0.63,也有別的甚至負的電壓值,我是采用雙電源供電,內部參考電源
    發表于 11-15 07:59

    HPM6750 Bootloader設計

    我正在做一個hpm6750evk2的bootloader。設計很簡單,boot工程代碼只做跳轉到1M后的APP工程代碼處,APP工程就是做的一個點燈的程序而已,boot、APP工程都是跑
    發表于 10-23 18:59
    主站蜘蛛池模板: 美人岛福利| 女色专区| 69japanese日本100| 国产女乱淫真高清免费视频| 特黄毛片| 天天久久影视色香综合网| 人人爽人人澡| 久久久久国产一级毛片高清版 | 风流护士| 午夜资源站| 久久久久亚洲香蕉网| 456影院第一| 亚a在线| 伊人成综合| 手机在线观看你懂的| 嫩草影院网站入口| 成人性生活免费视频| 手机视频在线播放| 视频免费在线观看| 日本口工福利漫画无遮挡| 一级特级片| 欧美一区二区影院| 国产精品 色| 日日爽夜夜爽| 国内91视频| 亚洲色图欧美在线| 欧美成人午夜精品一区二区| 磁力bt种子搜索在线| 奇米四色7777| 一区二区三区高清| 香蕉视频网站在线播放| 在线观看亚洲天堂| 三级高清| 高清欧美一级在线观看| 日本免费人成黄页网观看视频| 欧美一区色| 91大神精品长腿在线观看网站| www.亚洲一区| 欧美午夜视频在线| 7777色鬼xxxx欧美色夫| 国产yin乱大巴视频|