1. 程式人生 > >CC1310模組上電問題

CC1310模組上電問題

CC1310為了實現低功耗模式,對每個外設都有電源管理功能,每個外設的電源手否上電可以單獨控制,並且預設是沒有上電的,參見Reference Manual 6.3 章。因此在每個外設使用前需要先進行電源使能操作,例如在進行串列埠初始化操作前需要先將串列埠模組上電:

HWREGBITW(PRCM_BASE+PRCM_O_PDCTL0,PRCM_PDCTL0_SERIAL_ON_BITN) =1;//SERIAL ON

但經過測試發現這樣是不夠的,現象UART初始化並沒有起作用,而採用單步除錯初始化就可以起作用,最後發現是因為UART模組上電有延遲,緊接其後進行UART初始化時UART還沒有上電完成,因此可以講以上程式碼改為如下方式,確保上電完成

while(!(HWREGBITW(PRCM_BASE+PRCM_O_PDSTAT0,PRCM_PDSTAT0_SERIAL_ON_BITN))){
        HWREGBITW(PRCM_BASE+PRCM_O_PDCTL0,PRCM_PDCTL0_SERIAL_ON_BITN) =1;//SERIAL ON
    }