完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>
標簽 > nrf2401
nRF2401是單片射頻收發芯片,工作于2.4~2.5GHz ISM頻段,芯片內置頻率合成器、功率放大器、晶體振蕩器和調制器等功能模塊,輸出功率和通信頻道可通過程序進行配置。
nRF2401是單片射頻收發芯片,工作于2.4~2.5GHz ISM頻段,芯片內置頻率合成器、功率放大器、晶體振蕩器和調制器等功能模塊,輸出功率和通信頻道可通過程序進行配置。芯片能耗非常低,以-5dBm的功率發射時,工作電流只有10.5mA,接收時工作電流只有18mA,多種低功率工作模式,節能設計更方便。其DuoCeiverTM技術使nRF2401可以使用同一天線,同時接收兩個不同頻道的數據。nRF2401適用于多種無線通信的場合,如無線數據傳輸系統、無線鼠標、遙控開鎖、遙控玩具等。
nRF2401(最新版本為nRF2401A,nRF2401AG為無鉛工藝版本)是由Nordic公司出品的單芯片無線收發芯片,工作于2.4GHz~2.5GHz的全球免申請(ISM)頻率。芯片包括一個完全集成的頻率合成器,功率放大器,晶體振蕩器和調制器。發射功率和工作頻率等工作參數可以很容易的通過3線SPI端口完成。極低的電流消耗,在-5dBm的輸出功率時僅為10.5mA,在接收模式時僅為18mA。掉電模式可以很容易的實現低功耗需求。
nRF2401是單片射頻收發芯片,工作于2.4~2.5GHz ISM頻段,芯片內置頻率合成器、功率放大器、晶體振蕩器和調制器等功能模塊,輸出功率和通信頻道可通過程序進行配置。芯片能耗非常低,以-5dBm的功率發射時,工作電流只有10.5mA,接收時工作電流只有18mA,多種低功率工作模式,節能設計更方便。其DuoCeiverTM技術使nRF2401可以使用同一天線,同時接收兩個不同頻道的數據。nRF2401適用于多種無線通信的場合,如無線數據傳輸系統、無線鼠標、遙控開鎖、遙控玩具等。
nRF2401(最新版本為nRF2401A,nRF2401AG為無鉛工藝版本)是由Nordic公司出品的單芯片無線收發芯片,工作于2.4GHz~2.5GHz的全球免申請(ISM)頻率。芯片包括一個完全集成的頻率合成器,功率放大器,晶體振蕩器和調制器。發射功率和工作頻率等工作參數可以很容易的通過3線SPI端口完成。極低的電流消耗,在-5dBm的輸出功率時僅為10.5mA,在接收模式時僅為18mA。掉電模式可以很容易的實現低功耗需求。
兼容性
nRF2401是nRF2401A的早期型號,nRF2401AG是無鉛工藝型號。它們完全兼容,硬件可直接替換,代碼也可相互使用。
芯片結構
nRF2401內置地址解碼器、先入后出堆棧區、解調處理器、時鐘處理器、GFSK濾波器、低噪聲放大器、頻率合成器,功率放大器等功能模塊,需要很少的外圍元件,因此使用起來非常方便。QFN24引腳封裝,外形尺寸只有5×5mm。
工作模式
nRF2401有工作模式有四種:收發模式、配置模式、空閑模式和關機模式。nRF2401的工作模式由PWR_UP 、CE、CS三個引腳決定。
收發模式
nRF2401的收發模式有ShockBurstTM收發模式和直接收發模式兩種,收發模式由器件配置字決定,具體配置將在器件配置部分詳細介紹。
ShockBurstTM收發模式ShockBurstTM收發模式下,使用片內的先入先出堆棧區,數據低速從微控制器送入,但高速(1Mbps)發射,這樣可以盡量節能,因此,使用低速的微控制器也能得到很高的射頻數據發射速率。與射頻協議相關的所有高速信號處理都在片內進行,這種做法有三大好處:盡量節能;低的系統費用(低速微處理器也能進行高速射頻發射);數據在空中停留時間短,抗干擾性高。nRF2401的ShockBurstTM技術同時也減小了整個系統的平均工作電流。在ShockBurstTM收發模式下,nRF2401自動處理字頭和CRC校驗碼。在接收數據時,自動把字頭和CRC校驗碼移去。在發送數據時,自動加上字頭和CRC校驗碼,當發送過程完成后,數據準備好引腳通知微處理器數據發射完畢。
ShockBurstTM發射流程接口引腳為CE,CLK1,DATAA. 當微控制器有數據要發送時,其把CE置高,使nRF2401工作;B. 把接收機的地址和要發送的數據按時序送入nRF2401;C. 微控制器把CE置低,激發nRF2401進行ShockBurstTM發射;D. nRF2401的ShockBurstTM發射給射頻前端供電;射頻數據打包(加字頭、CRC校驗碼);高速發射數據包;發射完成,nRF2401進入空閑狀態。
ShockBurstTM接收流程接口引腳CE、DR1、CLK1和DATA(接收通道1)A. 配置本機地址和要接收的數據包大小;B. 進入接收狀態,把CE置高;C. 200us后,nRF2401進入監視狀態,等待數據包的到來;D. 當接收到正確的數據包(正確的地址和CRC校驗碼),nRF2401自動把字頭、地址和CRC校驗位移去;E. nRF2401通過把DR1(這個引腳一般引起微控制器中斷)置高通知微控制器;F. 微控制器把數據從nRF2401移出;G. 所有數據移完,nRF2401把DR1置低,此時,如果CE為高,則等待下一個數據包,如果CE為低,開始其它工作流程。
直接收發模式在直接收發模式下,nRF2401如傳統的射頻收發器一樣工作。直接發送模式接口引腳為CE、DATAA. 當微控制器有數據要發送時,把CE置高;B. nRF2401射頻前端被激活;C. 所有的射頻協議必須在微控制器程序中進行處理(包括字頭、地址和CRC校驗碼)。
直接接收模式接口引腳為CE、CLK1和DATAA. 一旦nRF2401被配置為直接接收模式,DATA引腳將根據天線接收到的信號開始高低變化(由于噪聲的存在);B. CLK1引腳也開始工作;C. 一旦接收到有效的字頭,CLK1引腳和DATA引腳將協調工作,把射頻數據包以其被發射時的數據從DATA引腳送給微控制器;D. 這頭必須是8位;E. DR引腳沒用上,所有的地址和CRC校驗必須在微控制器內部進行。
配置模式在配置模式,15字節的配置字被送到nRF2401,這通過CS、CLK1和DATA三個引腳完成,具體的配置方法請參考本文的器件配置部分。
空閑模式nRF2401的空閑模式是為了減小平均工作電流而設計,其最大的優點是,實現節能的同時,縮短芯片的起動時間。在空閑模式下,部分片內晶振仍在工作,此時的工作電流跟外部晶振的頻率有關,如外部晶振為4MHz時工作電流為12uA,外部晶振為16MHz時工作電流為32uA。在空閑模式下,配置字的內容保持在nRF2401片內。
關機模式在關機模式下,為了得到最小的工作電流,一般此時的工作電流小于1uA。關機模式下,配置字的內容也會被保持在nRF2401片內,這是該模式與斷電狀態最大的區別。
NRF2401+芯片的ACK帶數據返回功能的理解和總結
NRF2401+芯片主要特點:
工作在2.4~2.5GHz頻段;
無線數據傳輸率可達1~2MHz;
SPI接口速率0~8MHz;
125可選工作頻道(可跳頻);
工作電壓1.9~3.6V;
增強型ShockBurst™模式;
當NRF2401+模塊工作在增強型ShockBurst™模式時,可以使用自動應答和自動重發功能,當然這些都不具有誘惑力,最多提高了數據傳輸的效率和穩定性,數據傳輸依然是單方向的。增強型ShockBurst™模式下有一種ACK帶數據返回的功能,這個功能很強大,不需要人為的在程序中切換接收和發送狀態,只需要通過寄存器簡單的配置,就可以實現數據的雙向傳輸,對于平常的學習,尤其是利用上位機調試參數,非常方便。本文主要介紹這種模式的配置以及自己對過程的理解、總結和一些疑問。
一、SPI指令和一部分寄存器如下:
SPI指令:
部分寄存器:
二、增強型ShockBurst™模式下ACK帶數據返回功能的配置過程解釋:
1、關于ACK帶數據返回功能需要的額外配置:
參考手冊部分:
由手冊可知,如果要使用ACK帶數據返回功能,必須額外滿足:
~使能動態數據長度,即接收和發送數據長度可變,詳見主接收設備配置部分解釋;
~主接收端將隨ACK返回的數據利用W_ACK_PAYLOADAY指令放入發送緩沖區,詳見后文;
~置位FEATURE寄存器中的位EN_ACK_PAY,使能ACK帶數據返回功能;
~最大重發時間間隔的設置步進值為250us,設置為500us適用于0~32任意長度字節的負載數據;(感覺翻譯很別扭,上面的英文意思倒是很清晰!!)
注:此程序配置中一個主發送設備,一個主接收設備,均使用通道0進行數據傳輸;
2、主發送設備的配置過程解析
//函數名 : void NRF_TX_Mode(void)
//功能 : 初始化NRF2401+模塊為發送模式
//輸入參數: 無
//返回參數: 無
void NRF_TX_Mode(void)
{
//CE拉低,配置寄存器
NRF_CE_LOW();
// 寫TX節點地址(1)
SPI_NRF_WriteBuf(NRF_WRITE_REG+TX_ADDR,TX_ADDRESS,TX_ADR_WIDTH);
// 寫RX節點地址 (2)
SPI_NRF_WriteBuf(NRF_WRITE_REG+RX_ADDR_P0,RX_ADDRESS,RX_ADR_WIDTH);
// 使能通道0的自動應答(3)
SPI_NRF_WriteReg(NRF_WRITE_REG+EN_AA,0x01);
// 使能通道0的接收地址(4)
SPI_NRF_WriteReg(NRF_WRITE_REG+EN_RXADDR,0x01);
//設置自動重發間隔時間:500us最大自動重發次數:10次(5)
SPI_NRF_WriteReg(NRF_WRITE_REG+SETUP_RETR,0x1a);
// 設置RF頻率,手冊有詳細解釋(6)
SPI_NRF_WriteReg(NRF_WRITE_REG+RF_CH,50);
// 設置TX發射參數,0db增益,2Mbps,低噪聲增益開啟(7)
SPI_NRF_WriteReg(NRF_WRITE_REG+RF_SETUP,0x0f);
//清除發送和接收緩沖區(8)
SPI_NRF_WriteReg(FLUSH_TX,0xff);
SPI_NRF_WriteReg(FLUSH_RX,0xff);
//IRQ收發完成中斷開啟,16位CRC,主發送(9)
SPI_NRF_WriteReg(NRF_WRITE_REG + CONFIG_NRF, 0x0e);
//Active命令(10)
SPI_NRF_RW(0x50);
SPI_NRF_RW(0x73);
//使能動態數據長度(11)
SPI_NRF_WriteReg(NRF_WRITE_REG+0x1c,0x01);
//使能ACK帶數據返回功能(12)
SPI_NRF_WriteReg(NRF_WRITE_REG+0x1d,0x06);
//CE拉高,進入發送模式(13)
NRF_CE_HIGH();
}
程序解釋:
(1)僅用于主發送設備,寫主發送設備發送節點地址,地址通過軟件設定,可通過操作寄存器SETUP_AW修改地址寬度(1~5字節),寄存器復位之后,默認地址寬度為5字節;
主發送設備的發送節點地址必須和主接收設備的接收節點地址一致,否則接收不到數據。
通道0和1有5個字節寬度;
通道2~5的高32位必須和通道1相同,低8位可以通過軟件設置;
參考手冊寄存器部分:
(2)寫接收節點地址,只有通道0可以用來接收ACK信號或ACK+返回數據,此地址必須和主發送設備的發送節點地址相同,即和(1)的相同。
(3)通道0的自動應答,必須;
(4)使能通道0的接收地址,必須;
(5)最大重發間隔時間至少設置為500us,最大重發次數1~15;
參考手冊:ARD=500µs will be long enough for any payload length.
(6)設置通信頻率,取值為0~125,取值50,即NEF模塊的射頻頻率為2.450GHz;
參考手冊:
上文大概意思是:可以通過給寄存器RF_CH這個寄存器寫入參數0~125,使得NRF模塊射頻通道的通信頻率在2.400GHz~2.525GHz范圍內,射頻信道的頻率分辨率為1MHz,為了防止信道發生重疊,不同信道之間的射頻頻率相差至少2MHz, 射頻信道的頻率由下列公式計算:
F = 2400 + rf_ch [MHz]
為了能夠彼此通信,發射機和接收機的射頻信道的頻率必須相同,即寄存器RF_CH設置一致。
(7)設置發射參數,具體參考手冊寄存器部分;
(8)清除發送和接收緩沖區,如果不進行清除,測試可用;
(9)配置中斷和CRC校驗等,CRC校驗8位和16位均可;
(10)激活命令,用于激活R_RX_PL_WID、W_ACK_PAYLOAD 、W_TX_PAYLOAD_NOACK;
參考手冊SPI指令部分:
從手冊中可以看到,使用ACTIVE(0x50)指令并寫入數據0x73可以激活R_RX_PL_WID、W_ACK_PAYLOAD 指令和W_TX_PAYLOAD_NOACK (存在于寄存器FEATURE)狀態,使用 R_RX_PL_WID指令可以得到接收到的數據長度;W_ACK_PAYLOAD 指令僅用于主接收設備,存儲將要和ACK一起返回的數據,PPP的取值范圍為000~101,表示0~6六個數據通道,所以W_ACK_PAYLOAD 指令的取值范圍為0xa8~0xad,分別表示0~6六個通道,具體使用在主接收部分講解。
(11)操作寄存器DYNPD使能通道0的動態數據長度;
ACK帶數據返回功能必須使用動態數據長度,詳見靜態和動態數據長度介紹部分。
(12)置位寄存器 FEATURE寄存器里的 EN_DPL 和 EN_ACK_PAY狀態位;
從下面的參考手冊可以得知,要想使能通道0的動態數據長度,還需要使能EN_DPL位;
置位 EN_ACK_PAY狀態位的目的是使能ACK帶數據返回功能。
參考手冊寄存器部分:
(13)進入發送模式。
// 函數名 : void NRF_Tx_Dat(u8 *txbuf , u8 datlen)
// 功能 :發送數據
// 輸入參數: txbuf(需要發送的數據包),datlen(數據長度)
// 返回參數: 無
void NRF_Tx_Dat(u8 *txbuf , u8 datlen)
{
// CE拉低,將數據寫入緩沖區
NRF_CE_LOW();
// 寫數據到TX BUF 最大32個字節 (14)
SPI_NRF_WriteBuf(WR_TX_PLOAD,txbuf,datlen);
// CE為高,發送數據包(15)
NRF_CE_HIGH();
}
(14)使用W_TX_PAYLOAD指令將要發送的數據寫入發送緩沖區;
(15)CE置高10us后,主發送設備開始發送數據;
// 函數名 : void Nrf_Check_Event(u8 *rxbuf)
// 功能 :接收ACK返回的數據,并清除相應中斷標志位
// 輸入參數: txbuf(需要發送的數據包),datlen(數據長度)
// 返回參數: 無
注:此函數在主程序中每隔2ms執行一次,檢測是否接收到和ACK一起返回的數據
void Nrf_Check_Event(u8 *rxbuf)
{
//得到中斷標志位(16)
u8 sta = SPI_NRF_ReadReg(NRF_READ_REG + STATUS);
if(sta & RX_DR)
{
//得到數據長度(17)
u8 rx_len = SPI_NRF_ReadReg(R_RX_PL_WID);
if(rx_len《33)
{
// 接收返回數據
SPI_NRF_ReadBuf(RD_RX_PLOAD,rxbuf,rx_len);
// 解析收到數據
Data_Receive_Anl(rxbuf,rx_len);
}
else
{
// 清空接收緩沖區
SPI_NRF_WriteReg(FLUSH_RX,0xff);
}
}
if(sta & TX_DS)
{
}
if(sta & MAX_RT)
{
if(sta & 0x01)
{
// 清空發送緩沖區
SPI_NRF_WriteReg(FLUSH_TX,0xff);
}
}
// 清除中斷標志位(18)
SPI_NRF_WriteReg(NRF_WRITE_REG + STATUS, sta);
}
(16)初始化過程中使能了發送成功、接收成功、達到最大重發次數中斷,此處目的是得到中斷標志位,從而執行相應的操作;
(17)從上面的指令部分可以得知,利用R_RX_PL_WID指令可以得到接收到的數據的長度;
(18)中斷標志位必須清除。
3、主接收設備的配置過程解析
//函數名 : void NRF_RX_Mode(void)
//功能 : 初始化NRF2401+模塊為發送模式
//輸入參數: 無
//返回參數: 無
void NRF_RX_Mode(void)
{
NRF_CE_LOW();
//寫TX節點地址(1)
// SPI_NRF_WriteBuf(NRF_WRITE_REG+TX_ADDR,TX_ADDRESS,TX_ADR_WIDTH);
//寫RX節點地址(2)
SPI_NRF_WriteBuf(NRF_WRITE_REG+RX_ADDR_P0,RX_ADDRESS,RX_ADR_WIDTH);
//使能通道0的自動應答(3)
SPI_NRF_WriteReg(NRF_WRITE_REG+EN_AA,0x01);
//使能通道0的接收地址(4)
SPI_NRF_WriteReg(NRF_WRITE_REG+EN_RXADDR,0x01);
//設置RF通信頻率(5)
SPI_NRF_WriteReg(NRF_WRITE_REG+RF_CH,50);
//設置自動重發間隔時間:500us;最大自動重發次數:10次(6)
// SPI_NRF_WriteReg(NRF_WRITE_REG+SETUP_RETR,0x1a);
//選擇通道0的有效數據寬度(靜態數據長度需要配置,動態數據長度不需要配置)(7)
//SPI_NRF_WriteReg(NRF_WRITE_REG+RX_PW_P0,RX_PLOAD_WIDTH);
//設置RX發射參數,0db增益,2Mbps,低噪聲增益開啟(8)
SPI_NRF_WriteReg(NRF_WRITE_REG+RF_SETUP,0x0f);
SPI_NRF_WriteReg(FLUSH_TX,0xff);
SPI_NRF_WriteReg(FLUSH_RX,0xff);
// IRQ收發完成中斷開啟,16位CRC,主接收(9)
SPI_NRF_WriteReg(NRF_WRITE_REG + CONFIG, 0x0f);
// ACTIVE (10)
SPI_NRF_RW(0x50);
SPI_NRF_RW(0x73);
//使能動態數據長度(11)
SPI_NRF_WriteReg(NRF_WRITE_REG+0x1c,0x01);
//使能ACK帶數據返回功能 (12)
SPI_NRF_WriteReg(NRF_WRITE_REG+0x1d,0x06);
//CE拉高,進入接收模式(13)
NRF_CE_HIGH();
}
(1)寄存器TX_ADDR “ Used for a PTX device only”,即用于主發送設備,主接收設備配置這個寄存器不起作用;
(2)配置主接收設備的接收數據節點地址,必須和主發送設備的發送端節點數據地址相同,否則接收不到數據;
(3)使能通道0的自動應答,因為主發送設備通過通道0進行數據發送;
從手冊中可以看到,如果使能ACK,則需要使能相應通道的自動應答;
參考手冊部分:
(4)使能通道0的接收地址,目的是能接受數據;
(5)取值50,即NEF主接收模塊的射頻頻率為2.450GHz;
主發送模塊的射頻頻率必須和主接收模塊的射頻頻率相同;
詳見主發送部分介紹;
(6)設置”最大重發次數“和”自動重發延時“;
如手冊所示,只應用于主發送端,主接收端不需要配置;
所謂“自動重發”是指,當發送端在特定的時間內沒有接收到返回的ACK時,則重新發送剛才的數據,直到達到最大重發次數;
參考手冊部分:
(7)配置接收數據長度;
只有靜態數據長度模式下需要配置,動態數據長度模式下不需要配置;
參考手冊部分:
通過手冊可知,在增強型ShockBurst 模式下,傳輸數據長度(最大32字節)有靜態和動態兩種模式,所謂靜態指每次發送的數據長度固定,所謂動態是指每次發送的數據可隨意長度,但是在ACK帶數據返回模式下,只能使用動態數據長度。
靜態數據長度模式下,主接收端可通過配置RX_PW_P0寄存器,設置接收數據長度,接收數據長度必須和發送端發送的數據長度相等;
動態數據長度模式下,接收端(無論是主接收端還是主發送端處于接受模式時)可以使用用R_RX_PL_WID(0110 0000)指令得到接收數據長度;
為了使能動態數據長度模式,FEATURE寄存器中的EN_DPL位必須置位(無論主發送端還是主接收端),同時主發送端的寄存器DYNPD中的位DPL_P0必須置位,主接收端寄存器DYNPD中的位DPL_PX必須置位(用到哪個通道置位哪個通道)。
(8)參數配置,必須和主發送設備一致,詳見手冊;
(9)基本配置;
必須和主發送端設置一致;
(10)(11)(12)詳見主發送端配置說明;
(13)CE置高130us后,主接收設備開始檢測是否有數據需要接收;
//函數名 : void NRF_Tx_Dat_AP(u8 * tx_buf, u8 len)
//功能 : ACK帶數據返回函數
//輸入參數: tx_buf(發送數據包),len(數據長度)
//返回參數: 無
void NRF_Tx_Dat_AP(u8 * tx_buf, u8 len)
{
// CE拉低,將數據寫入緩沖區
NRF_CE_LOW();
// 寫數據到TX BUF 最大32個字節(14)
SPI_NRF_WriteBuf(0xa8, tx_buf, len);
// CE為高,發送數據包
NRF_CE_HIGH();
}
(14)ACK帶數據返回時,使用W_ACK_PAYLOAD(10101PPP)指令存儲將要返回的數據,PPP表示通道0~5,取值為001~101;如果同時有六個設備(主發送)與一個設備(主接收)進行通信,則0xac表示接收端此時使用的是第4通道帶數據返回;
// 函數名 : u8 Nrf_Check_Event(u8 *rxbuf)
// 功能 :接收數據,并清除相應中斷標志位
// 輸入參數: txbuf(接收的數據包),datlen(數據長度)
// 返回參數: sta (中斷標志位)
u8 Nrf_Check_Event(u8 *rxbuf)
{
u8 sta = 0;
sta = SPI_NRF_ReadReg(STATUS);
if(sta & RX_DR)//接收中斷
{
//得到數據長度
u8 rx_len = SPI_NRF_ReadReg(R_RX_PL_WID);
//讀取數據
SPI_NRF_ReadBuf(RD_RX_PLOAD,rxbuf,rx_len);
SPI_NRF_WriteReg(FLUSH_RX,NOP);
}
if(sta & TX_DS)
{
}
if(sta & MAX_RT)
{
if(sta & 0x01)
{
SPI_NRF_WriteReg(FLUSH_TX,0xff);
}
}
// 清除中斷標志位
SPI_NRF_WriteReg(NRF_WRITE_REG + STATUS, sta);
return sta;
}
三、增強型ShockBurst™模式下多機通信:
這部分主要介紹一下多機通信,即一個主接收設備與六個主發送設備進行通信,當然大多數情況下,我們用不到這個,這部分的主要目的理解接收數據地址和發送數據地址之間的關系。
參考手冊部分:
這部分主要提到多機通信的過程中,所有設備的如下設置要一致:
~CRC使能;
~CRC配置(8位或16位);
~接收數據地址寬度;
~RF_CH配置相同,即射頻頻率需要配置一致;
~無線數據傳輸速率;
~低噪聲放大器增益;
置位寄存器EN_RXADDR相應位可以使能相應的數據通道,數據通道地址可以通過RX_ADDR_PX寄存器來進行配置;
參考手冊部分:
編輯推薦廠商產品技術軟件/工具OS/語言教程專題
電機控制 | DSP | 氮化鎵 | 功率放大器 | ChatGPT | 自動駕駛 | TI | 瑞薩電子 |
BLDC | PLC | 碳化硅 | 二極管 | OpenAI | 元宇宙 | 安森美 | ADI |
無刷電機 | FOC | IGBT | 逆變器 | 文心一言 | 5G | 英飛凌 | 羅姆 |
直流電機 | PID | MOSFET | 傳感器 | 人工智能 | 物聯網 | NXP | 賽靈思 |
步進電機 | SPWM | 充電樁 | IPM | 機器視覺 | 無人機 | 三菱電機 | ST |
伺服電機 | SVPWM | 光伏發電 | UPS | AR | 智能電網 | 國民技術 | Microchip |
開關電源 | 步進電機 | 無線充電 | LabVIEW | EMC | PLC | OLED | 單片機 |
5G | m2m | DSP | MCU | ASIC | CPU | ROM | DRAM |
NB-IoT | LoRa | Zigbee | NFC | 藍牙 | RFID | Wi-Fi | SIGFOX |
Type-C | USB | 以太網 | 仿真器 | RISC | RAM | 寄存器 | GPU |
語音識別 | 萬用表 | CPLD | 耦合 | 電路仿真 | 電容濾波 | 保護電路 | 看門狗 |
CAN | CSI | DSI | DVI | Ethernet | HDMI | I2C | RS-485 |
SDI | nas | DMA | HomeKit | 閾值電壓 | UART | 機器學習 | TensorFlow |
Arduino | BeagleBone | 樹莓派 | STM32 | MSP430 | EFM32 | ARM mbed | EDA |
示波器 | LPC | imx8 | PSoC | Altium Designer | Allegro | Mentor | Pads |
OrCAD | Cadence | AutoCAD | 華秋DFM | Keil | MATLAB | MPLAB | Quartus |
C++ | Java | Python | JavaScript | node.js | RISC-V | verilog | Tensorflow |
Android | iOS | linux | RTOS | FreeRTOS | LiteOS | RT-THread | uCOS |
DuerOS | Brillo | Windows11 | HarmonyOS |