CC2530晶元的IEEE Mac位址

2021-09-02 03:29:14 字數 1283 閱讀 7340

2.4g的cc253x晶元由ti公司生產,可以很容易建立在基於ieee802.15.4標準協議上面,現今多數zigbee感測節點都是用cc253x的晶元。

cc253x的ieee位址共分為三種:primary ieee, secondary ieee和random ieee。其中primary ieee位址在生產時已經由ti預先確定,無法更改,而對於secondary ieee位址使用者則可以更改,如果無法獲取primary ieee 和 secondary ieee時,則會是用第三種隨機位址來代替自己的mac位址。

(1)primary ieee

首先了解一下晶元flash information page ,晶元儲存快閃儲存器資料資訊的起始位址為0x7800,所以在iocc2530.h標頭檔案中定義的flash information page的起始位置,#define p_infopage  pxreg( 0x7800 ),

另外,primary ieee位址就儲存在該page中,其儲存的位置偏移量為0xc, 所以要拿到primary ieee的位址,只需

uint8 *macaddrptr = (uint8 *)(p_infopage+hal_infop_ieee_oset);

for(int i=0;i<8;i++)

其中p_infopage = 0x7800,即儲存位址的起始位置,hal_infop_ieee_oset為0xc,是位址存放位置的偏移量,因為位址為8個位元組,所以讀取向後讀取8個位元組就是其mac位址。

(2)secondary ieee

根據cc253x的資料手冊,secondary ieee存放在flash的最後偏移量為0x18(24)的地方,對於f-256的cc253x,其flash有256k,即246*1024=262144位元組,所以其位址存放在262144-24=262120=0x3ffe8的位置,因為位址長度為8個位元組,所以位址的範圍為0x3ffe8~0x3ffef。

halflashread(hal_flash_ieee_page, hal_flash_ieee_oset, aextendedaddress, z_extaddr_len);
其中hal_flash_ieee_page = 127,即最後一頁,hal_flash_ieee_oset = (2048-16-8)=2024,即偏移量。由於是最後一頁,所以要對memctr(儲存控制暫存器)進行控制。具體**如下:

void halflashread(uint8 pg, uint16 offset, uint8 *buf, uint16 cnt)

memctr = memctr;

}

外部中斷 CC2530

中斷在計算機組成中都有詳細介紹。中斷分為外部中斷和內部中斷。對於cc2530片上系統來說,通用i o引腳設定為輸出時候,可以用於產生中斷,可以設定為外部訊號的上公升或下降沿出發。p0,p1,p2都有中斷使能位。對於ien1 2暫存器內的埠所有的位都是公共的。此外還包括其他很多態別的中斷 除了公共中斷...

CC2530學習筆記

第四單元 定時器計數器應用 1 定時器 計數器的分類 cc2530中共包括5個定時器 計數器,分別是定時器1 定時器2 定時器3 定時器4和睡眠定時器。2 定時器 計數器的作用 1 計數器功能 對任意時間間隔的輸入訊號的個數進行計數,一般用來對外界事件進行 計數。其輸入訊號一般來自微控制器外部開關型...

CC2530的系列課程

本課程主要是cc2530的系列課程,並附上原始碼。課程內容大體安排如下 第一章 zigbee簡介 第二章 zigbee軟體開發平台的搭建 zigbee cc2530 系列教程 3 點亮1個led實驗 zigbee cc2530 系列教程 4 按鍵控制led實驗 zigbee cc2530 系列教程 ...