吴忠躺衫网络科技有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于源碼制作的OpenTX固件

云深之無跡 ? 來源:云深之無跡 ? 作者:云深之無跡 ? 2022-08-22 09:12 ? 次閱讀

源碼我放到Github上面了,刪除了一些無用的代碼,加了一些注釋,進行了格式化。

66ad8ee6-2152-11ed-ba43-dac502259ad0.png

代碼設計上面沒有使用實時操作系統

66d43b9a-2152-11ed-ba43-dac502259ad0.png

里面包含兩套

66f9a330-2152-11ed-ba43-dac502259ad0.png

里面的函數

671386b0-2152-11ed-ba43-dac502259ad0.png

引入的頭文件

6735b870-2152-11ed-ba43-dac502259ad0.png

里面是大量的定時器和中斷

675a7372-2152-11ed-ba43-dac502259ad0.png

HAL層是封裝了大量的機體函數

678438f6-2152-11ed-ba43-dac502259ad0.png

看這個量就知道不簡單了

67ab9eb4-2152-11ed-ba43-dac502259ad0.png

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

67cfa5f2-2152-11ed-ba43-dac502259ad0.png

芯片是使用的SPI,以及二代的協議這里也有了

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

67e84d46-2152-11ed-ba43-dac502259ad0.png

6806fa52-2152-11ed-ba43-dac502259ad0.png

這里是功率的調整

6832b11a-2152-11ed-ba43-dac502259ad0.png

頻道的極值

6857263a-2152-11ed-ba43-dac502259ad0.png

看她這個寫法,有16個頻道可以放出去

68792b86-2152-11ed-ba43-dac502259ad0.png

這個是通道的映射,有很多

689818c0-2152-11ed-ba43-dac502259ad0.png

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

68afbb56-2152-11ed-ba43-dac502259ad0.png

這里是寫了協議的遙測給你,其實就是短暫的發一個小包,這個信息要傳遞出去,所以這里是extern。

68cdd618-2152-11ed-ba43-dac502259ad0.png

16個頻道也可以放出去

68e5f400-2152-11ed-ba43-dac502259ad0.png

協議的校驗

6907fece-2152-11ed-ba43-dac502259ad0.png

這個估計是上面已經定義了,這里是被注釋的

69216bf2-2152-11ed-ba43-dac502259ad0.png

協議的枚舉,就是支持的協議

69476528-2152-11ed-ba43-dac502259ad0.png

芯片的狀態,狀態機的時候會用

6965db70-2152-11ed-ba43-dac502259ad0.png

這個怎么說,也是協議的定義

69823ffe-2152-11ed-ba43-dac502259ad0.png

自動對頻的枚舉

69a0f3fe-2152-11ed-ba43-dac502259ad0.png

接下來去看具體的實現

69d9f4f6-2152-11ed-ba43-dac502259ad0.png

初始的一堆

因為我對這個芯片的具體細節還沒有看完,這段就是憑借經驗了。

6a109e5c-2152-11ed-ba43-dac502259ad0.png

看這里應該都是要初始化我們的芯片,都是對寄存器操作的

6a2b49be-2152-11ed-ba43-dac502259ad0.png

接著就是執行這個

6a61f55e-2152-11ed-ba43-dac502259ad0.png

寄存器都寫到枚舉里面

6a8aefc2-2152-11ed-ba43-dac502259ad0.png

這個函數被使用的太多,一時之間還沒有被跳轉,我在這里找到了

第一個是位置,第二個是數據

6ab23d02-2152-11ed-ba43-dac502259ad0.png

這里是封裝了一下宏函數

6ad1a8cc-2152-11ed-ba43-dac502259ad0.png

在內部看是這樣

6af5644c-2152-11ed-ba43-dac502259ad0.png

這個FPTC外設是啥?

6b181f82-2152-11ed-ba43-dac502259ad0.png

查了一下,是NXP的芯片

6b4a8774-2152-11ed-ba43-dac502259ad0.png

標準庫。CMSIC的好處就是這個學習不用換個芯片就得學一次

6b68df58-2152-11ed-ba43-dac502259ad0.png

