2016年12月29日 星期四

How to change nRF51 Clock Source in ble_stack_init function?

1. 最近在測試nRF51的板子實作2.4G/BLE雙模切換時, 發現只要切到ble mode, 程式就會當掉, 查了一下才發現程式是當在static void ble_stack_init(void)這個function裡面.



2. 進去trace code後, 才發現是設定上的錯誤, 由於硬體板子上並沒有XTAL元件, 只要一進去ble_stack_init() function, 就會出現死當.



3. 因此我們必須將clock source由XTAL改為RC.


.rc_ctiv = 16, // Interval in 0.25 s, 16 * 0.25 = 4 sec
.rc_temp_ctiv = 2, // Check temperature every .rc_ctiv, but calibrate every .rc_temp_ctiv 
This configuration will set RC oscillator, and check for temperature delta every 4 second, and calibrate the RC every 8 second.
4. 修改完成.

2016年11月20日 星期日

[Life] 結婚8週年的禮物

11/17回家的時候, 老婆在我桌上放了這個令人驚訝的小禮物, 真是太令人感動了.



2016年11月18日 星期五

[Life] ARM Tech Symposia 2016

今天抽空去參加了ARM舉辦的介紹會, 現場真是人山人海, 且因為主辦在喜來登, 整個場地和服務感覺都相當的不錯, 希望明年還有機會繼續參加.


2016年11月15日 星期二

[Life] Nordic BLE Seminar

    今天跑去台大集思會議中心參加了貝倫舉辦的研討會, 主要是介紹穿戴/Apple HomeKit/天線的參考設計方案.








2016年11月10日 星期四

[Life] New Mouse Announced - Corsair Harpoon

看到自己做的滑鼠終於產品化發表, 感覺真是痛快, 希望接下來有參與到的產品量產都順利啊.


2016年11月5日 星期六

STM32F429 Nintendo Entertainment Simulator with Joystick [NES]

1. 根據http://iamjustinwang.blogspot.tw/2016/10/stm32f429-nintendo-entertainment.html這一篇把joystick的部份加上去, 而joystick的部份是使用adc的方式.

2. Test Video:


3. Test Code: (Keil-MDK v5.20)
    STM32F429_Disco_NES_With_ADC_JoyStick_V0.2

4. Joystick:
    本範例是使用JoyStick Shield V1.A, 最特殊的是在於可以支援3V/5V切換.
5. GPIO Setting:

  • PF8:  joystick x.
  • PF9: joystick y.
  • PC11: key1.
  • PC12: key2.
  • PC13: key3.






2016年10月26日 星期三

STM32F429 Nintendo Entertainment Simulator [NES]

1. 趁著週末也將Nintendo Entertainment System順利移植到STM32F429上面了, 目前還欠缺Joystick的驅動, 這部分等購入後再補上.

2. 目前程式中是先設定預載2個遊戲, 分別是超級瑪莉和影子傳說, 路徑在nes\games\底下.


3. 一樣是採用INCBIN的方式將遊戲直接載入到開發板上, 省去程式和遊戲分開燒錄的手續, 或是將遊戲轉成Hex Array的手續.


4. 切換遊戲目前是使用define去切換, 只要去stm32f429i_discovery.h中修改GameSelect即可切換.


5. Test Video:

  • Super Mario:


  • YingZiChuanShuo:


6. Test Code: (IDE Tool: Keil-MDK v5.20)

    STM32F429_Disco_NES_V0.5

2016年10月21日 星期五

[Life] 2016 NuMicro IoT and New Product Seminar

    本週三下午到大直典華參加了新唐2016的研討會, 主要是發表了物聯網和電競滑鼠等領域的新產品及應用設計方案.


  • 一到現場就看到的投影片標題.


  • 研討會的地點是6樓的花田好事廳, 空間非常地大.



  • 因為比較早到, 所以還有桌子的位置可以選擇.

  • 主要對物聯網和電競比較有興趣, 所以簡單摘錄一下.








  • 中場休息時, 有去看了一下賽微科技, 又讓我想到好久以前使用它們的經驗了.

  • 最後拿到的2塊開發板.




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年9月25日 星期日

STM32F429 SEGA Master System Simulator [SMS]

1. 趁著週末做了一個小實驗, 就是將模擬器放在STM32F429 Discovery Board去執行看看, 由於已經有許多網路神人已經提供了許多範例和資料, 因此測試起來進度挺順利的.

2. 目前網路上的程式大致上除了主程式外, 遊戲的bin檔案皆須使用ST-LINK Utility Tool燒錄到指定的Flash Address, 在使用上比較麻煩一點, 因此我特定改良了這一點, 將bin檔案直接就跟程式可以一起燒錄進去開發板.

3. Test Video:


4. Test Code Download Link: (Keil-MDK v4.74 or v5.20)
    STM32F429_SMS_EMU_Code

5. 將bin檔直接與程式綁定在一起的做法是透過.s檔案和組合語言, 使用INCBIN這個指令直接將bin檔案直接載入, 並透過extern的方式分享資料和檔案長度.




6. 隨程式提供的bin檔案, 僅供測試使用, 測試完畢後, 請趕快刪除, 並不得用在商業行為上.

2016年9月24日 星期六

[Life] NuMicro Family ARM Cortex-M0 Training Course

    9月21日到美麗華旁邊的新唐台北辦事處參加NuMicro Nano130課程講習, 除了有便當吃, 還有開發板可以領取, 真是不錯啊.






2016年9月18日 星期日

STM32F103_USB_Test_Code(VCP/HID/MSC)

1. STM32F103大概是在還沒接觸M4之前, 最常用的ST MCU, 即便是到了現在還是有許多人在使用這一顆Cortex-M3, 那今天要介紹的是STM32F103 USB Code.

2. 本範例主要是在STM32F103上面移植Virtual COM-Port(VCP) , Keyboard/Mouse/HID RAW(HID) , Mass Storage(MSC)這三種比較常用的類型.

3. 由於STM32F103並沒有類似像Discovery Board這種板子, 因此本範例的GPIO Define如下, 請參考的人自行根據自己手上的板子來修改.





4. How to switch VCP/HID/MSC mode: (usb_select.h, default is MSC mode)


5. Main flow:


  • GPIO & RAM-Disk(8KB) Init.
  • Disconnect USB-Pull up(PA8).
  • I2C Init.
  • USB Init.
  • Systick Init.
  • Connect USB-Pull up(PA8).
  • Check Button Status, if press the button, run HID or VCP test code.
  • It will run SCSI command when switch to MSC mode.
6. How to adjust RAM-Disk Size: (mass_mal.c)


7. Test flow:
  • MSC mode:



  • VCP mode:



  • HID mode:

    • Keyboard: 


    • Mouse: 

    • HID RAW: 


8. Test Code Download Link: