chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

3天內不再提示

【合宙Air105開發(fā)板試用體驗】Air105的時鐘和延遲函數

開發(fā)板試用精選 ? 來源:開發(fā)板試用 ? 作者:電子發(fā)燒友論壇 ? 2022-12-02 11:25 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

本文來源電子發(fā)燒友社區(qū),作者:Michael, 帖子地址:https://bbs.elecfans.com/jishu_2287602_1_1.html

Air105 的時鐘


高頻振蕩源

  • 芯片支持使用內部振蕩源, 或使用外置12MHz晶體
  • 芯片上電復位后 ROM boot 啟動過程基于內部12MHz的振蕩器
  • 芯片內部集成的12MHz振蕩源精度為±2%, 精度一般
  • 使用外置12MHz晶體, 需要軟件切換
  • 經過PLL倍頻后為系統(tǒng)提供輸入
  • 倍頻后的PLL時鐘頻率可通過寄存器進行配置,可選頻率為:108MHz, 120MHz, 132MHz, 144MHz, 156MHz, 168MHz, 180MHz, 192MHz, 204MHz


分頻結構

PLL_CLK
外部 XTAL12M 或 內部 OSC12M -> 直通, 或PLL產生 108MHz - 204MHz

FCLK / CPU_CLK
PLL_CLK -> 2bit分頻(0, 2分頻, 4分頻) -> FCLK
FCLK就是主程序循環(huán)的時鐘

HCLK
FCLK -> 1bit分頻(默認=1, 2分頻) -> HCLK
當 FCLK 小于 102MHz 時不分頻, 否則2分頻

PCLK
HCLK -> 1bit分頻(默認=0, 不分頻) -> PCLK (外設頻率)
PCLK 是大部分外設tiMER, ADC, SPI, WDT, GPIO, I2C, UART 的時鐘

QSPI
FCLK -> 3bit分頻(默認=3, 4分頻) -> QSPI

低頻振蕩源

  • 芯片安全區(qū)基于內部32KHz,RTC默認基于內部OSC 32K, 使用外部XTAL 32K需要軟件切換
  • 支持內部或外部32KHz輸出


時鐘結構

(外部或內部 32K RTC OSC) -> SYSTICK
內部 32K OSC -> Security

時鐘設置

以下代碼基于 air105_project 的庫函數https://gitee.com/iosetting/air105_project

寄存器

寄存器手冊Air105芯片數據手冊_1.1.pdf

寄存器的基礎地址, 定義在 air105.h


  1. #define AIR105_FLASH_BASE (0x01000000UL) /*!< (FLASH? ???) Base Address */
  2. #define AIR105_SRAM_BASE (0x20000000UL) /*!< (SRAM? ?? ?) Base Address */
  3. #define AIR105_PERIPH_BASE (0x40000000UL) /*!< (Peripheral) Base Address */
  4. #define AIR105_AHB_BASE (AIR105_PERIPH_BASE)
  5. #define AIR105_APB0_BASE (AIR105_PERIPH_BASE + 0x10000)
  6. #define SYSCTRL_BASE (AIR105_APB0_BASE + 0xF000)
復制代碼


SYSCTRL_BASE

地址 = 外設基礎地址 0x40000000UL + APB0 偏移 0x10000 + SYSCTRL 偏移 0xF000
范圍 [0x4001_F000, 0x4001_FFFF]

時鐘振蕩源

振蕩源選擇


  1. SYSCTRL_SYSCLKSourceSelect(SELECT_EXT12M);
復制代碼

