<var id="fnfpo"><source id="fnfpo"></source></var>
<rp id="fnfpo"></rp>

<em id="fnfpo"><object id="fnfpo"><input id="fnfpo"></input></object></em>
<em id="fnfpo"><acronym id="fnfpo"></acronym></em>
  • <th id="fnfpo"><track id="fnfpo"></track></th>
  • <progress id="fnfpo"><track id="fnfpo"></track></progress>
  • <tbody id="fnfpo"><pre id="fnfpo"></pre></tbody>

  • x
    x

    【開發教程4】瘋殼·開源藍牙心率防水運動手環-外部 Flash 讀寫

    發布時間:2022-7-4 15:11    發布者:Linda-x
    關鍵詞: 開源 , 藍牙 , 心率 , 運動手環 , 外部Flash讀寫
    開源藍牙心率防水運動手環
    ——瘋殼·智能穿戴開發系列
    外部 Flash 讀寫



    1  SPI+簡介

      本節中,我們將使用 DA14580 自帶的 SPI+來進行對外部 Flash 的讀寫操作。

      SPI(Serial Peripheral interface),串行外圍設備接口,是是 Motorola 首先在其 MC68HCXX 系列處理器上定義的。SPI 接口主要應用在EEPROM、FLASH、實時時鐘、AD 轉換器,還有數字信號處理器和數字信號解碼器之間。
      該接口一般使用 4 條線:串行時鐘線(SCLK)、主機輸入/從機輸出數據線MISO、主機輸出/從機輸入數據線 MOSI 和低電平有效的從機選擇線 NSS。

      我們 DA14580 的這個 SPI+接口支持 SPI 總線的一個子集。這個串行接口在主/從模式可以發送和接受 8、16 或 32 位,并且在主模式可以發送 9 位。SPI+接口有雙向的 2*16 位字的 FIFO,功能得到了增強。
      我們這個接口可以工作在主或從模式;有 8、9、16、32 位的操作方式;SPI 控制器的時鐘達到 16MHz,SPI 時鐘源可以通過編程進行 1、2、4、8 分頻;SPI 的時鐘線達到 8MHz;支持 SPI 的 0、1、2、3 四種工作模式;SPI——DO 的空閑電平可以通過編程設置;可屏蔽的中斷發生器;單向讀和寫模式降低總線負載。

    2  硬件設計

      本次我們所使用的外部 Flash 是 W25X20CL,它一共有 8 個引腳。1 號引腳 CS用于芯片的選擇。2 號引腳 DO 是數據輸出引腳。3 號引腳 WP 是寫保護。4 號是GND。5 號 DIO 引腳既可以作為數據輸入,也可以作為數據輸出。6 腳 CLK 是 Flash的串行時鐘信號。第 7 腳用于暫停 SPI 的通信。最后 VCC 就是電源腳。


    圖 1

    3  軟件設計

      要通過 SPI 進行對外部 Flash 的讀寫操作,我們首先是進行相關時鐘引腳的配置,也就是下面的函數 periph_init()。




      在 periph_init()中,我們完成了 SPI,uart2 的管腳配置,以及對串口 2 進行初始化。

      然后,我們要進行的是對 SPI 接口的一個初始化。

      void spi_init(SPI_Pad_t *cs_pad_param, SPI_Word_Mode_t bitmode, SPI_Role_t role, SPI_Polarity_Mode_t clk_pol, SPI_PHA_Mode_t pha_mode, SPI_MINT_Mode_t irq, SPI_XTAL_Freq_t freq)
      第一個參數 cs_pad_param 是分配給 SPI CS 信號的端口管腳,我們這里用的是 0.3 腳。
      第二個參數bitmode 是 SPI 操作的位數,有 8.9.16.32 位操作模式,我們這里用的 8 位,所以填寫 SPI_MODE_8BIT。
      第三個參數 role 是用來配置我們 SPI 的工作方式,我們這里用的是主 SPI,因此選擇 SPI_ROLE_MASTER。
      第 四 個 參 數 clk_pol 是 用 來 選 擇 SPI 時 鐘 空 閑 極 性 , 我 們 用 的 是SPI_CLK_IDLE_POL_LOW,表示串行同步時鐘的空閑狀態為低電平。

      參數 pha_mode 是選擇 SPI 的采樣邊沿,我們這里選的是 SPI_PHA_MODE_0。
      最后兩個參數 irq 和 freq 分別是用來配置 SPI 中斷和時鐘分頻。我們選擇SPI_MINT_DISABLE 和 SPI_XTAL_DIV_8。

      以上是我們對 SPI 的初始化設置,當然,大家也可以根據自己的需求進行配置。對 SPI 初始化設置完成之后,我們就可以開始讀寫外部 Flash 了,通過調用:
      int32_t spi_flash_write_data (uint8_t *wr_data_ptr, uint32_t address, uint32_t size);
      int32_t spi_flash_read_data (uint8_t *rd_data_ptr, uint32_t address, uint32_tsize)。

    4  實驗現象

      首先,插好 Jlink 和 USB 轉串口,然后打開打開串口調試助手。

      (1)選擇串口號,我們圖中是 COM1,這個根據實際情況選擇。

      (2)配置串口參數,波特率為 115200,數據位 8,停止位 1,沒有校驗位和控制流,與下圖一致。
      (3)點擊打開串口,4 是串口接收框。

           
    圖 2


      配置完串口之后,打開我們提供的代碼。

      (1)點擊仿真按鍵。


    圖 3
      (2)點擊運行代碼。


    圖 4
      完成之后,就能看到串口調試助手接收框信息如下。


    圖 5




    如需定制開發,請通過官網“瘋殼”里的聯系方式聯系我們
    配套資料:https://www.fengke.club/GeekMart/su_fkZyGYgrp.jsp
    配套視頻:https://www.fengke.club/GeekMart/su_fTSgUL3y3.jsp
    套件地址:http://shop115904315.taobao.com
    文件下載請點擊: 2_(100%開源)藍牙心率防水運動手環_外部Flash讀寫.pdf (727.79 KB)


    本文地址:http://www.portaltwn.com/thread-795226-1-1.html     【打印本頁】

    本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
    您需要登錄后才可以發表評論 登錄 | 立即注冊

    廠商推薦

    • Microchip視頻專區
    • 我們是Microchip
    • 深度體驗Microchip自動輔助駕駛應用方案——2025巡展開啟報名!
    • 更佳設計的解決方案——Microchip模擬開發生態系統
    • Cortex-M4外設 —— TC&TCC結合事件系統&DMA優化任務培訓教程
    • 貿澤電子(Mouser)專區

    相關視頻

    關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
    電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
    快速回復 返回頂部 返回列表
    精品一区二区三区自拍图片区_国产成人亚洲精品_亚洲Va欧美va国产综合888_久久亚洲国产精品五月天婷