5iMX宗旨:分享遥控模型兴趣爱好

5iMX.com 我爱模型 玩家论坛 ——专业遥控模型和无人机玩家论坛(玩模型就上我爱模型,创始于2003年)
查看: 24|回复: 0
打印 上一主题 下一主题

stm32F1配 SPI 介面 MPU6500 MPU9250  存储器 SPI-flash

[复制链接]
跳转到指定楼层
楼主
发表于 2018-1-19 16:42 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
stm32F1配 SPI 介面 MPU6500 MPU9250   存储器 SPI-flash(W25Q64FVSSIG
) 編譯 INAV OR betaflight

首先你要有編譯環境
第一 Cygwin64 Terminal  FOR WIN 缺點編譯很慢
教學網站
https://github.com/martinbudden/betaflight/blob/master/docs/development/Building%20in%20Windows.md

http://bbs.5imx.com/forum.php?mod=viewthread&tid=1268650

個人用到 gcc-arm-embedded  PATH那邊搞不定
最後你下載 gcc-arm-embedded  
COPY betaflight-3.2.4\tools  
以下是我的範例
C:\cygwin64\home\cmcliasus\betaflight-3.2.4\tools
就可以編譯  gcc-arm 最後都是在你的betaflight版本  tools下
但是 INAV 要安裝 RULL 我裝不起來

第二 VMware Playe 外加 Ubuntu

https://github.com/martinbudden/betaflight/blob/master/docs/development/Building%20in%20Ubuntu.md

若是 INAV 的話 教學在這 需要多安裝 Install Ruby


https://github.com/iNavFlight/inav/blob/master/docs/development/Building%20in%20Ubuntu.md


下載原始碼
https://github.com/betaflight/betaflight/tree/v3.2.4

固件
https://github.com/betaflight/betaflight/releases

好了以上是 編譯環境 簡單介紹

現在來說 betaflight 編譯 STM32F1
STM32F103C8T6小系统板


8M  存储器 SPI-flash(W25Q64FVSSIG)



W25Q80BVSSIG FLASH SP 這個80 無法用 我也不知道為何

MPU-6500 GY-6500传感器模块



MPU-9250 GY-9250 這個有電子羅盤 INAV 有支援 IC2



目前使用F1 有cc3d naze 這兩個飛控版
先講CC3d優缺點
他有USB 模擬串口 SPI MPU6000  2m  存储器 SPI-flash
缺點是你買不到 MPU6000 了  所以我們要想辦法把 6000 改成 MPU6500 OR mpu9250

NAZE的優點 就是都用ic2 傳輸介面 官方HEX可以支援  MPU6500 9250等等
他的SPI 2可以 支援 SPI MPU6500  我試過

缺點 NO USB 可以透過編譯 啟動USB
目前我搞不定 存储器 SPI-flash 功能






燒錄我改過 cc3d
cc3d mpu 6500 + FLASH 8M
==================

resource

B12: FLASH_CS
B13: SPI_SCK 2
B14: SPI_MISO 2
B15: SPI_MOSI 2
C14: FREE

以上你在 CLI 打resource OR  resource list
都可以大致上看到f1 PIN 功能


SPI接的方法

VCC  3V 5V OK
gen
scl =F1板子a5腳
SDA =mosi =A7
ADO=miso =a6
CS= a4

IC2更簡單
SCL
SDA

只要這兩條 外加 電源 VCC GEN


B12: FLASH_CS  = FLASH 1號腳
B13: SPI_SCK 2 =  FLASH 6
B14: SPI_MISO 2  = FLASH 2
B15: SPI_MOSI 2 = FLASH 5

FLASH 4 = GEN接地

FLASH  7 8 = VCC(只能接3.6V以下 5V一定燒壞)

FLASH 4  =VCC 要接不接都可以


剩下LED 看你要不要接
A01是PPM IN 也是 RC PWM IN AUX1

開發環境部分是

你在BETA FLIGHT 版本下可以看到 很多飛控板子 名字 F1 F3 F4 F7大致上這些
C:\cygwin64\home\betaflight-3.2.4\src\main\target

以CC3D 下有
target.mk  這是加入甚麼功能 哪種F1 f3 f4等等飛控
感測模組 例如 MPU6500 氣壓計 電子羅盤等等
target.h 程式函數庫
等等四個檔案

我先這邊 簡單介紹

#define USE_SPI   
#define USE_SPI_DEVICE_1
#define USE_SPI_DEVICE_2
定義SPI 那些腳位 有兩組

#define MPU6000_CS_GPIO         GPIOA
#define MPU6000_CS_PIN          PA4     CS腳位
#define MPU6000_SPI_INSTANCE    SPI1
//----------
#define MPU6500_CS_GPIO         GPIOA
#define MPU6500_CS_PIN          PA4   CS腳
#define MPU6500_SPI_INSTANCE    SPI1  意思說 SPI 用在 MPU感測器
這邊當你 MPU6500 和 6000都可以用


#define M25P16_CS_GPIO          GPIOB
#define M25P16_CS_PIN           PB12  這是快閃 FLASH  CS PIN
#define M25P16_SPI_INSTANCE     SPI2
FLASH 用在 SPI2 第二組 SPI 介面

#define USE_FLASHFS
#define USE_FLASH_M25P16

以下是定義 6000 6500 方向 與使用函數
注意是 6500 是有ic2 SPI 函數都要加入才能用
當初以為加入 SPI就好 後來發現無法編譯成功


以上先簡單介紹到這
NAZE 部分
在 target.h  加入  #define USE_VCP  啟動 USB接線功能

在target.mk    加入  FEATURES    = ONBOARDFLASH VCP

VCP 之後你的 NAZE 就可以用 USB 虛擬 COM 了

最後你需要買
ST-Link stlink V2 SWD接口STM8 STM32仿真器调试器stm32下载器
這是救援的 也可以當燒錄器 但是很標準 他會認定 藍色 藍色STM32F1板子是
64K 淘寶網也有128K 快閃空間 可是不一定  實際上 藍色STM32F1板子 c8 cb都是通樣技術 因為市場 所以區別了 代號但是硬體能力都是一樣的
STM32 ST-LINK Utility  軟體


和 USB TO TTL  
Flash Loader Demonstrator 軟體 可以燒錄64K 128K可以選 給藍色STM32F1板子

燒錄給飛控板子 需要把boot 0 為HIGHT  建議這樣比較穩不管是 V2 OR TTL燒錄方式
BOOT0 H就對


之後我有空再研究看看 STM32F4 接上 MPU9250 8M   MICRO SD記憶卡

目前 MIRCO SD 卡也是SPI 介面但是我一直都無法接 但是ARDUINI 板子可以讀到
SD卡模塊 fat32空間

https://drive.google.com/open?id=1wBi_L49ujWTpGVO4jBczI7IPPLXmiygS





欢迎继续阅读楼主其他信息

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

关闭

【站内推荐】上一条 /2 下一条

快速回复 返回顶部 返回列表