在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

RK3568筆記分享——如何掛載SPI FRAM鐵電存儲芯片

飛凌嵌入式 ? 2023-09-22 08:01 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

對于做快速存儲采集數(shù)據(jù)類產(chǎn)品的用戶來說,在處理突發(fā)掉電情況時需要保存現(xiàn)有數(shù)據(jù)并避免數(shù)據(jù)丟失,這種情況下有很多種解決方案,鐵電存儲器(FRAM) 就是個很好的選擇。FRAM是一種具有快速寫入速度的非易失性存儲器,既可以進(jìn)行非易失性數(shù)據(jù)存儲,又可以像RAM一樣操作。

本文將借助飛凌嵌入式OK3568-C開發(fā)板來為大家介紹一種采用FRAM的方案——使用SPI0掛載PB85RS2MC (FRAM) 芯片。本文所描述的驅(qū)動文件和應(yīng)用文件,可聯(lián)系飛凌嵌入式的技術(shù)支持獲取。

wKgaomUNLLWAGEVUAAswXLOa2P8057.png

修改思路——

我們要添加一個SPI設(shè)備,需要進(jìn)行如下操作:在設(shè)備樹中添加描述→設(shè)備樹描述中對應(yīng)設(shè)備驅(qū)動→設(shè)備驅(qū)動添加到內(nèi)核。

修改結(jié)果——

修改 OK3568-linux-source/kernel/arch/arm64/boot/dts/rockchip/OK3568-C-common.dtsi

修改如下:

wKgZomUNLLSANdvaAABPzdVFgIY691.png

接下來筆者為大家介紹一下適配的過程。

1驅(qū)動程序

我們在menuconfig中搜索fm25、pb85等比較常用的FRAM字眼,發(fā)現(xiàn)并沒有類似的驅(qū)動程序,這時就需要手寫或者移植一個驅(qū)動程序。在搜遍各大網(wǎng)站之后找到了一個W25Q64的驅(qū)動,對比了一下PB85RS2MC的各種操作碼以后,發(fā)現(xiàn)兩者的操作碼大差不差,因此就決定將W25Q64的驅(qū)動移植過來。根據(jù)PB85RS2MC芯片手冊中敘述,各種操作碼為:

wKgaomUNLLSALoEvAABtDv-Auc8420.pngwKgaomUNLLSAZXBHAACtEB3NdO8457.png

因此,在驅(qū)動程序中宏定義以下操作碼,以便在接下來的驅(qū)動程序中使用:

wKgaomUNLLSAEDX6AABfbutbbhc581.png

首先要在驅(qū)動程序中進(jìn)行初始化函數(shù)和退出函數(shù),也就是spidev_init和spidev_exit,init函數(shù)里就是進(jìn)行字符設(shè)備的初始化,注冊等的操作,exit函數(shù)就是要把我們注冊的東西在退出時都釋放掉,再者就是驅(qū)動程序和設(shè)備樹匹配,匹配是通過compatible屬性值匹配的,這里我們一定要和設(shè)備樹中的compatible屬性值一致,否則會匹配不成功。驅(qū)動程序中.compatible值如下圖所示。

wKgZomUNLLSADSg2AAAn3A8N7PU443.png

驅(qū)動和設(shè)備樹匹配成功以后就要執(zhí)行probe函數(shù),這里probe函數(shù)執(zhí)行了一些初始化和注冊主次設(shè)備號的操作。我們可以通過是否打印spi_probesuccess!來判斷驅(qū)動程序,是否和設(shè)備樹匹配成功。

wKgaomUNLLWAE5y9AAEy-kKXQ6A161.png

從PB85RS2MC芯片手冊中看讀的條件,讀取FRAM存儲單元的數(shù)據(jù),需要READ的操作碼,任意24位地址輸入到SI。第一個spi_transfer 結(jié)構(gòu)體用于發(fā)送命令cmd 到SPI設(shè)備,在讀取數(shù)據(jù)之前準(zhǔn)備設(shè)備,第二個是發(fā)送地址到SPI設(shè)備,第三個是接收從設(shè)備讀取的數(shù)據(jù)。

