專(zhuān)用芯片ATT7022C的電參數(shù)測(cè)量模塊設(shè)計(jì)
4 軟件設(shè)計(jì)
模塊的軟件設(shè)計(jì)首先是對(duì)各部分的通信接口進(jìn)行初始化,然后對(duì)芯片進(jìn)行校正,接著把實(shí)驗(yàn)校正的值寫(xiě)入ATT7022C的各個(gè)寄存器。最后,在主函數(shù)的循環(huán)語(yǔ)句中瀆取芯片各個(gè)寄存器的數(shù)據(jù)進(jìn)行顯示、存儲(chǔ)、向上位機(jī)傳輸。
4.1 ATT7022C與LPC2138的SPI接口函數(shù)
圖5、圖6分別為ATT7022C芯片的SPI接口讀、寫(xiě)時(shí)序圖。圖中,CS為芯片的片選信號(hào)線;SCLK為時(shí)鐘信號(hào)線;DIN為串行數(shù)據(jù)輸入線,用于把用戶的數(shù)據(jù)、命令、地址傳輸?shù)紸TT7022C芯片,它與ARM處理器的SPI總線的MOSI連接通信;DOUT為串行數(shù)據(jù)輸出線,用于從ATT7022C芯片讀取數(shù)據(jù),它與ARM處理器的SPI總線的MISO連接通信。從圖5中可以看出,當(dāng)向ATT7022C芯片寫(xiě)一個(gè)字節(jié)數(shù)據(jù)時(shí),SCLK高電平時(shí)在DIN引腳準(zhǔn)備好數(shù)據(jù),一個(gè)時(shí)鐘下降沿,就把一位數(shù)據(jù)寫(xiě)入芯片中。當(dāng)從ATT7022C讀取一個(gè)字節(jié)數(shù)據(jù)時(shí),一個(gè)時(shí)鐘上升沿,芯片會(huì)把一位數(shù)據(jù)傳輸?shù)紻OUT引腳,ARM讀取該引腳得到一位數(shù)據(jù)。使用ARM的SPI總線,數(shù)據(jù)在SCLK高電平時(shí)有效,所以在設(shè)置SPI控制寄存器時(shí)CPOL位應(yīng)置0。SPI傳輸?shù)牡谝晃粩?shù)據(jù)在第二個(gè)時(shí)鐘沿被采樣,CPHA位應(yīng)置1。ARM與ATT7022C芯片進(jìn)行數(shù)據(jù)通信時(shí),需要先向ATT7022C芯片寫(xiě)入8位的命令字,然后才能通過(guò)SPI接口讀出或?qū)懭?4位數(shù)據(jù)。數(shù)據(jù)傳輸時(shí)高位在先,LSBF位應(yīng)置0。在數(shù)據(jù)傳輸?shù)倪^(guò)程中CS要保持在低電平的狀態(tài),傳輸完成后應(yīng)把CS拉高。同時(shí)設(shè)置SPI總線為主模式、禁止SPl的中斷。本文引用地址:http://www.biyoush.com/article/194692.htm
SPI的接口函數(shù)如下:
評(píng)論