立即注册
查看: 3367|回复: 8

[资料] SPI demo code 及使用注意事项

已绑定手机
已实名认证
专业2G/3G/4G智能模块核心板,承接方案定制,
手机:18665375912(微信同号)或点下面的黑色字体

深圳市新移科技有限公司
发表于 2017-2-24 13:54:48 | 显示全部楼层 |阅读模式 来自 广东省深圳市
平台MT2503
软件分支11CW1352SP3
内容[DESCRIPTION]

      目前比较多的外设会用到spi interface,MT6260及之前的平台都有提供spi slave 功能。此FAQ旨在描述spi driver的使用方法及使用过程中会遇到的问题及解决方法。

[SOLUTION]

spi driver 路径如下:
.\hal\peripheral\src\spi_hal.c



请参考如下代码
spi_hal.c/h

#define SPI_TEST_BUFFER_SIZE (128*16)
__attribute__ ((section ("NONCACHEDRW"), aligned(4)))
kal_uint8 spi_test_buffer1[SPI_TEST_BUFFER_SIZE];
__attribute__ ((section ("NONCACHEDRW"), aligned(4)))
kal_uint8 spi_test_buffer2[SPI_TEST_BUFFER_SIZE];

static SPI_HANDLE handle;
void spi_test(void)
{
    SPI_CONFIG_PARAM_T param;

    SPI_RESULT status;

    handle = spi_open(0);
    param.cs_setup_time = 5;
    param.cs_hold_time = 5;
    param.cs_idle_time = 5;
    param.clk_low_time = 5;
    param.clk_high_time = 5;
    param.tx_msbf = SPI_MSBF_LSB;
    param.rx_msbf = SPI_MSBF_LSB;
    param.tx_endian = SPI_ENDIAN_LITTLE;
    param.rx_endian = SPI_ENDIAN_LITTLE;
    param.clk_polarity = SPI_CPOL_B0;
    param.clk_fmt = SPI_CPHA_B0;
    status = spi_configure(handle, &param);

    if(status !=  SPI_RESULT_OK)
    {
         kal_prompt_trace(MOD_ATCI, "spi config fail \r\n");
    }

    // polling write
    memset(spi_test_buffer1, 0x55, SPI_TEST_BUFFER_SIZE);
    status = spi_write(handle, spi_test_buffer1, 16, 1, NULL);

    if(status !=  SPI_RESULT_OK)    {
         kal_prompt_trace(MOD_ATCI, "spi write fail \r\n");
    }

    spi_close(handle);
}



注意事项;
1、调用spi接口后需要检查返回值,防止中间过程失败而导致spi无法正常工作;
2、 调用spi_write需要注意:
     参数三表示packet size:此值要小于1024
     参数四表示packet count,此值要小于256
     这两个参数组合起来表明一次可以发生小于256K byte的数据,但是需要保证buffer有这么大才行。
3、 spi driver使用的buffer必须定义为non cachedrw 。






已绑定手机
已实名认证
在一切变得简单之前,唯一答案:努力去做!
发表于 2017-2-24 14:15:28 | 显示全部楼层 来自 福建省福州市
谢谢分享!!!
已绑定手机
发表于 2017-2-24 15:43:59 | 显示全部楼层 来自 北京市
感谢分享,正在学习中!
已绑定手机
发表于 2017-2-24 15:50:47 | 显示全部楼层 来自 江苏省苏州市
谢谢分享
已绑定手机
发表于 2017-2-24 16:30:51 | 显示全部楼层 来自 江苏省南京市
谢谢分享
已绑定手机
发表于 2017-2-24 17:06:38 | 显示全部楼层 来自 江苏省苏州市
感谢分享
已绑定手机
发表于 2017-2-24 20:17:00 | 显示全部楼层 来自 广东省深圳市
感谢分享,正在学习中!
已绑定手机
发表于 2017-3-13 11:39:52 | 显示全部楼层 来自 上海市
谢谢分享
已绑定手机
发表于 2019-1-12 10:46:21 | 显示全部楼层 来自 广东省深圳市南山区
spi使用的硬件IO口得怎么配置呢?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

合作/建议

TEL: 19168984579

工作时间:
周一到周五 9:00-11:30 13:30-19:30
  • 扫一扫关注公众号
  • 扫一扫打开小程序
Copyright © 2013-2024 一牛网 版权所有 All Rights Reserved. 帮助中心|隐私声明|联系我们|手机版|粤ICP备13053961号|营业执照|EDI证
在本版发帖搜索
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表