国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

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

【瑞薩FPB-RA6E2試用】W25Q128

張濤 ? 來源:makeWorks ? 作者:makeWorks ? 2026-01-27 01:25 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

W25Q128和FPB_RA6E2的連接:

wKgZO2l3oXmAEE2vAAXESlrAUdM965.png

w25q128   fpb_ra6e2
VCC         VCC
GND         GND
DI          P109 (D11 / MOSI / PWM)
DO          P110 (D12 / MISO / PWM)
CLK         P111 (D13 / SCK)
CS          P301 (D10 / SS / PWM)

修改設(shè)備樹fpb_ra6e2.overlay

&spi0 {
    status = "okay";

    /* w25q128 節(jié)點(diǎn)定義 */
    w25q128: w25q128@0 {
        compatible = "jedec,spi-nor";
        reg = ; // 對應(yīng) cs-gpios 的第 0 個索引
        spi-max-frequency = ; // 最大頻率 40MHz

        /* w25q128 的 JEDEC ID: 廠商ID(ef), 內(nèi)存類型(40), 容量(18) */
        jedec-id = [ef 40 18];

		/* 134217728 bits = 16 Mbytes */
		size = ;

        /* 定義狀態(tài) */
        status = "okay";
    };
};

增加測試代碼main.c:

#include 
#include 
#include 

#include 
#include 
#include 
#include 
#include 
#include 
#include 


#include 
#include 

/* size of stack area used by each thread */
#define STACKSIZE 1024

/* scheduling priority used by each thread */
#define PRIORITY 7

/*
w25q128	  fpb_ra6e2
VCC			VCC
GND			GND
DI			P109 (D11 / MOSI / PWM)
DO			P110 (D12 / MISO / PWM)
CLK			P111 (D13 / SCK)
CS			P301 (D10 / SS / PWM)
*/
/* 注冊日志模塊 */
LOG_MODULE_REGISTER(spi_task, LOG_LEVEL_INF);

/* 通過設(shè)備樹獲取 w25q128 設(shè)備實(shí)例 */
/* 這里的 w25q128 必須與overlay 文件中的節(jié)點(diǎn)標(biāo)簽一致 */
#define FLASH_DEVICE_NODE DT_NODELABEL(w25q128)

void spi_task(void)
{
    const struct device *flash_dev = DEVICE_DT_GET(FLASH_DEVICE_NODE);

    /* 1. 檢查設(shè)備是否就緒 */
    if (!device_is_ready(flash_dev)) {
        LOG_ERR("Flash device %s is not ready!", flash_dev->name);
        return;
    }
    LOG_INF("Found Flash device: %s", flash_dev->name);

    /* 2. 定義測試數(shù)據(jù) */
    const off_t test_offset = 0x0000;           // 測試起始地址
    const size_t test_size = 4;                 // 測試數(shù)據(jù)大小
    uint8_t write_data[] = {0xAA, 0xBB, 0xCC, 0xDD};
    uint8_t read_data[4] = {0};
    int ret;

    /* 3. 擦除操作 (Flash 寫入前必須按扇區(qū)擦除) */
    /* w25q128 的最小擦除單位通常是 4096 字節(jié) (4KB) */
    LOG_INF("Erasing sector at offset 0x%lx...", (long)test_offset);
    ret = flash_erase(flash_dev, test_offset, 4096);
    if (ret != 0) {
        LOG_ERR("Flash erase failed! (err: %d)", ret);
        return;
    }

    /* 4. 寫入數(shù)據(jù) */
    LOG_INF("Writing data: 0x%02X %02X %02X %02X",
            write_data[0], write_data[1], write_data[2], write_data[3]);
    ret = flash_write(flash_dev, test_offset, write_data, sizeof(write_data));
    if (ret != 0) {
        LOG_ERR("Flash write failed! (err: %d)", ret);
        return;
    }

    /* 5. 讀取數(shù)據(jù)驗(yàn)證 */
    ret = flash_read(flash_dev, test_offset, read_data, sizeof(read_data));
    if (ret != 0) {
        LOG_ERR("Flash read failed! (err: %d)", ret);
        return;
    }
    LOG_INF("Readback data: 0x%02X %02X %02X %02X",
            read_data[0], read_data[1], read_data[2], read_data[3]);

    /* 6. 校驗(yàn)結(jié)果 */
    if (memcmp(write_data, read_data, sizeof(write_data)) == 0) {
        LOG_INF("SPI Flash Test PASSED!");
    } else {
        LOG_WRN("SPI Flash Test FAILED! Data mismatch.");
    }

    return;
}

