2016年9月5日 星期一

DIY ATtiny85 版本的迷你 Frsky (D8) PPM 輸出接收機

最近迷上微型有刷四軸,需要微型Frsky PPM接收機,看了 RCGroup 這一篇 Midelic 的設計,先買了一片  ATtiny85 DIP型式(麵包板才能插)晶片,用麵包板是做了一片,電路很簡單,照著上述連結下方的電路圖(見下圖)接線即可,我把電路圖中右上方一個662K(6V降3.3V)降壓器改為 ASM1117-3.3v模組,方便做實驗,重點就是要降成3.3V就對了!

接完線是這樣,好亂........................

接下來,要把程式寫入/燒入/刷入(Flash)...名詞很多,其實都是同一件事.....................
這裡要先提醒,CC2500模組只能承受max 3.9V電壓(3.3V工作電壓),若使用的刷機用工具 USBISP/USBASP 只能提供5V,那麼一定要拆下 ATtiny85(2.7V~5.0V都可工作),另行刷完成是在裝回去原本電路才不會燒了 CC2500晶片!!我聽FB社團勇哥的建議買純3.3V USBISP/USBASP 較保險!
在這裡卡關卡了一陣子,明明程式用 AVRDUDE都正常刷進去了,也沒錯誤,可是就是不會動作!後來詢問之後才知道,新晶片要先設定Fuses 程式才能運作,作者有寫,但我有看沒有懂它的作用,也是問了勇哥才有解!後來改用跟勇哥相同的刷機程式 Progisp 1.72 以減少操作失敗率!

要刷 ATtiny85 需要一個 USBASP/USBISP,可以參考勇哥推薦的這支純3.3V USBISP(買的時候跟賣家指定,要加20元!),另外,刷機時接線圖如下:(接紅框的6條線到USBISP對應接腳)


接完後,USBISP接上電腦,開啟Progisp 1.72程式,左上方"Select Chip"設成 ATtiny85,再按右下方紅框處設定 Fuses.


進入 Fuses 設定畫面後,點擊"綠色1""紅色0"即可改變下方籃框處的數值,把數值改成下下圖指定的 Fuses 設定值,在後按下紅框的"Write"寫入,即完成 Fuses 設定! 設錯會無法執行喔!


設定值:


設定完 Fuses 後,準備刷入韌體程式(firmware),確認勾選藍框三個項目,按右上方 "Load Flash" 載入韌體程式(我刷目前2016/9/2最新版 "FrskyRx_Attiny85_PFS_PPM_240816.hex") 再按下綠框處的"Auto"確認寫入程序沒錯誤訊息後即完成!


注意: 對頻方式是將 PPM 接腳接地,再進行供電即進入對頻狀態,再把 X9D+ 按下對頻紐進行對頻,協定是 D8 協定喔!

最後,將ATtiny85裝回原本電路進行測試,因為是 PPM 訊號輸出,所以找一片 SP Racing F3 飛控來測試,測試結果成功!!

原本用綠色 LED 當作對頻指示燈,結果亮度好暗,換了一顆紅色LED就亮多了~~~


2016/9/5 Update