1 MSPM0L1306开发板教程-SPI-德赢Vwin官网 网
0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

MSPM0L1306开发板教程-SPI

创易栈 来源:创易栈 2023-07-08 10:56 次阅读

MSPM0L系列的SPI控制器最大频率是16MHz,支持3线和4线的模式,带有4个片选(CS),其中CS3支持命令模式(Command Mode)。

34378a2c-1cae-11ee-962d-dac502259ad0.png

SPI控制器有独立的4个字节接收和4个字节发送FIFO,主机数据位从7-16bit选择,从机数据位可以从4-16位选择。

3470e920-1cae-11ee-962d-dac502259ad0.png

下面通过配置一个操作外部SPI FLASH的程序来讲下SPI控制器的配置,FLASH的型号是华邦的W25Q128。

在SYSCONFIG中,添加一个SPI外设,频率最高16MHz,根据自己的需要选择,帧格式选择4线模式,8位数据位,高位在前,也就是MSB,时钟极性选择Low,也就是没有时钟的时候管脚是低电平,其他默认就可以。

34a19f84-1cae-11ee-962d-dac502259ad0.png

先来看下W25Q64的时序,我们用一个读芯片ID的时序来说明。

34ca519a-1cae-11ee-962d-dac502259ad0.png

SPI发送90h指令,地址为000000h,FLASH芯片就会返回工厂ID ,EFh和设备ID,这颗芯片ID是16h。

也就是说,SPI发送0x90,0x00,0x00,0x00这三个字节数据,芯片就会返回0xEF和0x16
需要注意的是,由于整个时序中,片选是要一直拉低的,而SPI 外设的片选在每次发送和接收完一帧后会拉高,所以FLASH的芯片的片选需要用MCU的IO口独立控制,没有办法使用SPI外设的CS管脚。

所以在SYSCONFIG里还配置了一个CS的GPIO。

34fbc0b8-1cae-11ee-962d-dac502259ad0.png

由于SPI的通讯时钟只能在发送操作的时候发出,读取操作是没有时钟信号发出的,所以在做读取操作的时候,其实需要发送操作,一般我们会发送同样与接收数据相同数量的0x00。

MSPM0L系列的SPI的控制寄存器CLT1中有一个REPEATTX,可以用来做重复发送操作,最高可以重复256次,例如我需要FLASH芯发送200帧数据,则REPEATTX为199,当我在程序中发送0x00的时候,SPI 控制器会发送200个0x00,形成200帧通讯时钟,程序比较简单。

351fa15e-1cae-11ee-962d-dac502259ad0.png

使用逻辑分析仪可以看到整个过程与FLASH芯片要求的时序一致。3551e93e-1cae-11ee-962d-dac502259ad0.png







审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表德赢Vwin官网 网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 控制器
    +关注

    关注

    112

    文章

    16323

    浏览量

    177795
  • SPI接口
    +关注

    关注

    0

    文章

    258

    浏览量

    34370
  • FIFO存储
    +关注

    关注

    0

    文章

    103

    浏览量

    5967
  • SPI Flash
    +关注

    关注

    1

    文章

    13

    浏览量

    10348

原文标题:MSPM0L1306开发板教程11 - SPI

