源碼我放到Github上面了,刪除了一些無(wú)用的代碼,加了一些注釋?zhuān)M(jìn)行了格式化。

代碼設(shè)計(jì)上面沒(méi)有使用實(shí)時(shí)操作系統(tǒng)

里面包含兩套

里面的函數(shù)

引入的頭文件

里面是大量的定時(shí)器和中斷

HAL層是封裝了大量的機(jī)體函數(shù)

看這個(gè)量就知道不簡(jiǎn)單了

我們都知道I6X是使用的A7105這個(gè)芯片,這個(gè)文件就是控制射頻芯片的文件

芯片是使用的SPI,以及二代的協(xié)議這里也有了
A7105是一枚使用于2.4GHz ISM頻段低成本無(wú)線收發(fā)射頻集成電路,內(nèi)含高靈敏度的接收電路(250kbps@-99dBm)和高效率的發(fā)射電路,適合于通信距離在30m以?xún)?nèi)的用場(chǎng)場(chǎng)合。A7105 具有可以編程的工作速率, 最高為500Kbps。在數(shù)字接口部份,提供4pin(SPI)或3pin 接口方式, 在RF 數(shù)據(jù)的處理有兩種模式可供選擇 : FIFO(先入先出緩沖器,利用RF 內(nèi)部的memory 先儲(chǔ)存要發(fā)射和接收的數(shù)據(jù)), Direct(直接發(fā)射及接收)。在FIFO 模式下, 也支援CRC(CRC16), FEC(約可增加靈敏度1~2dbm),data whitening(也即數(shù)據(jù)加密), 曼切斯特編和解碼。A7105 內(nèi)建接收信號(hào)強(qiáng)度指示RSSI, 溫度傳感器, 以偵測(cè)環(huán)境對(duì)RF IC 的影響, 同時(shí)內(nèi)含一路 ADC 偵測(cè)使用電壓。無(wú)線喚醒機(jī)制, 從而延長(zhǎng)電池使用壽命。


這里是功率的調(diào)整

頻道的極值

看她這個(gè)寫(xiě)法,有16個(gè)頻道可以放出去

這個(gè)是通道的映射,有很多

4x4 16種模式(我好像算錯(cuò)了)

這里是寫(xiě)了協(xié)議的遙測(cè)給你,其實(shí)就是短暫的發(fā)一個(gè)小包,這個(gè)信息要傳遞出去,所以這里是extern。

16個(gè)頻道也可以放出去

協(xié)議的校驗(yàn)

這個(gè)估計(jì)是上面已經(jīng)定義了,這里是被注釋的

協(xié)議的枚舉,就是支持的協(xié)議

芯片的狀態(tài),狀態(tài)機(jī)的時(shí)候會(huì)用

這個(gè)怎么說(shuō),也是協(xié)議的定義

自動(dòng)對(duì)頻的枚舉

接下來(lái)去看具體的實(shí)現(xiàn)

初始的一堆
因?yàn)槲覍?duì)這個(gè)芯片的具體細(xì)節(jié)還沒(méi)有看完,這段就是憑借經(jīng)驗(yàn)了。

看這里應(yīng)該都是要初始化我們的芯片,都是對(duì)寄存器操作的

接著就是執(zhí)行這個(gè)

寄存器都寫(xiě)到枚舉里面

這個(gè)函數(shù)被使用的太多,一時(shí)之間還沒(méi)有被跳轉(zhuǎn),我在這里找到了
第一個(gè)是位置,第二個(gè)是數(shù)據(jù)

這里是封裝了一下宏函數(shù)

在內(nèi)部看是這樣

這個(gè)FPTC外設(shè)是啥?

查了一下,是NXP的芯片

標(biāo)準(zhǔn)庫(kù)。CMSIC的好處就是這個(gè)學(xué)習(xí)不用換個(gè)芯片就得學(xué)一次

原來(lái)是NXP的芯片

和STM32 大同小異得

關(guān)于這個(gè)SPI得函數(shù),一次可以讀到兩個(gè)

這里終于出現(xiàn)SPI了,一次出現(xiàn)好多的定義

看頭文件

是STM32的

這個(gè)是SPI函數(shù)發(fā)送一個(gè)小數(shù)據(jù)包

這個(gè)NXP的不對(duì),應(yīng)該是STM的方案,這里把NXP的庫(kù),

這個(gè)是讀一個(gè)寄存器得值

這個(gè)就是先發(fā)現(xiàn)一個(gè)命令,給我康康~接著返回一個(gè)命令,給你康康。

這里就是把這個(gè)我也看不懂的控制數(shù)值,使用數(shù)組寫(xiě)到芯片里面

就這些

畫(huà)圖看看

救命,為啥給芯片里面寫(xiě)入這種奇怪的信息???
接下來(lái)沒(méi)有啥說(shuō)的(關(guān)鍵我不知道),就是對(duì)芯片的一個(gè)校準(zhǔn)的過(guò)程,每一次的重啟都有校準(zhǔn)的過(guò)程。

