一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

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

3天內(nèi)不再提示

基于源碼制作的OpenTX固件

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

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

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

代碼設(shè)計上面沒有使用實時操作系統(tǒng)

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

里面包含兩套

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

里面的函數(shù)

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

引入的頭文件

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

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

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

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

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

看這個量就知道不簡單了

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

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

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

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

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

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

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

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

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

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

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

16個頻道也可以放出去

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

協(xié)議的校驗

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

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

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

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

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

芯片的狀態(tài),狀態(tài)機的時候會用

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

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

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

自動對頻的枚舉

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

接下來去看具體的實現(xiàn)

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

初始的一堆

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

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

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

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

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

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

寄存器都寫到枚舉里面

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

這個函數(shù)被使用的太多,一時之間還沒有被跳轉(zhuǎn),我在這里找到了

第一個是位置,第二個是數(shù)據(jù)

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

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

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

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

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

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

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

查了一下,是NXP的芯片

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

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

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

原來是NXP的芯片

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

STM32 大同小異得

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

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

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

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

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

看頭文件

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

是STM32的

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

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

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

這個NXP的不對,應(yīng)該是STM的方案,這里把NXP的庫,

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

這個是讀一個寄存器得值

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

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

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

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

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

就這些

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

畫圖看看

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

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

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

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

芯片手冊說的

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

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

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

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

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

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

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

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

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

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

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

就是FlySky的協(xié)議

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

喲,還有震蕩電路

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

最后給個原理圖

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

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

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

這不要臉的爬我的文章

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

投訴都沒有地方

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

總之是看不見一個靠譜的解說協(xié)議內(nèi)容的地方。

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

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

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

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

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

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

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

通道之間是5間隔跳的,然后具體通道是按照現(xiàn)在啟用的通道數(shù)算的

FlySky裝逼的跳頻協(xié)議,就這?

我懂拉

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

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

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

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

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

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

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

兩個發(fā)包的方法

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

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

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 的新(好被遺忘的舊)項目。構(gòu)建固件 - 通過 J-Link(克隆)或 ST-Link(用于 FS-i6X)的 Segger Embedded Sudio Flash 固件。要構(gòu)建固件安裝

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

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

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

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

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

    關(guān)注

    10

    文章

    561

    瀏覽量

    23586
  • 源碼
    +關(guān)注

    關(guān)注

    8

    文章

    665

    瀏覽量

    30064
  • 數(shù)據(jù)手冊
    +關(guān)注

    關(guān)注

    95

    文章

    6195

    瀏覽量

    43340
  • OpenTX
    +關(guān)注

    關(guān)注

    2

    文章

    2

    瀏覽量

    2909

原文標(biāo)題:FlySky-i6x源碼-AFHDS 2A

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

收藏 人收藏

    評論

    相關(guān)推薦

    尋找apm2.8飛控固件源碼

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

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

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

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

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

    OpenTX for Taranis Manual CN_v1.

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

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

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

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

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

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

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

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

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

    STM32單片機網(wǎng)絡(luò)遠程升級固件源碼下載

    STM32單片機網(wǎng)絡(luò)遠程升級固件源碼下載
    發(fā)表于 04-17 09:27 ?77次下載

    足球世界杯HTML網(wǎng)頁制作源碼下載

    足球世界杯HTML網(wǎng)頁制作源碼下載
    發(fā)表于 06-08 10:22 ?14次下載

    制作 NodeMCU ESP32 自定義固件

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

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

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

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

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

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

    電子發(fā)燒友網(wǎng)站提供《如何為BleuIO加密狗制作自己的固件.zip》資料免費下載
    發(fā)表于 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差異
    的頭像 發(fā)表于 11-07 17:13 ?1596次閱讀
    MCUXpresso IDE下將<b class='flag-5'>源碼</b><b class='flag-5'>制作</b>成Lib庫方法及其與IAR,MDK差異