91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

配置芯片寄存器的SPI通信協(xié)議的verilog實(shí)現(xiàn)

冬至配餃子 ? 來(lái)源:Bug記錄 ? 作者:woodfan ? 2023-06-16 09:50 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

最近正在調(diào)試一個(gè)芯片的評(píng)估板,其中配置寄存器使用的是SPI通信協(xié)議。其實(shí)很多芯片寄存器的配置都用到了SPI通信協(xié)議,我們今天就需要實(shí)現(xiàn)這個(gè)SPI通信協(xié)議。

首先,我們需要了解SPI協(xié)議的基本內(nèi)容,SPI主要有四根傳輸線,分別為SPI_CLK, SPI_EN, SPI_DI, SPI_DO。

主設(shè)備會(huì)將數(shù)據(jù)時(shí)鐘通過(guò)SPI_CLK傳送給從設(shè)備,從設(shè)備根據(jù)SPI_CLK進(jìn)行接收發(fā)送工作;SPI需要注意的是極性CPOL和相位CPHA;CPOL指的是時(shí)鐘極性,CPHA指的是時(shí)鐘相位。一個(gè)時(shí)鐘周期內(nèi),會(huì)有兩個(gè)跳變沿,它既有可能是上升沿也有可能是下降沿;CPOL的值決定了SPI數(shù)據(jù)時(shí)鐘在空閑狀態(tài)下保持為高電平(CPOL=1)還是低電平(CPOL=0),CPHA的值決定了SPI的采樣邊沿是第一個(gè)邊沿(CPHA=0)還是第二個(gè)邊沿(CPHA=1)。

舉個(gè)例子,從某芯片手冊(cè)上看,該芯片手冊(cè)SPI的時(shí)序圖如下:

圖片

芯片SPI寫時(shí)序

可以看到,SPI_CLK在開(kāi)始和結(jié)束時(shí)都保持了低電平狀態(tài),所以CPOL=0,而每次SPI_DI在SPI_CLK的上升沿改變電平值,在SPI_CLK的下降沿保持電平不變,所以可以推斷,SPI的采樣邊沿是第二個(gè)邊沿,CPHA=1;

從圖中我們還可以知道,SPI需要工作的時(shí)候,SPI_ENB需要拉低,這就是SPI的片選信號(hào),由于SPI沒(méi)有尋址機(jī)制,所以需要使用片選信號(hào)選擇總線上不同的設(shè)備。

所以說(shuō),SPI_EN的工作最為輕松,在需要發(fā)送數(shù)據(jù)的時(shí)候?qū)PI_EN反相,在發(fā)送結(jié)束后再反相回來(lái);SPI_CLK就是在不斷地發(fā)送周期性方波;SPI_DI則是在恰當(dāng)?shù)臅r(shí)機(jī)根據(jù)要發(fā)送的數(shù)據(jù)進(jìn)行高低電平轉(zhuǎn)換,然后保持不變。

圖片

芯片SPI讀時(shí)序

這里簡(jiǎn)單說(shuō)一下這個(gè)芯片SPI的協(xié)議內(nèi)容,發(fā)送的第一位(MSB)決定了SPI讀寫操作,為1是寫入,為0是讀??;接下來(lái)發(fā)送5位0,接著發(fā)送10位的寄存器地址;如果SPI是寫操作,繼續(xù)寫入8位數(shù)據(jù),否則開(kāi)始接收SPI_DO上的數(shù)據(jù)。

圖片

指令解釋

這里我列出了狀態(tài)機(jī)跳轉(zhuǎn)的狀態(tài):

圖片

首先狀態(tài)機(jī)不管在任何狀態(tài)都會(huì)回到IDLE空閑狀態(tài),在IDLE空閑狀態(tài)下,接收到發(fā)送數(shù)據(jù)的命令就會(huì)跳轉(zhuǎn)到WRITE_ADDR寫地址狀態(tài),在寫完前16位數(shù)據(jù)后,根據(jù)第一位的值決定是跳轉(zhuǎn)到WRITE_DATA狀態(tài)接著向芯片寄存器寫入數(shù)據(jù)還是轉(zhuǎn)向READ狀態(tài)讀取寄存器的值;操作結(jié)束后最終狀態(tài)機(jī)回到IDLE空閑狀態(tài)。

