spi 与AD DA - TMS320C6748 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3752|回复: 2
打印 上一主题 下一主题

spi 与AD DA

[复制链接]

9

主题

24

帖子

130

积分

注册会员

Rank: 2

积分
130
跳转到指定楼层
楼主
发表于 2015-10-4 22:38:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
按照给的spi flash例程  把里面spi部分拿出来做与AD DA通信的驱动 void um02_spiInit(void)
{
unsigned int spi_mode = SOMI_SIMO_CLK_CS1_CS6;//使用CS1 CS6对应AD和DA   值为(0x00000E42)  转换时CS1 CS6为低电平
/* Resets the SPI */
  SPIReset(SOC_SPI_1_REGS);
/* Brings SPI Out-of-Reset */
SPIOutOfReset(SOC_SPI_1_REGS);
/* Configures SPI in Master Mode */
SPIModeConfigure(SOC_SPI_1_REGS, SPI_MASTER_MODE);
/* Sets SPI Controller for 4-pin Mode with CHIP SELCET */
  SPIPinControl(SOC_SPI_1_REGS, 0, 0, &spi_mode);


SPIDefaultCSSet(SOC_SPI_1_REGS, 0x42);
/*Configures the Prescale bit in Data Format register. */
SPIClkConfigure(SOC_SPI_1_REGS, SOC_SYSCLK_2_FREQ, 1920000,SPI_DATA_FORMAT0);//fs=120000*16(位)
/* Configures SPI Data Format Register */
SPIConfigDataFmtReg(SPI_DATA_FORMAT0);
// 配置 SPI
SPIDat1Config(SOC_SPI_1_REGS, (SPI_CSHOLD | SPI_DATA_FORMAT0), 0x42);
  /*enable spi dma*/
SPIIntEnable(SOC_SPI_1_REGS, SPI_DMA_REQUEST_ENA_INT);

SPIDelayConfigure(SOC_SPI_1_REGS, 0, 0, 10, 20);//瞎写的  感觉没什么影响啊
SPIEnable(SOC_SPI_1_REGS);

}




传输时 好像只能传出一个数 然后就停下了  (spi 发送寄存器是没错的 里面的值一直在刷新) 请问是怎么回事    还有就是有没有写过这方面驱动的能不能分享一下
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

184

帖子

1137

积分

QQ游客

积分
1137
沙发
发表于 2015-10-8 09:35:49 | 只看该作者
不知道你是怎么判断是只传出一个数,如果是只判断片选的话,有可能是配置问题,可以将:
SPIDat1Config(SOC_SPI_1_REGS, (SPI_CSHOLD | SPI_DATA_FORMAT0), 0x1);里的SPI_CSHOLD去掉。
回复 支持 反对

使用道具 举报

9

主题

24

帖子

130

积分

注册会员

Rank: 2

积分
130
板凳
 楼主| 发表于 2015-10-8 15:41:50 | 只看该作者
最终发现问题出在没有使能WDEL  和 修改 WDELAY的值   导致  CS一直为低  而DA需要在上升沿将收到的值转换     要不是您提醒我看CSHOLD  我还不会顺便发现这个问题  非常感谢您的解答
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|嵌入式开发者社区 ( 粤ICP备15055271号

GMT+8, 2024-4-29 06:43 , Processed in 0.035541 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

快速回复 返回顶部 返回列表