5985|29

130

帖子

13

TA的资源

一粒金砂(高级)

楼主
 

请朋友们切记MSP342例程中的SPI例程(基于寄存器)千万别碰,否则,眼泪马上流出来! [复制链接]

 
本帖最后由 minjiang 于 2015-10-24 10:33 编辑

俺在做eUSC模块时,连续弄坏3块开发板,眼泪都流干了
在此警示大家!SPI例程,即使一次都不能碰。按网上的
邮寄费和板费,每块板子近200冥币,大家一定要小心了!

最新回复

楼主有一段时间没有逛论坛了,你可以将你的问题以主题帖的形式发出来,看有没有其他网友可以帮助到你!  详情 回复 发表于 2015-12-18 15:44
 
点赞 关注
个人签名good

回复
举报

130

帖子

13

TA的资源

一粒金砂(高级)

沙发
 
******************************************************************************
//  MSP432P401 Demo - eUSCI_A3, SPI 4-Wire Master Incremented Data
//
//  Description: SPI master talks to SPI slave using 4-wire mode. Incrementing
//  data is sent by the master starting at 0x01. Received data is expected to
//  be same as the previous transmission TXData = RXData-1.
//  The slave select signal is set to active high.
//  USCI RX ISR is used to handle communication with the CPU, normally in LPM0.
//  ACLK = ~32.768kHz, MCLK = SMCLK = DCO ~1MHz.  BRCLK = ACLK/2.
//
//
//                  MSP432P401R
//                -----------------
//            /|\|                 |
//             | |                 |
//             --|RST              |
//               |                 |
//               |             P9.7|-> Data Out (UCA3SIMO)
//               |             P9.6|<- Data In (UCA3SOMI)
//               |             P9.5|-> Serial Clock Out (UCA3CLK)
//               |             P9.4|-> Slave Select (UCA3STE)
//
//
//   Wei Zhao
//   Texas Instruments Inc.
//   June 2014
//   Built with Code Composer Studio V6.0
//******************************************************************************
#include "msp.h"
#include

uint8_t RXData = 0;
uint8_t TXData;

int main(void)
{
    volatile uint32_t i;
    WDTCTL = WDTPW | WDTHOLD;                 // Stop watchdog timer

    P9SEL0 |= BIT4 | BIT5 | BIT6 | BIT7;      // set 4-SPI pin as second function

    __enable_interrupt();
    NVIC_ISER0 = 1 << ((INT_EUSCIA3 - 16) & 31); // Enable eUSCIA3 interrupt in NVIC module

    UCA3CTLW0 |= UCSWRST;                     // **Put state machine in reset**
                                              // 4-pin, 8-bit SPI master
    UCA3CTLW0 |= UCMST|UCSYNC|UCCKPL|UCMSB|UCMODE_1|UCSTEM;
                                              // Clock polarity high, MSB
    UCA3CTLW0 |= UCSSEL__ACLK;                // ACLK
    UCA3BR0 = 0x01;                           // /2,fBitClock = fBRCLK/(UCBRx+1).
    UCA3BR1 = 0;                              //
    UCA3MCTLW = 0;                            // No modulation
    UCA3CTLW0 &= ~UCSWRST;                    // **Initialize USCI state machine**
    TXData = 0x01;                            // Holds TX data
  
    SCB_SCR &= ~SCB_SCR_SLEEPONEXIT;          // Wake up on exit from ISR
    while(1)
    {
       UCA3IE |= UCTXIE;                      // Enable TX interrupt
       __sleep();
       __no_operation();                         // For debug,Remain in LPM0
       for (i = 2000; i > 0; i--);            // Delay before next transmission
       TXData++;                                 // Increment transmit data
  }
}

// SPI interrupt service routine
void eUSCIA3IsrHandler(void)
{
    if (UCA3IFG & UCTXIFG)
    {
        UCA3TXBUF = TXData;                // Transmit characters
        UCA3IE &= ~UCTXIE;
        while (!(UCA3IFG&UCRXIFG));
        RXData = UCA3RXBUF;
        UCA3IFG &= ~UCRXIFG;
    }

}
 
个人签名good
 

回复

130

帖子

13

TA的资源

一粒金砂(高级)

板凳
 
还有感觉SPI的基于库函数的例程,运行结果页是错误的!
 
个人签名good
 
 

回复

1万

帖子

24

TA的资源

版主

4
 
写SPI寄存器会烧开发板?
 
 
 

回复

130

帖子

13

TA的资源

一粒金砂(高级)

5
 
恩,我说的是TI提供的例程,
 
个人签名good
 
 

回复

2002

帖子

24

TA的资源

五彩晶圆(高级)

6
 
虽然没试过,但我觉得不会这样,添加有外设么,检查一下接口看看
 
 
 

回复

130

帖子

13

TA的资源

一粒金砂(高级)

7
 
呵呵,俺正等你试试,是不是俺鬼打墙了,呵呵!
 
个人签名good
 
 

回复

428

帖子

0

TA的资源

一粒金砂(高级)

8
 