12MHz 時鐘來源選擇: 0:片外 XTAL, 1:片內 OSC


  1. void SYSCTRL_SYSCLKSourceSelect(SYSCLK_SOURCE_TypeDef source)
  2. {
  3. assert_param(IS_SYSCLK_SOURCE(source));
  4. switch (source)
  5. {
  6. case SELECT_EXT12M:
  7. // FREQ_SEL 是一個32bit的寄存器, 先與補碼(清零第12位), 然后寫入值(0)
  8. SYSCTRL->FREQ_SEL = ((SYSCTRL->FREQ_SEL & (~SYSCTRL_FREQ_SEL_CLOCK_SOURCE_Mask)) | SYSCTRL_FREQ_SEL_CLOCK_SOURCE_EXT);
  9. break;
  10. case SELECT_INC12M:
  11. // 先與補碼(清零第12位), 然后寫入值(1)
  12. SYSCTRL->FREQ_SEL = ((SYSCTRL->FREQ_SEL & (~SYSCTRL_FREQ_SEL_CLOCK_SOURCE_Mask)) | SYSCTRL_FREQ_SEL_CLOCK_SOURCE_INC);
  13. break;
  14. }
  15. }
復制代碼


時鐘頻率

設置使用默認的內部時鐘HSI(Internal clock)


  1. void SystemClock_Config_HSI(void)
  2. {
  3. // 設置CPU頻率, 直接選擇, 不需要計算
  4. SYSCTRL_PLLConfig(SYSCTRL_PLL_204MHz);
  5. // 分頻后產生 FCLK -> 這是主程序的時鐘
  6. SYSCTRL_PLLDivConfig(SYSCTRL_PLL_Div_None);
  7. // 分頻產生 HCLK, 如果 FCLK > 102MHz 則無論如何設置, 都會被二分頻
  8. SYSCTRL_HCLKConfig(SYSCTRL_HCLK_Div2);
  9. // 分頻產生 PCLK -> 這是大部分外設的時鐘
  10. SYSCTRL_PCLKConfig(SYSCTRL_PCLK_Div2);
  11. QSPI_SetLatency((uint32_t)0);
  12. }
復制代碼


PLL分頻的選項



  1. #define SYSCTRL_PLL_Div_None ((uint32_t)0x00)
  2. #define SYSCTRL_PLL_Div2 ((uint32_t)0x01)
  3. #define SYSCTRL_PLL_Div4 ((uint32_t)0x10)
復制代碼


設置 SysTick



  1. void Delay_Init(void)
  2. {
  3. SYSCTRL_ClocksTypeDef clocks;
  4. SYSCTRL_GetClocksFreq(&clocks);
  5. SysTick_Config(clocks.CPU_Frequency / 1000000); ///< 1us
  6. }
復制代碼


調用 SysTick_Config 將單個 SysTick 設置為 1 us.
也可以直接使用SYSCTRL->HCLK_1MS_VAL * 2 / 1000這個變量代表了當前時鐘配置下, 1ms需要的HCLK時鐘周期, 根據當前FCLK是否大于108MHz 確定是否要乘以2.
之后就會每隔1us調用 SysTick_Handler(void), 在這里設置 32bit g_current_tick 遞增, 可以用于延時控制. 因為32bit數的限制, 1.2個小時后會溢出, 所以這里有一個延遲的極限.



  1. void SysTick_Handler(void)
  2. {
  3. g_current_tick++;
  4. }
復制代碼


延遲函數

為避免溢出造成的延遲錯誤, 需要做一個判斷


  1. uint32_t get_diff_tick(uint32_t cur_tick, uint32_t prior_tick)
  2. {
  3. if (cur_tick < prior_tick)
  4. {
  5. // 如果當前值比前值還小, 說明發(fā)生了溢出, 用當前值加上原值取反(即原值離溢出的距離)
  6. return (cur_tick + (~prior_tick));
  7. }
  8. else
  9. {
  10. return (cur_tick - prior_tick);
  11. }
  12. }
復制代碼


延遲函數


  1. void Delay_us(uint32_t usec)
  2. {
  3. uint32_t old_tick;
  4. old_tick = g_current_tick;
  5. while (get_diff_tick(g_current_tick, old_tick) < usec);
  6. }
  7. void Delay_ms(uint32_t msec)
  8. {
  9. uint32_t old_tick;
  10. old_tick = g_current_tick;
  11. while (get_diff_tick(g_current_tick, old_tick) < (msec * 1000));
  12. }
復制代碼


代碼

代碼地址:https://gitee.com/iosetting/air105_project

