close

一、程式說明:

使用nuvoTon的NUC120LE3AN來宣告USB Human Interface Device (HID)作為與軟體溝通的介面,

並透過此架構來設定和操作NUC120LE3AN中2個不同的PWM介面來收接及發射IR訊號。

 

二、基本的程式說明及取得:

       2-1、如何使用NUC120LE3AN來宣告HID Device可以參考NUC100Series BSP_CMSIS

的Smpl_HIDTransfer。

       2-2、如何設定及操作NUC120LE3AN中PWM的介面可以參考NUC100Series BSP_CMSIS

的Smpl_DrvPWM。

2-3、如何使用程式與NUC120LE3AN進行溝通可以參考如何使用Window API與HID Device進行資料的溝通

 

三、程式與M0對於控制PWM的溝通流程:

3-1、Communication Protocol 一

            Smpl_IR.PNG    

3-2、Capture IR Signal 一

(1) PWM的設定 - 將PWM設定為Capture的模式並依照軟體所傳送的參數進行硬體的設定。

Ex: S_DRVPWM_TIME_DATA_T   ReceivePt;
TimeUnit = CountUnit;   
    /* PWM Timer property for Capture */ 
    ReceivePt.u8Mode = DRVPWM_AUTO_RELOAD_MODE;
/* Set the proper frequency to capture data (Less than the input data)*/
ReceivePt.u32Frequency = 0; 
    ReceivePt.u8HighPulseRatio = 100;   
    ReceivePt.u32Duty = 0x10000;       
  ReceivePt.u8ClockSelector = DRVPWM_CLOCK_DIV_16; 
ReceivePt.u8PreScale = (3 * TimeUnit) -1;
    ReceivePt.i32Inverter = 0;
    u8CapTimer = DRVPWM_CAP3;

(2) 將收到的IR訊號依照上述的協定透過HID的方式將資料回傳到軟體

(3) 由於回傳的數值單位為計數值而非實際的時間值,因此必須將收到的值乘上Time Unit

     後才能正確的IR訊號顯示於DataGrid。

3-3、Transmit IR Signal 一 

(1) PWM的設定 - 將PWM設定為PWM的模式並依照軟體所傳送的參數進行硬體的設定。

EX: S_DRVPWM_TIME_DATA_T EmitterPt;
     /* PWM Timer property for Capture */ 
EmitterPt.u8HighPulseRatio = PulseRatio;        
EmitterPt.u32Frequency = Frequency_kHz*1000; 
     EmitterPt.u8Mode = DRVPWM_AUTO_RELOAD_MODE;
     EmitterPt.i32Inverter = 0;
     u8EmTimer =  DRVPWM_TIMER0;

(2) 將DataGrid中的資料透過HID的方式傳送到M0之前必須先將數值除以Time Unit後才能

     依照上述的協定開始傳送資料。

(3) 當NUC120LE3AN完整的接收至軟體所傳送的資料後才開始進行IR訊號的發射且在傳送的時間上

      必須乘上Time Unit才是正確的IR訊號,當IR訊號發射完成後回傳一個Ack到軟體,以便可以繼續

      傳送下一個IR訊號。

 

四、執行畫面:

4-1、設定發射及接收的PWM相關參數並按下Start鍵 一

IRSample-0.PNG   

4-2、當Receiver有接收到任何紅外線訊號時會將接收的資料顯示於下面的DataGridView中一

IRSample-1.PNG

4-3、將資料顯示依照下列兩種方式進行分列且採用Toggle的方式進行顯示模式的切換 一

(1) 使用每次固定接收的資料長度為標準。(固定長度為14)

(2) 使用固定的值來進行資料的分列並依照最長的資料列來重新設定DataGridView。(固定值為-20000)

IRSample-2.PNG

4-4、發射IR訊號的方式是雙擊選定的資料列 一

IRSample-3.PNG  

Download:IR_Sample.rar(Source Code)      IR_Sample.rar(Binary Code)

arrow
arrow
    全站熱搜

    yunjuihuang 發表在 痞客邦 留言(0) 人氣()