K_THREAD_DEFINE(spi_id, STACKSIZE, spi_task, NULL, NULL, NULL,
		PRIORITY, 0, 0);

修改prj.conf

# 開啟 SPI 支持
CONFIG_SPI=y
# 開啟 Flash 驅(qū)動子系統(tǒng)
CONFIG_FLASH=y
# 開啟 JEDEC 標(biāo)準(zhǔn)的 SPI Flash 驅(qū)動
CONFIG_SPI_NOR=y
# 調(diào)試建議:開啟打印日志查看 Flash 是否識別成功
CONFIG_LOG=y
CONFIG_FLASH_LOG_LEVEL_DBG=y

測試結(jié)果:

[00:00:00.000,000]  ra_spi: frequency: 40000000
*** Booting Zephyr OS build v4.3.0-3782-gc611a16ecd7f ***
ADC reading[0]:
- adc@40170000, channel 0: Set up button at gpio@40080060 pin 4
Generating sawtooth signal at DAC channel 0.
PWM-based LED fade. Found 1 LEDs
[00:00:00.000,000]  spi_task: Found Flash device: w25q128@0
[00:00:00.000,000]  spi_task: Erasing sector at offset 0x0...
Watchdog sample application
Callback in RESET_SOC disabled for this platform
[00:00:00.000,000]  wdt_renesas_ra: actual window min = 0.00 ms
[00:00:00.000,000]  wdt_renesas_ra: actual window max = 1006.50 ms
[00:00:00.000,000]  wdt_renesas_ra: wdt timeout was set successfully
Feeding watchdog 5 times
Feeding watchdog...
541 = 435 mV
- adc@40170000, channel 2: 1918 = 1545 mV
[00:00:00.050,000]  spi_task: Writing data: 0xAA BB CC DD
Feeding watchdog...
[00:00:00.050,000]  spi_task: Readback data: 0xAA BB CC DD
[00:00:00.050,000]  spi_task: SPI Flash Test PASSED!

綜合代碼工程參考:FreeRTOS/zephyr_fpb_ra6e2

