全球最实用的IT互联网信息网站!

AI人工智能P2P分享&下载搜索网页发布信息网站地图

当前位置:诺佳网 > 电子/半导体 > 接口/总线/驱动 >

SPI默认生成工程存在SPI驱动配置不当问题处理

时间:2023-08-10 14:54

人气:

作者:admin

标签: 默认  spi  存在  工程  生成 

导读:SPI默认生成工程存在SPI驱动配置不当问题处理-在使用RT-Thread Studio生成的默认工程SPI驱动部分有笔误,导致SPI实际输出频率与配置参数不符合...

1、硬件资源介绍:

1.jpg

1.jpg

2、问题描述:

在使用RT-Thread Studio生成的默认工程SPI驱动部分有笔误,导致SPI实际输出频率与配置参数不符合,主要问题点有以下部分:

1、从总线架构上可以看出,N32L40XCL的SPI外设都在APB2总线上,drive部分却把SPI2在APB1上进行分频,导致实际输出频率与参数不符。

if (spi_periph == SPI1)
{
spi_apb_clock = RCC_ClockFreq.Pclk2Freq;
}
else
{
spi_apb_clock = RCC_ClockFreq.Pclk1Freq;//这里应该也为Pclk2Freq
}

2、在配置CLKPHA的捕获边沿重复设置,导致实际输出数据出现偏移

switch(configuration-  >mode & RT_SPI_MODE_3)
{
    case RT_SPI_MODE_0:
        SPI_InitStructure.CLKPOL        = SPI_CLKPOL_LOW;
        SPI_InitStructure.CLKPHA        = SPI_CLKPHA_FIRST_EDGE;
        break;
    case RT_SPI_MODE_1:
        SPI_InitStructure.CLKPOL        = SPI_CLKPOL_LOW;
        SPI_InitStructure.CLKPHA        = SPI_CLKPHA_SECOND_EDGE;
        break;
    case RT_SPI_MODE_2:
        SPI_InitStructure.CLKPOL        = SPI_CLKPOL_HIGH;
        SPI_InitStructure.CLKPHA        = SPI_CLKPHA_FIRST_EDGE;
        break;
    case RT_SPI_MODE_3:
        SPI_InitStructure.CLKPOL        = SPI_CLKPOL_HIGH;
        SPI_InitStructure.CLKPHA        = SPI_CLKPHA_SECOND_EDGE;
        break;
}
...
/* SPI configuration */
SPI_InitStructure.DataDirection = SPI_DIR_DOUBLELINE_FULLDUPLEX;
SPI_InitStructure.SpiMode       = SPI_MODE_MASTER;
//SPI_InitStructure.CLKPHA        = SPI_CLKPHA_SECOND_EDGE; 屏蔽此处
SPI_InitStructure.NSS           = SPI_NSS_SOFT;
SPI_InitStructure.CRCPoly       = 7;

3、目前SPI最高频率拿到的板子实测为16.67MHz(其他分频系数下时钟稳定),对精度要求高的场景需要注意,一般情况下问题不大

1.jpg

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信