【Aurix系列學習】TC264D最小系統搭建—時鐘電路和外部器件

目錄

系統時鐘

簡介

CGU(Clock Generation Unit)

CCU(Clock Control Unit)

電路原理圖

其它外設


TC264最小系統的大部分我們都在前面介紹了,只剩下了時鐘電路和外部器件。下面我們來介紹一下

系統時鐘

簡介

對於一個單片機來說,時鐘單元一定是最重要的一部分,因爲它相當於單片機的心臟。TC264單片機的時鐘單元叫做時鐘及時鐘控制單元(CCU),這個單元用來生成系統所需要的多種時鐘信號,其相對於單片機內部的拓撲圖如下:

圖1  時鐘系統

從圖上可以看出,SCU單元輸出的時鐘信號被送到了單片機內部的各個部分。大家肯定納悶,不是說系統時鐘是由CCU生成的麼,那爲什麼上面的圖上沒有指出CCU呢。實際上,這裏的SCU手冊裏沒有詳細解釋,不過根據我的猜測應該指的是System Clock Unit系統時鐘單元,只是和後面的System Control Units(SCU)單元出現了名稱衝突。

在手冊裏,描述建立一個完整的時鐘需要四步,如同把大象放進冰箱一樣簡單易懂:

  1. Basic clock generation (Clock Source)
  2. Clock speed upscaling
  3. Clock distribution
  4. Individual clock configuration

這四個步驟在圖上的表示大概是這樣的:

圖2  時鐘建立步驟

怎麼樣,是不是感覺簡單易懂?有一種三分鐘就能學完的趕腳?實際上,它也確實不難理解。整個步驟裏,第四部是相對各個時鐘的分別配置,實際上重點的就是前三步,它們又分別由CGU和CCU兩部分完成,所以它們也是重點,下面我們來詳細介紹一下。

CGU(Clock Generation Unit)

CGU單元,顧名思義指時鐘產生單元。實際上,我們所配置的外部時鐘電路實際上就是廣義上來說就是CGU。CGU本質上由兩部分:振盪電路和PLL鎖相環組成。前者手冊裏稱作Basic clock generation (Clock Source),後者則稱作Clock speed upscaling,其結構如圖:

圖3  CGU單元拓撲圖

由OSC振盪電路產生基礎時鐘信號,這個輸出的信號被送入後級的PLL中,與此同時,EVR穩壓器內部也有一個備用時鐘,可以在基礎時鐘出現問題時進行代替。然後,兩個PLL模塊會各生成一組PLL信號送入CCU(PLL和PLL2的區別只是最後分頻係數K2和K3的區別),再由CCU對其進行選擇和分頻送給系統各部分。

CCU(Clock Control Unit)

圖4  CCU單元拓撲圖

CCU單元如圖所示,就是簡單的對輸入信號針對各個部分分別處理,該分頻的分頻,該直接輸出的就直接輸出。這一塊在手冊裏稱作Clock distribution。總之,就像個保姆一樣把內部各個部分的時鐘都合理準備好,讓各部分都可以工作在合適的條件下。

那究竟CCU輸出的時鐘信號是哪些呢?我從手冊裏將其摘錄了一下,可以大概有一個瞭解:

圖5  各個時鐘簡介

英文看的不爽,我給整理了一下,雖然我覺得貌似這翻譯了和沒翻譯一樣……

 

不同類型時鐘簡介
時鐘類型 時鐘作用
系統總線時鐘
\large f_{SRI} 定義了SRI總線的運行性能,從而定義了所有連接的主從之間的數據交換率
\large f_{SPB} 定義了SPB總線的運行性能,從而定義了所有連接的主從機和中斷系統之間的數據交換率
CPU控制時鐘
\large f_{CPU0} 定義CPU0的執行速度
\large f_{CPU1} 定義CPU1的執行速度
PMU控制時鐘
\large f_{FSI2 } 定義用於讀取操作的PFlash的執行速度
\large f_{FSI} 定義所有其他flash操作的執行速度
外部選擇時鐘
\large f_{STM} 爲STMs(系統定時器)定義一個獨立於系統其餘部分的基本頻率。這允許STMs(系統定時器)以恆定的頻率運行
\large f_{GTM} 爲GTM(通用定時器)定義一個獨立於系統其餘部分的基本頻率。這使得GTM(通用定時器)可以在一個恆定的頻率下工作
\large f_{BAUD1} 爲“慢速”通信接口定義一個與系統其餘部分無關的基本頻率。這使得IIC可以在恆定的頻率下運行
\large f_{BAUD2} 爲“快速”通信接口定義一個與系統其餘部分無關的基本頻率。這使得QSPIs和PSI5S可以在恆定的baudrate(頻率)上運行
\large f_{CAN} 爲MultiCAN定義一個與系統其餘部分無關的基本頻率。這使得MultiCAN可以在一個恆定baudrate(頻率)上運行
\large f_{ASCLINF/ASCLINS} 爲ASCLINs定義一個與系統其餘部分無關的基本頻率。這使得ASCLINs可以在一個恆定baudrate(頻率)上運行
調試系統時鐘
\large f_{BBB} 由於調試基本不會對應用程序系統造成干擾,所以可以使用一個單獨的時鐘f_{BBB}來提供專用的調試資源。這允許在更改其他時鐘配置期間進行調試(跟蹤生成)。請注意,對於調試,f_{BBB}需要比f_{SPB}快或等於f_{SPB}