審核編輯 黃宇

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

    關(guān)注

    37

    文章

    22481

    瀏覽量

    90862
  • Zephyr
    +關(guān)注

    關(guān)注

    0

    文章

    58

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

    FPB-RA6E2試用】入門級GPIO測試

    和一顆上電即亮的電源燈。并且根據(jù)FPB-RA6E2的官方手冊,這塊開發(fā)板****自帶了板載的J-Link調(diào)試器(J-Link OB) 。 我們來點(diǎn)亮LED1。 新建的zephyr-env虛擬環(huán)境,最初
    發(fā)表于 02-14 15:11

    FPB-RA0E2開發(fā)板的批量加載例程

    RA MCU眾測寶典”環(huán)境搭建專題再添實(shí)用干貨!上一篇我們搞定了【FPB-RA0E2】開發(fā)板的基礎(chǔ)環(huán)境配置,這次將解鎖“批量加載官方例程”技能。
    的頭像 發(fā)表于 01-29 17:52 ?6833次閱讀
    <b class='flag-5'>瑞</b><b class='flag-5'>薩</b><b class='flag-5'>FPB-RA0E2</b>開發(fā)板的批量加載例程

    FPB-RA6E2試用】【FPB-RA6E2】 DAC-ADC 回環(huán)測試:基于 Zephyr RTOS 的模擬信號通路驗(yàn)證

    Zephyr ADC / DAC API 調(diào)試設(shè)備樹 / pinctrl 校準(zhǔn) ADC / DAC 偏差 硬件 Bring-up 階段測試 十一、 項(xiàng)目代碼 *附件:fpb_ra6e2_adc_dac_app.zip 感謝電子發(fā)燒友平臺,感謝
    發(fā)表于 01-16 15:22

    FPB-RA6E2試用】【FPB-RA6E2】看門狗(Watchdog Timer, WDT)個人理解及資料整理

    FPB-RA6E2】看門狗(Watchdog Timer, WDT)個人理解及資料整理 FPB
    發(fā)表于 01-14 11:09

    FPB-RA6E2試用】【FPB-RA6E2】Zephyr-驅(qū)動-DHT11-溫濕度傳感器及設(shè)備樹理解

    FPB-RA6E2】Zephyr-驅(qū)動-DHT11-溫濕度傳感器及設(shè)備樹理解 0、視頻教程 視頻教程地址: https://www.bilibili.com/video
    發(fā)表于 01-13 14:54

    FPB-RA6E2試用】GPIO-按鍵控制LED燈亮滅及設(shè)備樹理解

    開發(fā)板led引腳配置。 2.1 開發(fā)板引腳配置圖 我目前用的開發(fā)板是FPB-RA6E2,參考圖如下: 2.2 自定義配置,增加自定義引腳 Led接法(低電平滅,高電平亮) 2.2.1 LED連接圖
    發(fā)表于 01-13 14:44

    FPB-RA6E2試用】GPIO-Zephyr RTOS 閃爍程序及設(shè)備樹理解

    ://docs.zephyrproject.org/latest/samples/basic/blinky/README.html 5.3 項(xiàng)目代碼 *附件:fpb_ra6e2_basic_blinky.zip 感謝電子發(fā)燒友平臺,感謝
    發(fā)表于 01-13 14:37

    FPB-RA6E2試用】SPI通信:W25Q64+LittleFS

    STM32上移植過LittleFS用于管理W25Q128,參考鏈接【筆記】littlefs移植筆記-CSDN博客) 實(shí)驗(yàn)平臺: 開發(fā)板:fpb_ra6e2 OS:zephyr
    發(fā)表于 01-11 22:46

    FPB-RA6E2試用】在 FPB-RA6E2 上實(shí)現(xiàn) LED 閃爍(GPIO)

    LED燈。 如果開發(fā)板上有l(wèi)ed,可查看開發(fā)手冊,查看開發(fā)板led引腳配置。 2.1 開發(fā)板引腳配置圖 我目前用的開發(fā)板是FPB-RA6E2,參考圖如下: 2.2 自定義配置,增加自定義引腳 Led接法
    發(fā)表于 01-07 19:13

    FPB-RA6E2試用】基礎(chǔ)功能使用3(SPI + IIC)

    Peripheral Interface)是連接傳感器、屏幕和存儲設(shè)備最常用的總線之一。本次測評旨在驗(yàn)證 FPB-RA6E2 開發(fā)板在 Zephyr RTOS 環(huán)境下的 SPI 驅(qū)動支持情況。 由于手頭暫時(shí)
    發(fā)表于 01-05 14:03

    FPB-RA6E2試用】【原創(chuàng)】【RA × Zephyr開發(fā)板評測】+兩款開發(fā)板之間到底差了啥

    的R7FA6E2BB3CFM。 圖1 FPB-RA6E2開發(fā)板 圖2 RA-Eco-RA6E2
    發(fā)表于 01-04 19:27

    FPB-RA6E2試用】【原創(chuàng)】基于【FPB-RA6E2】Windows 下Zephyr RTOS自定義項(xiàng)目開發(fā)全流程(創(chuàng)建-編譯-燒錄-串口調(diào)試)

    【原創(chuàng)】基于【FPB-RA6E2】Windows 下Zephyr RTOS自定義項(xiàng)目開發(fā)全流程(創(chuàng)建 · 編譯 · 燒錄 · 串口調(diào)試) 《整體全流程演示》。 使用的硬件:
    發(fā)表于 01-01 15:35

    FPB-RA6E2試用】基礎(chǔ)功能使用2

    看門狗 (WDT) 功能體驗(yàn) 前言 在嵌入式開發(fā)中,系統(tǒng)穩(wěn)定性至關(guān)重要。本次測評旨在驗(yàn)證 FPB-RA6E2 開發(fā)板在 Zephyr RTOS 環(huán)境下的看門狗功能。通過編寫“正常喂狗”與“模擬
    發(fā)表于 12-30 17:08

    FPB-RA6E2試用】【RA × Zephyr開發(fā)板評測】Linux環(huán)境配置和初步試用

    1. 前言 很榮幸獲得了RA × ZephyrFPB-RA6E2開發(fā)板評測機(jī)會,作為嵌入
    發(fā)表于 12-29 12:55

    FPB-RA6E2試用】基于FPB-RA6E2,在Windows環(huán)境的Zephyr-RTOS安裝教程

    基于FPB-RA6E2,Zephyr-Windows系統(tǒng)安裝教程 Zephyr官方文檔:https://docs.zephyrproject.org/latest/develop
    發(fā)表于 12-28 10:36