wKgZomUNLLWAW-zNAAEMDpORhwQ830.png

這段代碼實現(xiàn)了從 SPI設(shè)備中同步讀取數(shù)據(jù),并將數(shù)據(jù)復(fù)制到用戶空間的功能。

wKgZomUNLLWAdGWzAADO54z3BBY537.png

從PB85RS2MC芯片手冊中看寫的條件,WREN命令用于設(shè)置寫使能鎖存器。需要在寫操作(WRITE命令)之前使用WREN命令設(shè)置寫使能鎖存器,WRITE命令將數(shù)據(jù)寫入 FRAM存儲單元陣列。WRITE操作碼、任意24位地址和8位寫入數(shù)據(jù)輸入到 SI。

下面這段代碼實現(xiàn)了向SPI設(shè)備發(fā)送寫入使能命令的功能。

wKgZomUNLLaAZW4qAACHMMXcNdA300.png

這段代碼實現(xiàn)了向SPI設(shè)備同步寫入數(shù)據(jù)的功能。它先發(fā)送寫入使能命令,然后發(fā)送地址信息和數(shù)據(jù)。

wKgZomUNLLaAV59NAAEcFHGFPcA629.png

下面這段代碼向 SPI設(shè)備中同步寫入數(shù)據(jù)的功能,將用戶空間的數(shù)據(jù)復(fù)制到設(shè)備的發(fā)送緩沖區(qū),并調(diào)用spidev_sync_write 函數(shù)將數(shù)據(jù)寫入SPI 設(shè)備。

wKgaomUNLLWAKSgqAAC3OevAyvI947.png

2應(yīng)用程序

向SPI設(shè)備寫數(shù)據(jù),調(diào)用lseek來改變寫入數(shù)據(jù)的位置,這樣就可以在整個SPI設(shè)備里寫數(shù)據(jù),如./writeframAPP /dev/pb85rs 0 forlinx

0是要寫入的地址,forlinx是要寫入的內(nèi)容)。

wKgZomUNLLWAH16AAABAno9ueFo543.png

從SPI設(shè)備讀數(shù)據(jù),調(diào)用lseek來改變讀取數(shù)據(jù)的位置,這樣就可以在整個SPI設(shè)備里讀數(shù)據(jù),如./readframAPP /dev/pb85rs 0

0是要讀取數(shù)據(jù)的地址)

wKgaomUNLLWAYI3SAACa-WUUmYY162.png

3實際測試

(1)首先將fram.ko,readframAPP, writefram APP拷貝到OK3568-C開發(fā)板的任意文件夾中。

wKgZomUNLLaAFlqKAAAHj-gd_2M770.png

(2)用insmod加載fram.ko模塊,出現(xiàn)spi_probesuccess!說明驅(qū)動和設(shè)備樹匹配成功。

wKgaomUNLLaAO9AAAAAQhaNT3o0389.png

(3)在/dev/下看有沒有pb85rs設(shè)備。

wKgZomUNLLaAPZrEAABAHQ86q0g442.png

(4)使用./writeframAPP /dev/pb85rs 1500 forlinx

向設(shè)備寫數(shù)據(jù),1500是地址,forlinx是要寫入的內(nèi)容。

wKgaomUNLLaAaw_yAAAHhKDczY0550.png

(5)使用./readframAPP /dev/pb85rs 1500

1500是要讀取數(shù)據(jù)的地址)

wKgaomUNLLaARx76AAAH51tqjbc199.png

4斷電測試

斷電一天后重新讀取PB85RS2MC的數(shù)據(jù),發(fā)現(xiàn)數(shù)據(jù)仍然存在。驗證了PB85RS2MC鐵電存儲芯片的斷電數(shù)據(jù)保留特性。

wKgaomUNLLaARky6AAAH3EAxK3A543.png