原來是NXP的芯片

6b846318-2152-11ed-ba43-dac502259ad0.png

STM32 大同小異得

6baec932-2152-11ed-ba43-dac502259ad0.png

關于這個SPI得函數,一次可以讀到兩個

6bc6a1d8-2152-11ed-ba43-dac502259ad0.png

這里終于出現SPI了,一次出現好多的定義

6be8f6b6-2152-11ed-ba43-dac502259ad0.png

看頭文件

6c015bde-2152-11ed-ba43-dac502259ad0.png

是STM32的

6c18ae56-2152-11ed-ba43-dac502259ad0.png

這個是SPI函數發送一個小數據包

6c3eacbe-2152-11ed-ba43-dac502259ad0.png

這個NXP的不對,應該是STM的方案,這里把NXP的庫,

6c5af9e6-2152-11ed-ba43-dac502259ad0.png

這個是讀一個寄存器得值

6c7a54da-2152-11ed-ba43-dac502259ad0.png

這個就是先發現一個命令,給我康康~接著返回一個命令,給你康康。

6c99f36c-2152-11ed-ba43-dac502259ad0.png

這里就是把這個我也看不懂的控制數值,使用數組寫到芯片里面

6cbcc130-2152-11ed-ba43-dac502259ad0.png

就這些

6ce86132-2152-11ed-ba43-dac502259ad0.png

畫圖看看

6d130db0-2152-11ed-ba43-dac502259ad0.png

救命,為啥給芯片里面寫入這種奇怪的信息???

接下來沒有啥說的(關鍵我不知道),就是對芯片的一個校準的過程,每一次的重啟都有校準的過程。

6d3b26f6-2152-11ed-ba43-dac502259ad0.png

芯片手冊說的

6d5da30c-2152-11ed-ba43-dac502259ad0.png

最后是功率的設置

6d88697a-2152-11ed-ba43-dac502259ad0.png

一開始傳入是,什么叫bind功率,啥???

6dab836a-2152-11ed-ba43-dac502259ad0.png

這個SPI的庫我是看不懂了。

6dcee878-2152-11ed-ba43-dac502259ad0.png

所謂去看了看數據手冊

6dec8aae-2152-11ed-ba43-dac502259ad0.png

我個人是覺得是,上面發的那個數組

6e128c04-2152-11ed-ba43-dac502259ad0.png

就是FlySky的協議

6e30183c-2152-11ed-ba43-dac502259ad0.png

喲,還有震蕩電路

6e4c2fea-2152-11ed-ba43-dac502259ad0.png

最后給個原理圖

6e76214c-2152-11ed-ba43-dac502259ad0.png

我們先看看這個AFHDS2A的協議

6e9769f6-2152-11ed-ba43-dac502259ad0.png

這不要臉的爬我的文章

6ebcb292-2152-11ed-ba43-dac502259ad0.png

投訴都沒有地方

怎么搜都是我。。。我要是有這么高的排名博客就好了

總之是看不見一個靠譜的解說協議內容的地方。

6f2976ac-2152-11ed-ba43-dac502259ad0.png

先找到發包和收包的大小是37字節

6f41a740-2152-11ed-ba43-dac502259ad0.png

從上面引入協議的變量

6f5cd434-2152-11ed-ba43-dac502259ad0.png

不知道這里是不是跳頻的協議代碼

6f7f3c04-2152-11ed-ba43-dac502259ad0.png

通道之間是5間隔跳的,然后具體通道是按照現在啟用的通道數算的

FlySky裝逼的跳頻協議,就這?

我懂拉

6fcc09b2-2152-11ed-ba43-dac502259ad0.png

眾所周知還有遙測的功能,就是發送一個小的短報文

709cfe28-2152-11ed-ba43-dac502259ad0.png

報文的數據包為40

70b9445c-2152-11ed-ba43-dac502259ad0.png

現在這個函數是傳感器的更新函數

70db3abc-2152-11ed-ba43-dac502259ad0.png

兩個發包的方法

70f663c8-2152-11ed-ba43-dac502259ad0.png

