久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2432|回復: 0
打印 上一主題 下一主題
收起左側

山外K60—學習筆記

[復制鏈接]
跳轉到指定樓層
樓主
ID:979806 發表于 2021-11-16 21:12 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
    寫這個的原因是,作業三需要理解學長們的程序(節能二隊程序),畫出思維導圖,而學長的程序是用KEA128作為開發板。

一、開發板 TRK-KEA128

如今車載的電器設備、娛樂功能越來越多,然而更多的功能也意味著更多的電子元件、更多的線路,這無疑讓車身布線成為一項十分艱難的工作,因此,CAN總線出現啦。

通俗的講,CAN總線好比在汽車的控制元件之間建立的網絡,使它們實現資源上的共享(CAN總線通信方式:節點發送的信息可被網絡中所有其他節點看到),這樣,不僅大大減少了相同傳感器、導線的數量,同時也使可以配置的控制單元讀取更多信息,實現更加精確的控制。

顯然,TRK-KEA128就是基于CAN功能的控制芯片。

TRK-KEA128板載的資源:

    采用80 LQFP封裝的Kinetis KEA128 MCU
    采用PK20DX128 MCU的板載OpenSDA調試和編程電路
    一個CAN通信接口、一個LIN通信接口
    一個環境光傳感器、四個用戶LEDs
    一個MCU RESET按鍵、一個SDA RESET按鍵、兩個用戶按鍵
    12V DC Jack輸入、5V MicroUSB口輸入

TRK-KEA128板載的電路功能:

    主控MCU以及延生的電路功能(例如IO口引出的用戶擴展接口、按鍵\LED電路、利用ADC功能拓展的光線傳感器電路)
    基于PK20DX128 MCU的板載OpenSDA調試電路
    通過外部PHY擴展的CAN、LIN接口電路

下圖是KEAZ128的中文手冊目錄,來自網絡(侵權必刪):
二、微控制器  PKEAZ128AMLK

主控MCU是 PKEAZ128AMLK,基于48MHz主頻的32位ARM Cortex-M0+處理器,集成了128KB FLASH以及16KB RAM,主要集成了CAN控制器,適合面向汽車網絡的應用設計,并且采用了常見的LQFP80封裝。

PKEAZ128AMLK微控制器的特點:

    高達48 MHz的ARM Cortex M0+內核,集成128KB FLASH、16KB RAM
    2.7V~5.5V寬電壓供電
    一個16通道12位SAR ADC,兩個模擬比較器、定時器、安全模塊等
    SPI、I2C、UART、CAN2.0A/B、KBI等接口,最高支持擴展71GPIOs
    電源管理模塊(PMC)具有三種模式:運行、等待、停止

PKEAZ128AMLK微控制器的特性:

    基于ARM Cortex-M0+處理器,功耗低,生態圈廣泛;
    集成了CAN2.0A/B控制器,具備CAN網關功能,適合需要CAN總線網絡的應用。

三、KEA128的KBI模塊

恩智浦Kinetis KE0x、KEA 系列MCU片上集成有KBI ( Keyboard Interrupts 鍵盤中斷模塊 )。

KEA128有兩個支持引腳中斷的 KBI 模塊,KBI0和KBI1。

KBI使用總線時鐘,SIM_SCGC寄存器使能KBI總線時鐘。
3.1  KBI端口

3.2 模塊功能配置代碼
3.2.1 初始化

void kbi_init(uint_16 kbiNo, uint_8 kbiMod, uint_8 EdgeSelect)
{
//(1)聲明局部變量
uint_8 module; //模塊號
uint_8 chn; //通道號
//(2)解析模塊號和通道號
kbi_mux_val(kbiNo,&module,&chn);
//(3)根據不同模塊號進行設置
switch(module)
{
//(3.1)KBI0模塊
case 0:
SIM_SCGC |= SIM_SCGC_KBI0_MASK; // 使能KBI0總線時鐘
KBI0_SC = 0; //初始化KBI0_SC寄存器(狀態寄存器)
if (kbiMod == 0) //進行邊緣檢測
{
KBI0_SC |= 0x00;
}
else //否則 檢測和電平控制
{
KBI0_SC |= 0x01;
}
//觸發條件
if(EdgeSelect == 0) //下降沿或低電平觸發
{
KBI0_ES |= KBI_ES_KBEDG(0x00); //當 kbiMod = 0,表示下降沿; 當 kbiMod = 1,表示下降沿或者低電平觸發
PORT_PUE0 |= 1<<chn;
}
else //上升沿或低電平觸發
{
KBI0_ES |= KBI_ES_KBEDG(1<<chn);//當 kbiMod = 0,表示上升沿; 當 kbiMod = 1,表示上升沿或者高電平觸發
}
KBI0_PE |= KBI_PE_KBIPE(1<<chn);//中斷使能:0-31位每一位代表每個引腳,0 禁止, 1 使能
break;
//(3.1)KBI1模塊
case 1:
SIM_SCGC |= SIM_SCGC_KBI1_MASK; // 使能KBI1總線時鐘
if (kbiMod == 0) //邊緣檢測
{
KBI1_SC |= 0x00;
}
else //邊緣檢測和電平控制
{
KBI1_SC |= 0x01;
}
if(EdgeSelect == 0) //觸發條件:0-31位每一位代表每個引腳
{
KBI1_ES |= KBI_ES_KBEDG(0x00); //當 kbiMod = 0,表示下降沿; 當 kbiMod = 1,表示下降沿或者低電平觸發
PORT_PUE1 |= 1<<chn; //上拉引腳
}
else
{
KBI1_ES |= KBI_ES_KBEDG(1<<chn); //當 kbiMod = 0,表示上升沿; 當 kbiMod = 1,表示上升沿或者高電平觸發
}
KBI1_PE |= KBI_PE_KBIPE(1<<chn); //中斷使能:0-31位每一位代表每個引腳,0 禁止, 1 使能
break;
}
}

