SPI串行擴展應用實例
例 將AT89C51片內RAM30H、31H單元中的16位數(shù)據(jù)通過SPI總線接口傳送到數(shù)模轉換器TLC 5615。
分析:TLC5615是3線串行總線接口10位電壓輸出數(shù)/模轉換器,它既可與單片機的 SPI總線接口相連接,又可與單片機的Microware總線(另外一種三線制總線)接口相連接。TLC5615內部結構如圖1所示。
TLC5615通過固定增益為2的運放緩沖電阻網(wǎng)絡,把10位數(shù)字數(shù)據(jù)轉換為模擬電壓。在TLC5615芯片上電時,內部電路把D/A寄存器復位為0。其輸出具有與基準輸入相同的極性,表達式為:Vo=2×REF×CODE/1024
圖1 TLC5615內部結構
其中,CODE是通過串行總線接口輸入的待轉換的數(shù)據(jù);REF是基準電壓。
TLC5615最大的串行時鐘速率不超過14MHz,10位DAC的建立時間為12.5μs,通常更新速率限制至80kHz以內。TLC5615的16位移位寄存器在SCLK的控制下從DIN引腳輸入數(shù)據(jù),高位在前,低位在后。16位移位寄存器中間的10位數(shù)據(jù)在上升沿的作用下輸入10位的D/A 寄存器供給D/A轉換。
AT89C51與TLC5615通過串行總線接口傳送8位數(shù)據(jù)如圖2所示。因AT89C51沒有SPI接口,可用軟件的辦法來模擬SPI的總線操作。P1.1模擬SPI的數(shù)據(jù)輸出端(MOSI),P1.2模擬SPI的SCK輸出端,P1.3模擬SPI的從機選擇端(SS);TLC5615是數(shù)/模轉換器,不會向AT89C51發(fā)送數(shù)據(jù),故不需要模擬SPI的數(shù)據(jù)輸入端(MISO)。
AT89C51將片內RAM30H、3lH單元中的16位數(shù)據(jù)傳送到TLC5615的參考程序如下:
編輯:admin 最后修改時間:2018-05-08