顯示具有 usb host 標籤的文章。 顯示所有文章
顯示具有 usb host 標籤的文章。 顯示所有文章

2016年10月12日 星期三

STM32F429 SEGA Master System Simulator with Joystick [SMS]

1. 趁著3天連假, 把SEGA Master System Simulator的程式加上了USB Host和Joystick的部份, 如此一來就可以使用Joystick來執行遊戲, 而不是用很難使用的Touch Screen.

2. 測試影片如下:

3. 主要修改的部份如下:

  • 使用INCBIN將遊戲檔案直接導入, 不需另外透過其它工具將遊戲燒入Flash.



  • 使用Joystick取代Touch Screen的操作, 讓操作更加方便, Joystick是透過USB Host的方式加入程式中.



  • Joystick的鍵值是在UpdateController function中去判斷, 若更換不同的Joystick, 則此程式需要客製化修改.



4: Joystick Information: ( Logitech F710 2.4G )
 

5. Test Code Download link: (IDE: Keil-MDK V5.20)
    STM32F429_DiscoveryBoard_SMS_EMU_JoyStick_Logitech_F710

6. 本測試程式中的遊戲僅供教育用途,請勿使用於商業用途.


2016年7月8日 星期五

STM32F429 USB-Host HID KeyBoard Test

1. 本範例是利用stm32f429 discovery board來實做出usb-host keyboard, 並把keyboard上按下的按鍵顯示在內建的LCM上.

2.  程式完整範例下載連結: (使用IAR EWARM v7.7)
     stm32f429_usb_host_hid_mouse_keyboard

3. Main flow:

  • 程式基本流程與stm32f429_usb_host_hid_mouse的內容幾乎一模一樣, 僅差別在mouse/keyboard的init/decode程式而已.
  • 程式一開始仍然是對usb host hid 去做init.
  • 跟host hid mouse有差異的地方在callback function.


4.  Test flow:
  • 在未接上Keyboard至裝置時, 僅會執行LED/Button/LCM的Init function.


  • 當接上keyboard且系統偵測到後, 會在LCM上顯示Keyboard的基本資訊., 若是要開始進行測試的話, 就需要按下user button.

  • 當按下user button後, 就會到達顯示的視窗, 此時在Keyboard上面按下按鍵, 就會顯示在LCM上面.

  • 這是按下"jkl456789"的訊息.

5. Test Video: 為了方便拍攝, 僅使用數字鍵盤測試.




2016年7月6日 星期三

STM32F429 USB-Host HID Mouse Test

1. 本範例是利用stm32f429 discovery board來實做出usb-host mouse, 並把mouse cursor和Button顯示在內建的LCM上.




2.  程式完整範例下載連結: (使用IAR EWARM v7.7)
     stm32f429_usb_host_hid_mouse

3. main flow:

  • 初始化Host HID

  • LCD/GPIO/Button的初始化放在 USBH_USR_Init() function 


  • mouse callback function主要有2個, 分別為Init和Decode.

4. Test Flow:
  • 程式燒錄上電後, 若是在未插入滑鼠的情況下, 則會看到如下的訊息, 代表USB Host Library開始運作.


  • 接著將mouse插入usb port, 則會看到基本的vid/pid等滑鼠相關的資訊.



  • 此時按下User Button後, 就可以看到滑鼠的滑動範圍和cursor, 還有left/middle/right button的顯示區.

5. Test Mouse model name:  Logitech M105


6. Test Video:

2015年12月2日 星期三

STM32F4 USB Host + FAT_FS Example Code

1. 本範例是參考ST官方提供的stm32f429 discovery board的其中一個範例:
     LTDC_AnimatedPictureFromUSB來參考修改的, 如下圖所示, 將一個usb disk插入usb port後,
     可以在stm32f429 discovery board上內建的LCD顯示相關資訊.


2. 由於我們使用的硬體為stm32f4x1 discovery board, 並沒有內建LCD螢幕, 因此呈現方式為使
    用stm32f4x1 discovery board + usb disk + fat fs, 透過fat fs在usb disk中寫入一個STM32.TXT
    檔.


3. 在STM32.TXT檔中除了會寫入usb disk information外, 還可以寫入類似像log之類的user
     message.

4. 測試方式可以參考影片:


  • 在尚未插入usb disk之前, discovery board上面的LEDs會採用旋轉的方式來輪流亮起.
  • 當插入usb disk, 且系統有偵測到的話, 則是不停地toggle LEDs, 此時並可以看到usb disk的讀寫燈會有間歇性的亮起, 代表有在寫入.
  • 在寫入的過程中, 如按下User Button, 則代表停止寫入, 並將file system關掉及re-mount usb disk.
  • 此時可以將usb disk與PC連接, 可以看到根目錄下會有一個STM32.TXT檔案.
  • 打開STM32.TXT檔案後可以看到usb disk相關的資訊, 以及我們測試的log message.


5. 完整程式下載連結如下:
    stm32f4x1_discovery_usbhost_fatfs_example