其實(shí)只需要理解芯片手冊(cè)上SPI的時(shí)序圖,并用verilog將其描述出來(lái),就已經(jīng)成功了一大半。這里我們實(shí)操前的準(zhǔn)備工作都做完了,接下來(lái)就是開(kāi)始碼verilog代碼并進(jìn)行仿真,上板測(cè)試等等。待我整理出來(lái)之后,再與大家一同討論吧。

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

    關(guān)注

    31

    文章

    5608

    瀏覽量

    129943
  • 狀態(tài)機(jī)
    +關(guān)注

    關(guān)注

    2

    文章

    499

    瀏覽量

    29132
  • SPI通信
    +關(guān)注

    關(guān)注

    0

    文章

    40

    瀏覽量

    11969
  • Verilog語(yǔ)言
    +關(guān)注

    關(guān)注

    0

    文章

    113

    瀏覽量

    8790
  • MSB
    MSB
    +關(guān)注

    關(guān)注

    0

    文章

    14

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    Verilog設(shè)計(jì)寄存器

    現(xiàn)代邏輯設(shè)計(jì)中,時(shí)序邏輯設(shè)計(jì)是核心,而寄存器又是時(shí)序邏輯的基礎(chǔ),下面將介紹幾種常見(jiàn)的寄存器Verilog設(shè)計(jì)代碼供初學(xué)者進(jìn)行學(xué)習(xí)理解。
    的頭像 發(fā)表于 07-27 09:03 ?5056次閱讀
    <b class='flag-5'>Verilog</b>設(shè)計(jì)<b class='flag-5'>寄存器</b>

    fpga與spi通信協(xié)議

    fpga通過(guò)spi通信協(xié)議在與外圍設(shè)備實(shí)現(xiàn)通信的過(guò)程中程序代碼該怎么寫?新手勿噴
    發(fā)表于 04-09 12:44

    SPI通信協(xié)議

    EEPROM,F(xiàn)LASH,實(shí)時(shí)時(shí)鐘,AD轉(zhuǎn)換,還有數(shù)字信號(hào)處理和數(shù)字信號(hào)解碼之間。SPI,是一種高速的,全雙工,同步的通信總線,并且
    發(fā)表于 10-12 11:30

    SPI通信協(xié)議

    LOTO虛擬示波器采集到的數(shù)據(jù)波形并進(jìn)行對(duì)比分析,方便大家的理解。SPI通信協(xié)議一般只需要四根線將主控芯片與從芯片連接起來(lái),其中四根線分別為:(1)SDO– 主設(shè)備數(shù)據(jù)輸出,從設(shè)備數(shù)據(jù)
    發(fā)表于 08-09 07:49

    對(duì)串口中斷的通信協(xié)議理解與應(yīng)用

    雙向通信。本文主要講解對(duì)正點(diǎn)原子的串口通信實(shí)驗(yàn)中串口中斷的通信協(xié)議的理解與應(yīng)用,關(guān)于串口的初始化配置等這里略過(guò)不講。在正式開(kāi)始之前,先把涉及到的寄存
    發(fā)表于 02-14 07:18

    SPI是什么?SPI通信協(xié)議說(shuō)明

    文章目錄目錄前言一、SPI是什么?二、SPI通信協(xié)議1.通信引腳說(shuō)明2.通信格式說(shuō)明3.實(shí)現(xiàn)形式
    發(fā)表于 02-17 06:45

    STM32如何模擬SPI通信協(xié)議

    STM32模擬SPI通信協(xié)議SPI的簡(jiǎn)介:SPI是串行外設(shè)接口的縮寫,是一種高速的,全雙工、同步的串行通信總線;
    發(fā)表于 02-17 08:03

    SPI通信協(xié)議及實(shí)例打包

    本文是SPI通信協(xié)議及實(shí)例打包分享。
    發(fā)表于 11-16 13:24 ?47次下載

    SPI通信協(xié)議

    SPI接口簡(jiǎn)介SPI內(nèi)部結(jié)構(gòu)SPI工作原理SPI特征SPI的四種工作方式SPI時(shí)序圖
    發(fā)表于 12-22 19:17 ?5次下載
    <b class='flag-5'>SPI</b><b class='flag-5'>通信協(xié)議</b>

    SPI通信協(xié)議講解

    SPI通信協(xié)議講解SPI通信概念SPI通信SPI
    發(fā)表于 12-22 19:19 ?26次下載
    <b class='flag-5'>SPI</b><b class='flag-5'>通信協(xié)議</b>講解

    通信協(xié)議SPI

    STM32模擬SPI通信協(xié)議SPI的簡(jiǎn)介:SPI是串行外設(shè)接口的縮寫,是一種高速的,全雙工、同步的串行通信總線;
    發(fā)表于 12-22 19:20 ?22次下載
    <b class='flag-5'>通信協(xié)議</b>:<b class='flag-5'>SPI</b>

    通信協(xié)議SPI

    方便,所以越來(lái)越多的芯片集成了這種通信協(xié)議;二、尋址方式當(dāng)主設(shè)備要和某個(gè)從設(shè)備進(jìn)行通信時(shí),主設(shè)備需要先向
    發(fā)表于 12-22 19:33 ?6次下載
    <b class='flag-5'>通信協(xié)議</b>(<b class='flag-5'>SPI</b>)

    plc通信協(xié)議 plc通信原理

    Modbus協(xié)議是一種應(yīng)用層協(xié)議,建立在串口通信協(xié)議之上,常用于工業(yè)控制系統(tǒng)中。Modbus協(xié)議定義了一系列數(shù)據(jù)傳輸規(guī)則和通信指令,包括讀寫
    的頭像 發(fā)表于 06-26 17:52 ?5001次閱讀

    SPI通信協(xié)議原理是什么

    Peripheral Interface,也就是串行外設(shè)接口,同樣是一種通信協(xié)議,在很多芯片中都有集成。 相比之前學(xué)習(xí)的UART串口通信,他多了兩根線,其中一個(gè)是時(shí)鐘信號(hào),另一個(gè)是設(shè)備使能信號(hào),用來(lái)控制設(shè)備是否
    的頭像 發(fā)表于 11-24 17:37 ?2184次閱讀
    <b class='flag-5'>SPI</b><b class='flag-5'>通信協(xié)議</b>原理是什么

    scon寄存器在串口通信中的實(shí)際應(yīng)用

    SCON寄存器的具體操作取決于使用的串行通信協(xié)議和相關(guān)硬件的配置。通過(guò)設(shè)置或讀取SCON寄存器的不同位字段,可以控制串行通信的設(shè)置,如波特率
    的頭像 發(fā)表于 02-02 15:10 ?4380次閱讀
    scon<b class='flag-5'>寄存器</b>在串口<b class='flag-5'>通信</b>中的實(shí)際應(yīng)用