mountainest 发表于 2014-10-3 21:34

F28335 SPI低电平为什么是2V?

如题,我用示波器测量SPI的波形,高电平是3.3v没问题,为什么低电平是2v?下面是我的程序

#include "DSP2833x_Device.h"   // DSP2833x Headerfile Include File
#include "DSP2833x_Examples.h"   // DSP2833x Examples Include File

//#define          LedReg        (*((volatileUint16 *)0x41FF))
//Uint16    *ExRamStart = (Uint16 *)0x100000;

void spi_xmit(Uint16 a);
void spi_fifo_init(void);
void spi_init(void);

void main(void)
{
   Uint16 sdata;// send data
   Uint16 rdata;// received data

   InitSysCtrl();


   InitXintf16Gpio();        //zq

   InitSpiaGpio();

   DINT;

   InitPieCtrl();

// Disable CPU interrupts and clear all CPU interrupt flags:
   IER = 0x0000;
   IFR = 0x0000;
   
   InitPieVectTable();

   spi_fifo_init();          // Initialize the Spi FIFO
   spi_init();                  // init SPI

   sdata = 0xAAAA;
   for(;;)
   {   
   // Transmit data
        spi_xmit(sdata);
   // Wait until data is received
   while(SpiaRegs.SPIFFRX.bit.RXFFST !=1) { }                        
   // Check against sent data
   rdata = SpiaRegs.SPIRXBUF;
   
   //sdata++;

   }
}        
void spi_init()
{
        SpiaRegs.SPICCR.all =0x000F;                   // Reset on, rising edge, 16-bit char bits
        SpiaRegs.SPICTL.all =0x0086;                         // Enable master mode, with phase delay,
                                                 // enable talk, and SPI int disabled.
        SpiaRegs.SPIBRR =0x006;                                        //波特率7.5MHz
    SpiaRegs.SPICCR.all =0x008F;                         // Relinquish SPI from Reset
    SpiaRegs.SPIPRI.bit.FREE = 1;                // Set so breakpoints don't disturb xmission
}

void spi_xmit(Uint16 a)
{
    SpiaRegs.SPITXBUF=a;
}

void spi_fifo_init()
{
// Initialize SPI FIFO registers
    SpiaRegs.SPIFFTX.all=0xE040;
    SpiaRegs.SPIFFRX.all=0x205f;
    SpiaRegs.SPIFFCT.all=0x0;
}
(顺便说一下,f28335的芯片资料上SPI波形的高电平不知道为什么是5v,是不是错了)

wangch_sh 发表于 2014-10-4 16:08

不会吧

mountainest 发表于 2014-10-5 20:13

wangch_sh 发表于 2014-10-4 16:08 static/image/common/back.gif
不会吧

原来做的东西,当时没注意,反正读AD结果是对的。现在拿出来测波形,低电平是2V,再读原来的AD也不对了,不知道哪里出问题了,悲剧的是原来的程序也找不到了

zhangmangui 发表于 2014-10-7 20:06

肯定不是5V你看看硬件上哪儿加入了直流分量没

mountainest 发表于 2014-10-8 16:05

zhangmangui 发表于 2014-10-7 20:06 static/image/common/back.gif
肯定不是5V你看看硬件上哪儿加入了直流分量没

我测的高电平是3.3v没问题,5v是28335SPI手册里的,在最后面,你可以看一下。我的主要是低电平不对,从芯片里直接引出的,什么都没接

zhangmangui 发表于 2014-10-8 22:42

mountainest 发表于 2014-10-8 16:05 static/image/common/back.gif
我测的高电平是3.3v没问题,5v是28335SPI手册里的,在最后面,你可以看一下。我的主要是低电平不对,从芯 ...

这就搞不懂了测试的参考地不知道是否合理

mountainest 发表于 2014-10-10 15:46

zhangmangui 发表于 2014-10-8 22:42 static/image/common/back.gif
这就搞不懂了测试的参考地不知道是否合理

参考DGND应该没问题吧,感觉写DSP的代码老是出一些莫名其妙的问题,新手

zhangmangui 发表于 2014-10-10 21:45

mountainest 发表于 2014-10-10 15:46 static/image/common/back.gif
参考DGND应该没问题吧,感觉写DSP的代码老是出一些莫名其妙的问题,新手

这个确实有感触    刚开始会遇到各种问题
慢慢就好了   加油吧

mountainest 发表于 2014-12-7 21:56

zhangmangui 发表于 2014-10-10 21:45 static/image/common/back.gif
这个确实有感触    刚开始会遇到各种问题
慢慢就好了   加油吧

能不能问一下你can初始化的问题,一直没初始化成功啊。

悦待伊人 发表于 2014-12-23 15:26

TI官方有资料的

sunwen_xaut 发表于 2021-4-24 16:39

哥们,你的问题解决了没有。   我调试CAN也遇到同样的问题了,   低电平进CANRX就被拉高到了2V以上
页: [1]
查看完整版本: F28335 SPI低电平为什么是2V?