查看: 7646|回复: 6

[MQX] MQX_SPI通信问题

[复制链接]

该用户从未签到

11

主题

25

帖子

0

新手上路

Rank: 1

积分
88
最后登录
1970-1-1
发表于 2012-10-14 14:09:30 | 显示全部楼层 |阅读模式
 在K60上使用MQX的SPI,现在能实现自发自收,但是有一个问题还没有解决:片选信号没有预期的输出,请哪位大侠指点下怎么能得到正常的片选信号(做主机)
我使用了下面的代码,没有反应:
#if BSP_SPI0_GPIO_CS
   /* Open GPIO file containing SPI pin SS == chip select for memory */
 
  if (!lwgpio_init(&spigpio, BSP_SPI0_GPIO_CS, LWGPIO_DIR_OUTPUT, LWGPIO_VALUE_NOCHANGE))
   {
       printf("Initializing GPIO with associated pins failed.\n");
       _time_delay (200L);
       _task_block();
   }
   lwgpio_set_functionality(&spigpio,BSP_MUX_GPIO);/*BSP_SPI_MUX_GPIO need define in BSP for function mux as GPIO*/
 
   /* Set CS callback */
 
   callback.MASK =BSP_SPI0_GPIO_CS;
   callback.CALLBACK = set_CS;
   callback.USERDATA = &spigpio;
   printf ("Setting CS callback ... ");
   if (SPI_OK == ioctl (spifd, IO_IOCTL_SPI_SET_CS_CALLBACK, &callback))
   {
      printf ("OK\n");
   } else {
      printf ("ERROR\n");
   }
 
#endif
我知道答案 目前已有6人回答
回复

使用道具 举报

该用户从未签到

0

主题

9

帖子

0

新手上路

Rank: 1

积分
20
最后登录
1970-1-1
发表于 2012-10-15 14:07:12 | 显示全部楼层

RE:MQX_SPI通信问题

使用SPI没有这么复杂吧? 直接fopen后就应该可以用的。 你再看看spi的初始化是选择的哪个片选?
回复 支持 反对

使用道具 举报

该用户从未签到

11

主题

25

帖子

0

新手上路

Rank: 1

积分
88
最后登录
1970-1-1
 楼主| 发表于 2012-10-15 15:45:20 | 显示全部楼层

回复:MQX_SPI通信问题

回复第 2 楼 于2012-10-15 14:07:12发表:
使用SPI没有这么复杂吧? 直接fopen后就应该可以用的。 你再看看spi的初始化是选择的哪个片选?
 
可以实现自发自收,但是没有片选信号出来,初始化没找到那个地方有选择片选信号的,兄弟,你有用过没,请教下啊!
 
回复 支持 反对

使用道具 举报

该用户从未签到

11

主题

25

帖子

0

新手上路

Rank: 1

积分
88
最后登录
1970-1-1
 楼主| 发表于 2012-10-15 18:46:24 | 显示全部楼层

回复:MQX_SPI通信问题

回复第 2 楼 于2012-10-15 14:07:12发表:
使用SPI没有这么复杂吧? 直接fopen后就应该可以用的。 你再看看spi的初始化是选择的哪个片选?
 
 
我查看了下内部代码,添加了设置CS部分代码,可是还是没有片选信号出来,代码如下:
  /* set cs */
   printf("Setting CS:.....OK\n");
   param = 0x200000;
   ioctl(spifd,IO_IOCTL_SPI_SET_CS,&param);
   
   /* get cs */
   printf("Getting CS:\n");
   ioctl(spifd,IO_IOCTL_SPI_GET_CS,&param);
   printf("CS=%x\n",param);

 
回复 支持 反对

使用道具 举报

该用户从未签到

0

主题

9

帖子

0

新手上路

Rank: 1

积分
20
最后登录
1970-1-1
发表于 2012-10-22 11:16:12 | 显示全部楼层

回复:MQX_SPI通信问题

mqx 有片选的初始化的,如下:
位于 init_gpio.c
_mqx_int _bsp_dspi_io_init
(
    uint_32 dev_num
)
{
    SIM_MemMapPtr   sim = SIM_BASE_PTR;
    PORT_MemMapPtr  pctl;
 
    switch (dev_num)
    {
        case 0:
            /* Configure GPIOD for DSPI0 peripheral function */
            pctl = (PORT_MemMapPtr)PORTD_BASE_PTR;
 
            pctl-&gtCR[0] = PORT_PCR_MUX(2);     /* DSPI0.PCS0   */
            pctl-&gtCR[1] = PORT_PCR_MUX(2);     /* DSPI0.SCK    */
            pctl-&gtCR[2] = PORT_PCR_MUX(2);     /* DSPI0.SOUT   */
            pctl-&gtCR[3] = PORT_PCR_MUX(2);     /* DSPI0.SIN    */
 
            /* Enable clock gate to DSPI0 module */
            sim->SCGC6 |= SIM_SCGC6_DSPI0_MASK;
            break;
 
        case 1:
            /* Configure GPIOE for DSPI1 peripheral function     */
            pctl = (PORT_MemMapPtr)PORTE_BASE_PTR;
 
            pctl-&gtCR[1] = PORT_PCR_MUX(2);     /* DSPI1.SOUT   */
            pctl-&gtCR[2] = PORT_PCR_MUX(2);     /* DSPI1.SCK    */
            pctl-&gtCR[3] = PORT_PCR_MUX(2);     /* DSPI1.SIN    */
            pctl-&gtCR[4] = PORT_PCR_MUX(2);     /* DSPI1.PCS0   */
 
            /* Enable clock gate to DSPI1 module */
            sim->SCGC6 |= SIM_SCGC6_SPI1_MASK;
            break;
 
        case 2:
            /* Configure GPIOD for DSPI2 peripheral function     */
            pctl = (PORT_MemMapPtr)PORTD_BASE_PTR;
 
            pctl-&gtCR[11] = PORT_PCR_MUX(2);    /* DSPI2.PCS0   */
            pctl-&gtCR[12] = PORT_PCR_MUX(2);    /* DSPI2.SCK    */
            pctl->PCR[13] = PORT_PCR_MUX(2);    /* DSPI2.SOUT   */
            pctl->PCR[14] = PORT_PCR_MUX(2);    /* DSPI2.SIN    */
            pctl->PCR[15] = PORT_PCR_MUX(2);    /* DSPI2.PCS1   */
 
            /* Enable clock gate to DSPI2 module */
            sim->SCGC3 |= SIM_SCGC3_SPI2_MASK;
            break;
 
        default:
            /* do nothing if bad dev_num was selected */
            return -1;
    }
 
    return MQX_OK;
 
}
回复 支持 反对

使用道具 举报

该用户从未签到

0

主题

9

帖子

0

新手上路

Rank: 1

积分
20
最后登录
1970-1-1
发表于 2012-10-22 11:18:03 | 显示全部楼层

RE:MQX_SPI通信问题

要不把你调用spi的完整代码放上来看看?
回复 支持 反对

使用道具 举报

该用户从未签到

15

主题

194

帖子

0

高级会员

Rank: 4

积分
551
最后登录
1970-1-1
发表于 2014-12-3 23:37:06 | 显示全部楼层
gj-394961 发表于 2012-10-22 11:18
要不把你调用spi的完整代码放上来看看?

虽然这是2012年的帖子了,但是现在我也遇到了,详情请看帖子。
MQX的SPI中CS引脚问题
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2025-7-23 14:00 , Processed in 0.103774 second(s), 28 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

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