None
3.2.2 KBI模塊中斷使能

void kbi_enable_irq(uint_16 kbiNo)
{
//(1)聲明局部變量
if(kbiNo == 0)
{
KBI0_SC |= KBI_SC_KBSPEN_MASK; //使能清除中斷源引腳寄存器
KBI0_SC |= KBI_SC_RSTKBSP_MASK; //中斷源引腳寄存器清0
KBI0_SC |= KBI_SC_KBIE_MASK; //使能KBI0中斷
}
else
{
KBI1_SC |= KBI_SC_KBSPEN_MASK; //使能清除中斷源引腳寄存器
KBI1_SC |= KBI_SC_RSTKBSP_MASK; //中斷源引腳寄存器清0
KBI1_SC |= KBI_SC_KBIE_MASK; //使能KBI1中斷
}
//(2)清空中斷寄存器
NVIC_ClearPendingIRQ(table_irq_kbi[kbiNo]);
//(3)使能中斷
NVIC_EnableIRQ(table_irq_kbi[kbiNo]);
}

None
3.2.3 禁用KBI引腳中斷

void kbi_disable_pin_irq(uint_16 kbiNo)
{
//(1)聲明局部變量
uint_8 module; //模塊號
uint_8 chn; //通道號
//(2)解析模塊號和通道號
kbi_mux_val(kbiNo,&module,&chn);
//(3)根據不同模塊號進行設置
switch(module)
{
//(3.1)禁止中斷使能:0-31位每一位代表每個引腳,0 禁止, 1 使能
case 0:
KBI0_PE &= ~KBI_PE_KBIPE(1<<chn);
break;
//(3.2)禁止中斷使能:0-31位每一位代表每個引腳,0 禁止, 1 使能
case 1:
KBI1_PE &= ~KBI_PE_KBIPE(1<<chn);
break;
}
}

None
3.2.4 使能KBI引腳中斷

void kbi_enable_pin_irq(uint_16 kbiNo)
{
//(1)聲明局部變量
uint_8 module; //模塊號
uint_8 chn; //通道號
//(2)解析模塊號和通道號
kbi_mux_val(kbiNo,&module,&chn);
//(3)根據不同模塊號進行設置
switch(module)
{
//(3.1)KBI0模塊
case 0:
KBI0_PE |= KBI_PE_KBIPE(1<<chn);//中斷使能:0-31位每一位代表每個引腳,0 禁止, 1 使能
break;
//(3.2)KBI1模塊
case 1:
KBI1_PE |= KBI_PE_KBIPE(1<<chn);//中斷使能:0-31位每一位代表每個引腳,0 禁止, 1 使能
break;
}
}

None
四、KEA128的時鐘配置

參見NXP KEA128 DS(S9KEA128P80M48SF0.pdf ),可以知道MCU最高支持48MHz core frequency.

中文版數據手冊:

具體的時鐘定義:

后續待更:

系統時鐘(core clock/system clock)與總線時鐘(bus clock/flash clock),FTM/PWT關系

core clock = ICSOUTCLK / div1, bus clock = core clock / div2, FTM/PWT時鐘 = core clock / div3
本文采用 CC BY-NC-SA 4.0 許可協議,著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。
作者:jarrod-zhou
來源:山外K60——學習筆記之二 – 科創與算法小屋
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 一级免费a| 日韩图区| 日韩在线免费观看视频 | 一区日韩 | 国产一区二区精品在线 | 日韩av在线一区二区 | 黄色免费在线观看 | 午夜精品一区二区三区在线播放 | 免费欧美视频 | 国产美女高潮 | 久久久久久精 | 日韩欧美在线观看视频 | 91资源在线观看 | 亚洲国产二区 | 亚洲一区综合 | 精品国产精品国产偷麻豆 | 国产成人免费视频网站视频社区 | 日韩免费| 欧美久久久久久久久中文字幕 | 久久综合久久自在自线精品自 | 亚洲女人天堂成人av在线 | 天天综合91 | 黄色大片毛片 | 成人三级在线播放 | 看a网站| 99热在这里只有精品 | 成人二区三区 | 伊人网站在线 | 91免费在线 | 国产农村妇女精品一二区 | 天天看片天天干 | 国产精品美女久久久久久不卡 | 国产91丝袜在线播放 | 美女黄网站视频免费 | 日韩欧美电影在线 | 看亚洲a级一级毛片 | 午夜精品影院 | 天天操狠狠操 | 中文字幕在线国产 | 午夜一区 | 91国自产 |