至此,我們就完成了在OK3568-C開發(fā)板上添加一個新的SPI鐵電存儲芯片的操作!

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

    關(guān)注

    459

    文章

    52343

    瀏覽量

    438468
  • SPI
    SPI
    +關(guān)注

    關(guān)注

    17

    文章

    1790

    瀏覽量

    95195
  • 嵌入式開發(fā)
    +關(guān)注

    關(guān)注

    18

    文章

    1075

    瀏覽量

    48697
  • fram
    +關(guān)注

    關(guān)注

    2

    文章

    284

    瀏覽量

    79869
  • RK3568
    +關(guān)注

    關(guān)注

    5

    文章

    582

    瀏覽量

    6226
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    Rockchip RK3568技術(shù)參考手冊

    電子發(fā)燒友網(wǎng)站提供《Rockchip RK3568技術(shù)參考手冊.pdf》資料免費下載
    發(fā)表于 05-17 17:24 ?7次下載

    一文掌握RK3568開發(fā)板Android13掛載Windows共享目錄

    在物聯(lián)網(wǎng)和邊緣計算場景中,開發(fā)板與PC端的高效文件交互尤為重要。現(xiàn)以iTOP-RK3568開發(fā)板為例,詳細(xì)演示Android13系統(tǒng)如何通過CIFS協(xié)議掛載Windows共享目錄,實現(xiàn)開發(fā)板與PC的無縫文件共享。
    的頭像 發(fā)表于 04-17 13:54 ?351次閱讀
    一文掌握<b class='flag-5'>RK3568</b>開發(fā)板Android13<b class='flag-5'>掛載</b>Windows共享目錄

    rk3568開發(fā)工具

    rk3568開發(fā)工具
    發(fā)表于 04-16 17:03 ?2次下載

    RK3568開發(fā)板教程:以iTOP-RK3568開發(fā)板為例 Android13通過CIFS協(xié)議掛載Windows共享目錄

    開發(fā)板與PC端的高效文件交互尤為重要。現(xiàn)以iTOP-RK3568開發(fā)板為例,詳細(xì)演示Android13系統(tǒng)如何通過CIFS協(xié)議掛載Windows共享目錄,實現(xiàn)開發(fā)板與PC的無縫文件共享。
    的頭像 發(fā)表于 04-16 14:08 ?717次閱讀
    <b class='flag-5'>RK3568</b>開發(fā)板教程:以iTOP-<b class='flag-5'>RK3568</b>開發(fā)板為例 Android13通過CIFS協(xié)議<b class='flag-5'>掛載</b>Windows共享目錄

    一文掌握RK3568開發(fā)板Android13掛載Windows共享目錄

    在物聯(lián)網(wǎng)和邊緣計算場景中,開發(fā)板與PC端的高效文件交互尤為重要。現(xiàn)以iTOP-RK3568開發(fā)板為例,詳細(xì)演示Android13系統(tǒng)如何通過CIFS協(xié)議掛載Windows共享目錄,實現(xiàn)開發(fā)板與PC
    發(fā)表于 04-16 13:55

    RK3568原理圖及規(guī)格書資料

    RK3568 IoT設(shè)備官方參考原理圖
    發(fā)表于 02-07 15:28 ?9次下載

    迅為RK3568開發(fā)板驅(qū)動指南Linux中通用SPI設(shè)備驅(qū)動

    迅為RK3568開發(fā)板驅(qū)動指南Linux中通用SPI設(shè)備驅(qū)動
    的頭像 發(fā)表于 01-23 11:02 ?2658次閱讀
    迅為<b class='flag-5'>RK3568</b>開發(fā)板驅(qū)動指南Linux中通用<b class='flag-5'>SPI</b>設(shè)備驅(qū)動

    RK3568的顯示問題及其解決方法

    概述 RK3568作為一款高性能的處理器,在顯示方面有著廣泛的應(yīng)用。然而,在實際使用過程中,用戶可能會遇到一系列顯示相關(guān)的問題。本文旨在針對這些問題進(jìn)行分析,并提供相應(yīng)的解決方案,以幫助用戶更好
    發(fā)表于 12-16 09:14

    RK3568內(nèi)置MCU開發(fā)介紹之一

    本文介紹RK3568內(nèi)置的MCU的開發(fā)流程,首先介紹MCU程序的構(gòu)建方法,然后介紹MCU核心與ARM CORTEX A55 AP核心之間的mailbox通信。 RK3568內(nèi)置有4*cortex
    的頭像 發(fā)表于 12-01 16:09 ?1710次閱讀
    <b class='flag-5'>RK3568</b>內(nèi)置MCU開發(fā)介紹之一

    瑞芯微RK3568 USB驅(qū)動

    瑞芯微RK3568 USB驅(qū)動程序
    發(fā)表于 11-11 14:18 ?3次下載

    RK3568燒錄工具

    RK3568 燒錄工具
    發(fā)表于 11-11 14:16 ?7次下載

    開發(fā)更便利!迅為RK3568/RK3588 定制分區(qū)鏡像發(fā)布

    開發(fā)更便利!迅為RK3568/RK3588 定制分區(qū)鏡像發(fā)布
    的頭像 發(fā)表于 11-11 14:00 ?1094次閱讀
    開發(fā)更便利!迅為<b class='flag-5'>RK3568</b>/<b class='flag-5'>RK</b>3588 定制分區(qū)鏡像發(fā)布

    RK3568 編譯sdk技巧

    我司RK3568對外提供源代碼是以sdk的形式提供,包括但不僅限于uboot、kernel、buildroot、debian源碼。在編譯sdk的過程中往往需要安裝大量的第三方安裝包,同時也要保證宿主
    的頭像 發(fā)表于 08-30 11:44 ?997次閱讀
    <b class='flag-5'>RK3568</b> 編譯sdk技巧

    迅為RK3568驅(qū)動指南|如何在Linux中使用模擬SPI

    瑞芯微RK3568芯片是一款定位中高端的通用型SOC,采用22nm制程工藝,搭載一顆四核Cortex-A55處理器和MaliG522EE圖形處理器。RK3568支持4K解碼和1080P編碼,支持
    的頭像 發(fā)表于 08-01 13:37 ?3244次閱讀
    迅為<b class='flag-5'>RK3568</b>驅(qū)動指南|如何在Linux中使用模擬<b class='flag-5'>SPI</b>

    RK3568核心板橋梁監(jiān)測設(shè)備接口應(yīng)用

    RK3568核心板橋梁監(jiān)測設(shè)備接口應(yīng)用-迅為電子
    的頭像 發(fā)表于 07-24 15:18 ?651次閱讀
    <b class='flag-5'>RK3568</b>核心板橋梁監(jiān)測設(shè)備接口應(yīng)用
    主站蜘蛛池模板: 野外啪啪抽搐一进一出 | 国产小视频网站 | 天堂成人一区二区三区 | 婷婷深爱网 | 黑色丝袜在丝袜福利国产 | 免费一级大片 | 在线观看免费视频一区 | 国产精品美女久久久 | 色wwwww| 天堂中文在线www | 中国特黄一级片 | 亚洲狠狠狠一区二区三区 | 欧美精品啪啪 | 亚洲色图 第一页 | 伊人久久大香线蕉综合7 | yyy6080韩国三级理论 | gav久久| 日本不卡免费高清视频 | 狠狠色噜噜狠狠狠狠黑人 | 免费黄视频在线观看 | 亚洲欧美一区二区三区另类 | 最近2018年中文字幕在线 | 亚洲成人免费观看 | 激情亚洲婷婷 | 性猛交╳xxx乱大交 性免费视频 | 国产一级做a爰片久久毛片男 | 88av免费| 日本黄在线 | 国产成人精品影视 | 午夜一级毛片 | 一级片免费观看视频 | 5g影院天天爽 | 可以免费播放的在线视频 | 欧美天天爽 | 久久久久大香线焦 | 午夜大片免费完整在线看 | 久久久久久久久久久9精品视频 | 国产情侣露脸 | 男人日女人视频在线观看 | 色婷婷免费视频 | 中文字幕天天躁夜夜狠狠综合 |