可以使用Keil5 MDK 直接打開 Demos 目錄下的示例項目, 與Air105開發(fā)板接線參考前一篇合宙AIR105(一): Keil MDK開發(fā)環(huán)境, DAP-Link 燒錄和調試。
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯系本站處理。 舉報投訴
  • 合宙通信
    +關注

    關注

    0

    文章

    148

    瀏覽量

    2381
  • Air105
    +關注

    關注

    0

    文章

    48

    瀏覽量

    424
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    實戰(zhàn)Air780EPM:構建4G共享網關,服務WiFi與有線設備!

    通過Air780EPM開發(fā)板,我們可以輕松實現4G網絡作為數據出口,為周邊的WiFi設備和以太網設備提供互聯網共享,適用于移動辦公、遠程部署等場景。 一、多網融合概述 ? Air780EPM
    的頭像 發(fā)表于 09-30 16:03 ?876次閱讀
    實戰(zhàn)<b class='flag-5'>Air</b>780EPM:構建4G共享網關,服務WiFi與有線設備!

    以太網數傳輕松實現:Air8101+Air ETH_1000的完美搭檔

    Air8101核心搭配Air ETH_1000以太網小板,可快速實現設備與以太網網絡的連接,為數據實時上傳、遠程控制等功能提供堅實硬件基礎。 本文特別分享AirETH_1000+Air
    的頭像 發(fā)表于 09-04 14:25 ?289次閱讀
    以太網數傳輕松實現:<b class='flag-5'>Air8101+Air</b> ETH_1000的完美搭檔

    Air8101多網融合戰(zhàn)略升級:Air780EPM模塊助力4G聯網落地

    應用邁向新高度。 本文將分享Air8101核心通過外掛Air780EPM整機開發(fā)板,實現4G聯網的功能示例。 ? 一、硬件準備工作 ? 1.1 ?所需硬件
    的頭像 發(fā)表于 06-23 16:53 ?373次閱讀
    <b class='flag-5'>Air</b>8101多網融合戰(zhàn)略升級:<b class='flag-5'>Air</b>780EPM模塊助力4G聯網落地

    基于RK3576處理器,米爾RK3576開發(fā)板免費試用

    年7月19日 ? 評測數量: 3塊 ? 更多熱點文章閱讀 基于平頭哥TH1520芯片,潤開鴻HH-SCDAYU800A開發(fā)板免費試用 RISC-V開發(fā)板深度評測!頂級開發(fā)板免費
    的頭像 發(fā)表于 06-09 15:00 ?933次閱讀
    基于RK3576處理器,米爾RK3576<b class='flag-5'>開發(fā)板</b>免費<b class='flag-5'>試用</b>

    多功能+高擴展能力加持,Air8000開發(fā)板最新資料

    開發(fā)者福利來襲!Air8000開發(fā)板兼具全面功能與強大擴展性的開發(fā)神器,將讓物聯網開發(fā)、原型設計等任務更高效,加速項目從概念到產品的轉化。
    的頭像 發(fā)表于 06-09 14:18 ?514次閱讀
    多功能+高擴展能力加持,<b class='flag-5'>Air</b>8000<b class='flag-5'>開發(fā)板</b>最新資料

    基于RK處理器,創(chuàng)龍TL3562-MiniEVM開發(fā)板試用體驗

    數量: 10塊 ? 更多熱點文章閱讀 基于平頭哥TH1520芯片,潤開鴻HH-SCDAYU800A開發(fā)板免費試用 RISC-V開發(fā)板深度評測!頂級開發(fā)板免費
    的頭像 發(fā)表于 06-05 16:31 ?917次閱讀
    基于RK處理器,創(chuàng)龍TL3562-MiniEVM<b class='flag-5'>開發(fā)板</b><b class='flag-5'>試用</b>體驗

    性能強悍!合眾HZ-RK3568開發(fā)板試用體驗

    月19日 ? 評測數量: 10塊 ? 更多熱點文章閱讀 基于平頭哥TH1520芯片,潤開鴻HH-SCDAYU800A開發(fā)板免費試用 RISC-V開發(fā)板深度評測!頂級開發(fā)板免費
    的頭像 發(fā)表于 06-05 16:30 ?1107次閱讀
    性能強悍!合眾HZ-RK3568<b class='flag-5'>開發(fā)板</b><b class='flag-5'>試用</b>體驗

    有獎丨米爾 NXP i.MX91開發(fā)板免費試用來啦

    米爾與NXP合作發(fā)布的新品基于NXPi.MX91應用處理器的MYD-LMX91開發(fā)板免費試用名額來啦~~米爾提供了3套價值588元的MYD-LMX91開發(fā)板發(fā)起試用活動您不僅可以免費體
    的頭像 發(fā)表于 06-05 08:02 ?1117次閱讀
    有獎丨米爾 NXP i.MX91<b class='flag-5'>開發(fā)板</b>免費<b class='flag-5'>試用</b>來啦

    技術篇——Air8000開發(fā)板,一站式滿足多功能高擴展開發(fā)需求!

    對于追求高效開發(fā)的你來說,Air8000開發(fā)板最新資料庫的開放絕對不容錯過。無論是智能控制、數據采集還是多場景應用開發(fā),其多功能內核與高擴展接口,為各類項目提供“即插即用”式的解決方案
    的頭像 發(fā)表于 06-04 15:59 ?449次閱讀
    技術篇——<b class='flag-5'>Air</b>8000<b class='flag-5'>開發(fā)板</b>,一站式滿足多功能高擴展<b class='flag-5'>開發(fā)</b>需求!

    【評測試用】合眾HZ-T536開發(fā)板免費試用體驗

    【評測試用】合眾HZ-T536開發(fā)板免費試用體驗
    的頭像 發(fā)表于 05-27 08:05 ?698次閱讀
    【評測<b class='flag-5'>試用</b>】合眾HZ-T536<b class='flag-5'>開發(fā)板</b>免費<b class='flag-5'>試用</b>體驗

    Air8101革新物聯網配網:AirKiss方案讓設備連接更智能!

    、 Air8101開發(fā)板AirKiss配網示例? 下文以Air8101開發(fā)板為例,演示AirKiss配網實操要點。 此配網方式極為簡單,使用示例源碼將
    的頭像 發(fā)表于 05-26 13:12 ?521次閱讀
    <b class='flag-5'>Air</b>8101革新物聯網配網:AirKiss方案讓設備連接更智能!

    免費丨米爾 STM32MP257開發(fā)板有獎試用

    米爾與ST合作發(fā)布的新品基于STM32MP257應用處理器的MYD-LD25X開發(fā)板免費試用活動來啦~~米爾提供了2塊價值488元的MYD-LD25X開發(fā)板發(fā)起試用活動您不僅可以免費
    的頭像 發(fā)表于 03-20 08:05 ?886次閱讀
    免費丨米爾 STM32MP257<b class='flag-5'>開發(fā)板</b>有獎<b class='flag-5'>試用</b>

    有獎試用?。A-Eco-RA4M2-100PIN-V1.0開發(fā)板試用活動報名

    RA-Eco-RA4M2-100PIN-V1.0開發(fā)板試用活動
    的頭像 發(fā)表于 03-13 12:10 ?827次閱讀
    有獎<b class='flag-5'>試用</b>??!RA-Eco-RA4M2-100PIN-V1.0<b class='flag-5'>開發(fā)板</b><b class='flag-5'>試用</b>活動報名

    Air8000工業(yè)引擎:多IO多功能,即將量產

    科技近日宣布,其工業(yè)引擎Air8000即將進入量產階段。這款引擎集成了4G、Wi-Fi、BLE、GNSS、Gsensor及電源管理等多項功能,專為工業(yè)應用而設計,展現了強大的場景解決能力
    的頭像 發(fā)表于 01-07 14:56 ?2893次閱讀

    短消息(sms)解析 Air724UG低功耗模組軟件指南

    本指南教你如何用 Air724 開發(fā)板,使用 sms 功能,并通過日志觀察實驗結果。
    的頭像 發(fā)表于 12-11 09:28 ?1307次閱讀
    短消息(sms)解析  <b class='flag-5'>Air</b>724UG低功耗模組軟件指南