芯片手冊(cè)說(shuō)的

最后是功率的設(shè)置

一開(kāi)始傳入是,什么叫bind功率,啥???

這個(gè)SPI的庫(kù)我是看不懂了。

所謂去看了看數(shù)據(jù)手冊(cè)

我個(gè)人是覺(jué)得是,上面發(fā)的那個(gè)數(shù)組

就是FlySky的協(xié)議

喲,還有震蕩電路

最后給個(gè)原理圖

我們先看看這個(gè)AFHDS2A的協(xié)議

這不要臉的爬我的文章

投訴都沒(méi)有地方
怎么搜都是我。。。我要是有這么高的排名博客就好了
總之是看不見(jiàn)一個(gè)靠譜的解說(shuō)協(xié)議內(nèi)容的地方。

先找到發(fā)包和收包的大小是37字節(jié)

從上面引入?yún)f(xié)議的變量

不知道這里是不是跳頻的協(xié)議代碼

通道之間是5間隔跳的,然后具體通道是按照現(xiàn)在啟用的通道數(shù)算的
FlySky裝逼的跳頻協(xié)議,就這?
我懂拉

眾所周知還有遙測(cè)的功能,就是發(fā)送一個(gè)小的短報(bào)文

報(bào)文的數(shù)據(jù)包為40

現(xiàn)在這個(gè)函數(shù)是傳感器的更新函數(shù)

兩個(gè)發(fā)包的方法

通過(guò)分支選擇在裝載內(nèi)容,這段其實(shí)值得細(xì)細(xì)讀,但是下次一定

在對(duì)頻功能里面值得看這個(gè),就是在16個(gè)通道里面不停的尋找

我這段代碼就有點(diǎn)看不懂,不知道為什么這個(gè)4號(hào)就這么特殊。

如果有人知道可以和我討論一下
我覺(jué)得這里不可以不求甚解了,我停下來(lái)再研究一下代碼。

有人想改裝遙控器,可以看這里

具體的定義
具有 SBUS、IBUS 和擴(kuò)展 SBUS16、IBUS16 的 AFHDS2A - 16 通道模式
PPM 輸入/輸出
帶有 ExpressLRS 和 Crossfire 模塊的 CRSF:
CRSFshot
高達(dá) 1.8M 的兆波特率
ExpressLRS V2 配置(ELRSV2.lua 端口)

St-Link的連接處


基于上面的源碼制作的OpenTX固件。
ErFly6 - 為無(wú)線電 FlySky FS-i6、FS-i6x 系列移植 er9X 的新(好被遺忘的舊)項(xiàng)目。構(gòu)建固件 - 通過(guò) J-Link(克隆)或 ST-Link(用于 FS-i6X)的 Segger Embedded Sudio Flash 固件。要構(gòu)建固件安裝
https://www.segger.com/downloads/embedded-studio/
在文件菜單中選擇打開(kāi)解決方案,然后從放置它的文件夾中選擇 FSI6.emProject。
選擇適合你的遙控器的 Active Project - FSI6 或 FSI6X。構(gòu)建項(xiàng)目。如果構(gòu)建成功的閃存固件。
RF 模塊 A7105 僅支持 AFDHS 2A 協(xié)議。現(xiàn)在不支持 AFDHS 協(xié)議。支持教練模式(PPM 輸入和 PPM 輸出)。
-
固件
+關(guān)注
關(guān)注
11文章
569瀏覽量
24977 -
源碼
+關(guān)注
關(guān)注
8文章
685瀏覽量
31319 -
數(shù)據(jù)手冊(cè)
+關(guān)注
關(guān)注
95文章
6208瀏覽量
44769 -
OpenTX
+關(guān)注
關(guān)注
2文章
2瀏覽量
3021
原文標(biāo)題:FlySky-i6x源碼-AFHDS 2A
文章出處:【微信號(hào):TT1827652464,微信公眾號(hào):云深之無(wú)跡】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
怎樣去設(shè)計(jì)一種基于Python的OpenTX無(wú)線遙控器呢
OpenTX for Taranis Manual CN_v1.
實(shí)例圖文講解bootloader固件源碼及在線升級(jí)
STM8S207主控芯片的變頻器源碼和STM8S電機(jī)控制固件庫(kù)資料免費(fèi)下載
fireflyAIO-3288J主板定制Android固件簡(jiǎn)介
STM32單片機(jī)網(wǎng)絡(luò)遠(yuǎn)程升級(jí)固件的源碼下載
制作 NodeMCU ESP32 自定義固件
NodeMCU學(xué)習(xí)筆記(1)--- 硬件介紹、固件制作、燒錄
如何為BleuIO加密狗制作自己的固件
基于源碼制作的OpenTX固件
評(píng)論