好吓人,TI的例程都有问题
 
 
 

回复

130

帖子

13

TA的资源

一粒金砂(高级)

9
 
本帖最后由 minjiang 于 2015-10-24 13:02 编辑

呵呵,还好,俺多准备了几块,不然,哭都来不及了

点评

你应该先仔细检查检查自己设计方面的问题,TI的spil我用在产品上多年了,没出现你说的问题呀!  详情 回复 发表于 2015-10-24 14:07
 
个人签名good
 
 

回复

379

帖子

3

TA的资源

一粒金砂(高级)

10
 
本帖最后由 wenyangzeng 于 2015-10-24 14:10 编辑
minjiang 发表于 2015-10-24 12:21
呵呵,还好,俺多准备了几块,不然,哭都来不及了

你应该先仔细检查检查自己设计方面和其他关联硬件的问题,TI的spil我用在产品上多年了,没出现你说的问题呀!即使片子坏了,你也应该检查片子坏在哪里,确实与SPI有关吗?
 
 
 

回复

130

帖子

13

TA的资源

一粒金砂(高级)

11
 
呵呵,看来俺木有说清楚,是MSP432不是什么430,是M4,
430的类似例程,俺也测试过,是对的,而MSP432不对。
俺是用的TI的板子,不存在硬件的问题,其他都好用,
而弄到eUSCI模块就不好用了,测试结果和例程的说明有出入
俺在这里只是警示,大家,哪怕一次测试SPI,板子就费了,
这里的费了,可能是板子被锁死,或真的坏了!
 
个人签名good
 
 

回复

130

帖子

13

TA的资源

一粒金砂(高级)

12
 
还有同样题意的例程,在ARM Cortex M4中也好使,可是在
432中不好使,俺想,写M4固件库的人和写432的是两拨人
,这波人是想继承430的特点,所以,无论430还是ARM Cortex
M4都存在问题!
 
个人签名good
 
 

回复

215

帖子

0

TA的资源

一粒金砂(高级)

13
 
楼主来说说看是怎么坏了?或者说你是怎么确定这片子坏了的?SPI不会这么恐怖吧
 
 
 

回复

130

帖子

13

TA的资源

一粒金砂(高级)

14
 
本帖最后由 minjiang 于 2015-10-24 15:17 编辑

呵呵,就是再也别想连上你的板子了,只好当垃圾扔了!呵呵,好像TI工程师也没有解决这个问题
TI论坛里,也有人板子坏了3块,现在俺非常小心翼翼,还剩最后一块了,

希望后来人,别再重蹈俺的覆辙,那是钱呢,肉疼!

点评

是说其他SPI器件连接不上他还是仿真器不能下载或者debug。 如果是后者会不会是flash锁死。试下看解锁的问题?以前用TM4C也是cortex M4也是经常锁死。解锁一下就能用了。  详情 回复 发表于 2015-10-24 15:21
 
个人签名good
 
 

回复

215

帖子

0

TA的资源

一粒金砂(高级)

15
 
minjiang 发表于 2015-10-24 15:06
呵呵,就是再也别想连上你的板子了,只好当垃圾扔了!呵呵,好像TI工程师也没有解决这个问题
TI论坛里,也 ...

是说其他SPI器件连接不上他还是仿真器不能下载或者debug。
如果是后者会不会是flash锁死。试下看解锁的问题?以前用TM4C也是cortex M4也是经常锁死。解锁一下就能用了。
 
 
 

回复

130

帖子

13

TA的资源

一粒金砂(高级)

16
 
呵呵,谁知道,是锁死还是怎么样的,432没有提供 M4的下载工具,你怎么解?

点评

楼主别慌这儿人才多能解决的。别因噎废食呀。 TM4C用的是LMflash。没用过432.但看内核好像都是M4可能也能行?  详情 回复 发表于 2015-10-24 15:35
 
个人签名good
 
 

回复

130

帖子

13

TA的资源

一粒金砂(高级)

17
 
本帖最后由 minjiang 于 2015-10-24 16:24 编辑



 
个人签名good
 
 

回复

215

帖子

0

TA的资源

一粒金砂(高级)

18
 
minjiang 发表于 2015-10-24 15:24
呵呵,谁知道,是锁死还是怎么样的,432没有提供 M4的下载工具,你怎么解?

楼主别慌这儿人才多能解决的。别因噎废食呀。
TM4C用的是LMflash。没用过432.但看内核好像都是M4可能也能行?
 
 
 

回复

130

帖子

13

TA的资源

一粒金砂(高级)

19
 
呵呵,好的,那几块板子暂时留着,等人破解!

点评

我就是想让你试试看LMflash可不可以拯救那个板子。。。具体方法你百度下。论坛里好像也有帖子提到过。你也不说是怎么坏的。别人怎么下判断.  详情 回复 发表于 2015-10-24 18:19
 
个人签名good
 
 

回复

2886

帖子

0

TA的资源

五彩晶圆(初级)

20
 
真的假的,说的那么吓人。
竟然没人分析下原因。。。
 
个人签名昵称:灰小子
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表