通過分支選擇在裝載內容,這段其實值得細細讀,但是下次一定

711b976a-2152-11ed-ba43-dac502259ad0.png

在對頻功能里面值得看這個,就是在16個通道里面不停的尋找

7137bdaa-2152-11ed-ba43-dac502259ad0.png

我這段代碼就有點看不懂,不知道為什么這個4號就這么特殊。

715e73fa-2152-11ed-ba43-dac502259ad0.png

如果有人知道可以和我討論一下

我覺得這里不可以不求甚解了,我停下來再研究一下代碼。

7182d254-2152-11ed-ba43-dac502259ad0.png

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

71cc77ce-2152-11ed-ba43-dac502259ad0.png

具體的定義

具有 SBUS、IBUS 和擴展 SBUS16、IBUS16 的 AFHDS2A - 16 通道模式

PPM 輸入/輸出

帶有 ExpressLRS 和 Crossfire 模塊的 CRSF:

CRSFshot

高達 1.8M 的兆波特率

ExpressLRS V2 配置(ELRSV2.lua 端口

71ef6df6-2152-11ed-ba43-dac502259ad0.png

St-Link的連接處

7237b200-2152-11ed-ba43-dac502259ad0.png

72949bfa-2152-11ed-ba43-dac502259ad0.png

基于上面的源碼制作的OpenTX固件。

ErFly6 - 為無線電 FlySky FS-i6、FS-i6x 系列移植 er9X 的新(好被遺忘的舊)項目。構建固件 - 通過 J-Link(克?。┗?ST-Link(用于 FS-i6X)的 Segger Embedded Sudio Flash 固件。要構建固件安裝

https://www.segger.com/downloads/embedded-studio/

在文件菜單中選擇打開解決方案,然后從放置它的文件夾中選擇 FSI6.emProject。

選擇適合你的遙控器的 Active Project - FSI6 或 FSI6X。構建項目。如果構建成功的閃存固件。

RF 模塊 A7105 僅支持 AFDHS 2A 協議?,F在不支持 AFDHS 協議。支持教練模式(PPM 輸入和 PPM 輸出)。

審核編輯:彭靜
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 固件
    +關注

    關注

    10

    文章

    561

    瀏覽量

    23164
  • 源碼
    +關注

    關注

    8

    文章

    652

    瀏覽量

    29458
  • 數據手冊
    +關注

    關注

    95

    文章

    6087

    瀏覽量

    42806
  • OpenTX
    +關注

    關注

    2

    文章

    2

    瀏覽量

    2863

原文標題:FlySky-i6x源碼-AFHDS 2A

文章出處:【微信號:TT1827652464,微信公眾號:云深之無跡】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    尋找apm2.8飛控固件源碼

    請問apm飛控固件源碼在哪里下載,知道的朋友請麻煩告知。謝謝!
    發表于 06-30 16:33

    怎樣去設計一種基于Python的OpenTX無線遙控器呢

    如何利用樹莓派3B去制作一個無線遙控器呢?怎樣去設計一種基于Python的OpenTX無線遙控器呢?
    發表于 12-20 07:41

    有官方at固件源碼嗎?求分享

    有官方at固件源碼
    發表于 04-24 07:14

    OpenTX for Taranis Manual CN_v1.

    傳說中非常強大的er9x升級版opentx說明書
    發表于 11-12 15:08 ?25次下載

    自制ASP ISP下載器電路固件和AVR單片機源碼

    描述:自制ASP ISP下載器電路固件和AVR單片機源碼、固件等。
    發表于 12-21 10:16 ?84次下載

    實例圖文講解bootloader固件源碼及在線升級

    本文將為大家介紹ATMEL系列MCU在線升級bootloader固件源碼及操作過程,筆者在mage和xmage上都實現過,不過使用的RS485,所以固件里面也是RS485的,大家使用RS232的話,把RS485的控制去掉就可以了
    的頭像 發表于 09-19 10:05 ?1.2w次閱讀
    實例圖文講解bootloader<b class='flag-5'>固件</b><b class='flag-5'>源碼</b>及在線升級

    STM8S207主控芯片的變頻器源碼和STM8S電機控制固件庫資料免費下載

    本文檔的主要內容詳細介紹的是STM8S207主控芯片的變頻器源碼和STM8S電機控制固件庫資料免費下載。
    發表于 10-19 08:00 ?101次下載

    fireflyAIO-3288J主板定制Android固件簡介

    定制 Android 固件 前言 定制 Android 固件,有兩種方法: 改源碼,然后編譯生成固件。
    的頭像 發表于 12-26 14:35 ?1692次閱讀

    STM32單片機網絡遠程升級固件源碼下載

    STM32單片機網絡遠程升級固件源碼下載
    發表于 04-17 09:27 ?77次下載

    足球世界杯HTML網頁制作源碼下載

    足球世界杯HTML網頁制作源碼下載
    發表于 06-08 10:22 ?14次下載

    制作 NodeMCU ESP32 自定義固件

    最近嘗試在 Mac 下制作 nodemcu ESP32 的自定義固件。本文就來介紹nodemcu ESP32 自定義固件的編譯、燒寫、測試的全部過程。準備固件
    發表于 10-28 09:40 ?22次下載
    <b class='flag-5'>制作</b> NodeMCU ESP32 自定義<b class='flag-5'>固件</b>

    NodeMCU學習筆記(1)--- 硬件介紹、固件制作、燒錄

    NodeMCU學習筆記(1)— 硬件介紹、固件制作、燒錄提示:作者使用 ESP8266 進行開發學習。文章目錄NodeMCU學習筆記(1)--- 硬件介紹、固件制作、燒錄前言一、硬件介
    發表于 11-01 16:25 ?18次下載
    NodeMCU學習筆記(1)--- 硬件介紹、<b class='flag-5'>固件</b><b class='flag-5'>制作</b>、燒錄

    基于Labview制作的音樂播放器源碼分享

    基于Labview制作的音樂播放器源碼分享
    發表于 12-01 10:07 ?75次下載

    如何為BleuIO加密狗制作自己的固件

    電子發燒友網站提供《如何為BleuIO加密狗制作自己的固件.zip》資料免費下載
    發表于 06-14 09:56 ?0次下載
    如何為BleuIO加密狗<b class='flag-5'>制作</b>自己的<b class='flag-5'>固件</b>

    MCUXpresso IDE下將源碼制作成Lib庫方法及其與IAR,MDK差異

    MCUXpresso IDE下將源碼制作成Lib庫方法及其與IAR,MDK差異
    的頭像 發表于 11-07 17:13 ?1360次閱讀
    MCUXpresso IDE下將<b class='flag-5'>源碼</b><b class='flag-5'>制作</b>成Lib庫方法及其與IAR,MDK差異
    利高国际网上娱乐| 百家乐官网衬衣| 在线提供百家乐| 大发888备用地址| 网上百家乐必赢玩| 赌博百家乐秘笈| 百家乐官网群详解包杀| 百家乐官网只打闲打法| 百家乐官网投注网站是多少| 百家乐官网交流群号| 大发888真钱游戏平台| 百家乐规| 神娱乐百家乐的玩法技巧和规则| 百家乐牌桌订做| 什么百家乐九宫三路| 百家乐tie| 百家乐六合彩3535| 圣淘沙百家乐娱乐城| 百家乐澳门有网站吗| 百家乐娱乐城有几家| 带百家乐的时时彩平台| ea百家乐打水| 百家乐不能视频| 顶尖百家乐学习| 百家乐d博彩论坛| 百家乐赌场博彩赌场网| 自贡百家乐娱乐场开户注册| 澳门百家乐娱乐网| 优博百家乐官网的玩法技巧和规则| 先锋百家乐官网的玩法技巧和规则| 鸟巢百家乐官网的玩法技巧和规则| 利来百家乐官网娱乐| 百家乐赌场优势| 星期八百家乐的玩法技巧和规则| 全讯网六仔开奖| 伟博娱乐城| 汽车| 中国百家乐官网技巧软件| 做生意的门的方向| 百家乐百战百胜| 92棋牌游戏|