微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 硬件电路设计 > TI模拟硬件电路设计 > AFE4400的SOMI脚一直没有信号输出(低电平)

AFE4400的SOMI脚一直没有信号输出(低电平)

时间:10-02 整理:3721RD 点击:

我自己做了个板子用MSP430F149控制AFE4400。CLKOUT有4M的时钟输出,但是不管我怎么通过MSP430F149的SPI写和读AFE4400的寄存器始终没有看到它的SOMI脚有信号输出,更不要说ACD_RDY信号了。

我先问第一问题:我把TX_CTRL_SUP,LED_DRV_SUP,RX_DIG_SUP,RX_ANA_SUP都接3V电源。这样可以吗?

SPI 是这样设置的:

void Init_Uart0()
{
ME1 |= USPIE0;                                                        // Enable USART0 SPI mode
UCTL0 |= CHAR + SYNC + MM + SWRST;         // 8-bit SPI Master **SWRST**
UTCTL0 |= CKPH + SSEL0 + STC;                     // ACLK, 3-pin mode
UBR00 = 0x02;                                                      // UCLK/2
UBR10 = 0x00;                                                     // 0
UMCTL0 = 0x00;                                                   // no modulation
UCTL0 &= ~SWRST;                                               // Initialize USART state machine
IE1 &= ~(UTXIE0 + URXIE0);                               //发送,接收中断不允许
IFG1 &= ~UTXIFG0;                                              // Clear inital flag on POR
}

ACLK =8M.

当然还有一个端口输出STE信号。写AFE4400寄存器是这样的:

void MCU_afe(char adr, char DAT_H, char DAT_M, char DAT_L)
{
 afe_STE_L;
 TXBUF0 = adr;      while (!(IFG1&UTXIFG0));
TXBUF0 = DAT_H; while (!(IFG1&UTXIFG0));
TXBUF0 = DAT_M; while (!(IFG1&UTXIFG0));
TXBUF0 = DAT_L; while (!(IFG1&UTXIFG0));
 Delay_us(2);
afe_STE_H;
}

读AFE4400寄存器是这样的:

void afe_MCU(char adr, char *pt)
{
afe_STE_L;
TXBUF0 = adr;     while (!(IFG1&UTXIFG0));
TXBUF0 = 0;         while (!(IFG1&URXIFG0));
*(pt+0) = RXBUF0;
TXBUF0 = 0;        while (!(IFG1&URXIFG0));
*(pt+1) = RXBUF0;
TXBUF0 = 0;        while (!(IFG1&URXIFG0));
*(pt+2) = RXBUF0;
Delay_us(2);
afe_STE_H;
}

在写寄存器时先把地址0的寄存器写0,在读寄存器前先把地址0的寄存器写1。请问我的程序有什么问题吗?为什么似乎AFE4400就没有工作似的?

谢谢 

图怎么连接的呢

Sup的那几个脚接3v是没有问题的。

建议用示波器看一下spi的时序是否正确,另外,检查硬件连接及设计是否正确。

请问一下,您的程序是全部自己写的还是有示例程序?谢谢啦

图是这样连接的。

用示波器看了SPI的时序没有问题。从我的程序中也应该看出吧?写寄存器时我首先发一个字节的地址,再发3个字节的数据。接收时先发一个字节的地址,再连续发3个字节的0。同时在每发完一个字节后取SPI接收寄存器里的内容。从示波器看SOMI信号没有任何变化。真是没有办法了。

你好。 我的程序都是自己写的。请帮忙看看是否哪里考虑不周。谢谢

程序都是自己写的。谢谢帮忙看看有什么问题。

发现用MSP430F149的SPI硬件写AFE4400寄存器似乎根本就没有写进去。但是如果自己写个利用GPIO口模拟SPI口写AFE4400寄存器就对了。也不知道为什么?利用是示波器看这两种方法的CLK和SIMO信号基本也差不多。就是GPIO模拟SPI的CLK信号窄一些。难道CLK的下降沿也起什么作用吗?

Spi的时序只需要满足数据手册中的 table1的要求即可。

建议看TI源代码。

请问你接收后AFE4400信息怎么计算血氧和心率的

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top