文章出处:【微信号:创易栈,微信公众号:创易栈】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    MSPM0L1306开发板教程之OPA

    MSPM0L系列的OPA是一个轨到轨输入输出的可编程运算放大器,最大为32x,可以软件配置为零漂移斩波放大器以提高精度和漂移性能,有专门优化的输入管脚的型号可以达到10pA的输入偏置电流,标准模式为6MHz带宽,低功耗模式下带宽为1MHz,电流100uA。
    发表于 07-15 09:58 1979次阅读
    <b class='flag-5'>MSPM0L1306</b><b class='flag-5'>开发板</b>教程之OPA

    电赛:mspm0l1306开发板可以烧录程序,但是程序运行不了,怎么解决这个问题?

    mspm0l1306开发板可以烧录程序,但是程序运行不了,怎么解决这个问题?
    发表于 08-01 00:53

    MSPM0L1306开发板教程之开发环境搭建

    TI的MSPM0L系列的开发,可以使用KEIL,IAR,CCS等开发环境。仿真器可以使用ARM开发常用的JLINK,以及TI的XDS仿真器。
    的头像 发表于 04-23 10:11 1.1w次阅读
    <b class='flag-5'>MSPM0L1306</b><b class='flag-5'>开发板</b>教程之<b class='flag-5'>开发</b>环境搭建

    MSPM0L1306开发板教程之GPIO输入输出

    GPIO算是所有MCU入门的第一步,今天的教程就来教大家设置MSPM0L系列的GPIO的输入输出功能。
    的头像 发表于 05-04 17:22 6335次阅读
    <b class='flag-5'>MSPM0L1306</b><b class='flag-5'>开发板</b>教程之GPIO输入输出

    MSPM0L1306开发板教程之运行模式

    今天的教程讲下MSPM0L系列的运行模式。
    的头像 发表于 05-29 11:21 2966次阅读
    <b class='flag-5'>MSPM0L1306</b><b class='flag-5'>开发板</b>教程之运行模式

    MSPM0L1306开发板教程之DMA

    DMA使用是一个不需要CPU干预,自己搬运数据的模块,在前面讲中断事件的章节里面,就有提到过事件的DMA通道,DMA事件路由(DMA Event Route)。
    的头像 发表于 06-09 18:21 2673次阅读
    <b class='flag-5'>MSPM0L1306</b><b class='flag-5'>开发板</b>教程之DMA

    MSPM0L1306开发板教程之ADC

    MSPM0L系列的ADC是一个12bit的SAR ADC,采样频率最高1.45MHz,最高可做到11.2位的实际有效位(ENOB)。
    的头像 发表于 06-10 10:16 3684次阅读
    <b class='flag-5'>MSPM0L1306</b><b class='flag-5'>开发板</b>教程之ADC

    MSPM0L1306开发板教程之通用定时器

    MSPM0L系列的通用定时器(TIMG)是一个16位的自动重装定时器,支持向下和上下计数两种模式,同时带有两个比较捕获单元,可以做到输出比较,输入捕获,PWM输出,单脉冲输出等功能。
    的头像 发表于 06-30 15:50 4208次阅读
    <b class='flag-5'>MSPM0L1306</b><b class='flag-5'>开发板</b>教程之通用定时器

    MSPM0L1306开发板教程之I2C

    MSPM0L系列的I2C支持主从模式,有7位地址位可以设置,速率最大1Mbps,无论是主机或者从机,发送和接收都有独立的8个字节FIFO。
    的头像 发表于 06-30 15:50 4091次阅读
    <b class='flag-5'>MSPM0L1306</b><b class='flag-5'>开发板</b>教程之I2C

    MSPM0L1306开发板教程- NVM(FLASH)

    MSPMPL系列中的NVM(Non Volatile Memory)非易失性存储,也就是我们常说的FLASH。
    的头像 发表于 07-08 10:52 2904次阅读
    <b class='flag-5'>MSPM0L1306</b><b class='flag-5'>开发板</b>教程- NVM(FLASH)

    MSPM0L1306开发板教程之COMP

    MSPM0L带有模拟比较器功能,可以用于模拟信号的比较,用于中断MCU或者触发MCU其他外设。
    的头像 发表于 07-15 09:56 2036次阅读
    <b class='flag-5'>MSPM0L1306</b><b class='flag-5'>开发板</b>教程之COMP

    MSPM0L1306开发板教程之WWDT

    窗口看门狗WWDT,MSPM0L系列的看门狗的时钟使用的是32KHz的LFCLK,计数器有25位,寄存器可以有8个可选的计数周期,加上时钟的最大8分频,也就是有64档计数周期可选,从1.95ms到8190s,有两个阈值,关闭窗口(closed window)和打开窗口(open window)。
    的头像 发表于 07-15 10:01 1397次阅读
    <b class='flag-5'>MSPM0L1306</b><b class='flag-5'>开发板</b>教程之WWDT

    TI MSPM0L1306开发板简介

    看参考设计的时候看到了这个芯片,和以往烂大街的芯片不一样,它发布于今年3月。这个芯片更是TI这个老师傅狠狠的将活注入到MCU里面产生的奇妙产物。
    的头像 发表于 12-15 10:00 6565次阅读
    TI <b class='flag-5'>MSPM0L1306</b><b class='flag-5'>开发板</b>简介

    MSPM0 L系列MCU硬件开发指南

    德赢Vwin官网 网站提供《MSPM0 L系列MCU硬件开发指南.pdf》资料免费下载
    发表于 09-07 11:12 2次下载
    <b class='flag-5'>MSPM0</b> <b class='flag-5'>L</b>系列MCU硬件<b class='flag-5'>开发</b>指南

    MSPM0L1306 LaunchPad开发套件(LP‑MSPM0L1306)

    德赢Vwin官网 网站提供《MSPM0L1306 LaunchPad开发套件(LP‑MSPM0L1306).pdf》资料免费下载
    发表于 10-29 09:44 1次下载
    <b class='flag-5'>MSPM0L1306</b> LaunchPad<b class='flag-5'>开发</b>套件(LP‑<b class='flag-5'>MSPM0L1306</b>)