好了,對於時鐘原理不深入介紹了,一方面對於我們電路原理沒有深入分析的必要;另一方面,就算分析了你也不在乎,反正你只想當好一個代碼搬運工。不信?那你不信也得信,有本事你自己配寄存器啊=-=。

電路原理圖

時鐘的電路原理圖實際上是很簡單,而且單說原理圖我覺得上面的那些都沒必要,因爲基本和原理沒太大關係。不過還是要稍微介紹一下。264內部實際上有一個OSC電路,它一般和我們外部的晶體振盪器構成一個皮爾斯振盪迴路,從而可以產生一個固定頻率的信號。皮爾斯振盪電路作爲並聯諧振電路,晶振兩端需要負載電容對輸出頻率進行調整。這兩個電容在264裏既可以從外部接也可以直接使用內部的,當然內部的精度會有些差距。

圖6  兩種振盪器電路方式

所以我們按照慣例使用外部振盪器方式,搭建的電路如圖所示。當然,如果直接使用內部電容的話,內部電容的參考值需參照數據手冊來選擇。

圖7  時鐘電路原理圖

其它外設

本來這個不應該和時鐘電路一起說的,不過想想也沒啥不妥的,就放一起說了。我們的電路里一共留了兩個外設芯片,一個是24C64的EEPROM,一個是W25Qxx系列spi flash芯片。

本來想講一下原理的,但發現好像實在沒啥好說的,那就貼個圖簡單介紹一下吧。

圖8  24C64電路

電可擦寫可編程只讀存儲器(Electrically Erasable Programmable Read-only Memory, EEPROM)實現掉電情況下保存數據,設計溫溼度變送器採用M24C64芯片.芯片的1,2,3腳確定器件地址.5腳SDA和6腳SCL分別爲串行數據引腳和串行同步時鐘信號引腳,爲IIC總線接口,均連接上拉電阻.7腳WP爲寫保護引腳,當接入高電平時,芯片數據均處於禁止寫入狀態,只有在接地時芯片處於正常讀寫狀態.8腳和4腳分別爲VCC和GND,分別連接電源正極和電源地。

圖9  W25Qxx系列flash芯片

以W25Q64爲例:

W25Q64是華邦公司推出的大容量SPI FLASH產品,其容量爲64Mb。該25Q系列的器件在靈活性和性能方面遠遠超過普通的串行閃存器件。W25Q64將8M字節的容量分爲128個塊,每個塊大小爲64K字節,每個塊又分爲16個扇區,每個扇區4K個字節。W25Q64的最小擦除單位爲一個扇區,也就是每次必須擦除4K個字節。所以,這需要給W25Q64開闢一個至少4K的緩存區,這樣必須要求芯片有4K以上的SRAM纔能有很好的操作。 

W25Q64的擦寫週期多達10W次,可將數據保存達20年之久,支持2.7~3.6V的電壓,支持標準的SPI,還支持雙輸出/四輸出的SPI,最大SPI時鐘可達80Mhz。

  • CS:片選信號輸入 
  • DO(IO1):數據輸出(數據輸入輸出1) 
  • WP(IO2):寫保護輸入(數據輸入輸出2) 
  • GND:地信號 
  • DI(IO0):數據輸入(數據輸入輸出0) 
  • CLK:串行時鐘輸入 
  • HOLD(IO3):Hold輸入(數據輸入輸出3) 
  • VCC:電源 

 


如有疑問或錯誤,歡迎和我私信交流指正。
W.By ChenYX,未經授權,請勿轉載!

over~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章