找回密码
 注册
关于网站域名变更的通知
查看: 676|回复: 4
打印 上一主题 下一主题

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

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2021-6-4 13:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
如题,我用示波器测量SPI的波形,高电平是3.3v没问题,为什么低电平是2v?下面是我的程序' I3 Z! Y, l" x' ^" j% m! w( a
  B7 K# W5 {4 S. E
#include "DSP2833x_Device.h"     // DSP2833x HeadeRFile Include File
# V/ u4 _. x2 l8 ^, o#include "DSP2833x_Examples.h"   // DSP2833x Examples Include File6 g8 `1 a( H- D

# a: H3 ?4 }, T& o2 A4 z//#define          LedReg        (*((volatile  Uint16 *)0x41FF))) Q* D, K  Z5 \2 s. p
//Uint16    *ExRamStart = (Uint16 *)0x100000;  Z4 {2 K5 l4 L+ T4 w

6 y" _% I0 F9 h1 X5 S6 Lvoid spi_xmit(Uint16 a);9 k6 O  ~+ T' t1 [5 \" Z  F& \8 t
void spi_fifo_init(void);; C$ h- ]- K8 k, F2 p% Q5 o. T
void spi_init(void);2 @3 ~0 K  Y" {

5 w5 ^6 a) G: R( N; `! D( D; p3 Dvoid main(void)0 B0 P. C0 ]  L3 u* N9 b* j: n
{
- X8 C* w, n. V) m! y. S3 {7 r   Uint16 sdata;  // send data
& B( {! ^* I! n- r9 Q8 d( p   Uint16 rdata;  // received data
8 o! I! y0 X! P6 f1 D; h+ p& z. _' D  q. ]2 F5 k+ g
   InitSysCtrl();
5 v0 ~+ ?8 Q8 x( n- ?6 [: R( j4 w% y  ^( x+ R. z9 e4 \! }
3 F. z% r5 a1 f2 [. u
   InitXintf16Gpio();        //zq# i. X3 {' a  T% ?) b

6 b. p4 Z! Q5 H3 p' w; `# o   InitSpiaGpio();
; T$ G" r+ Q  A( ], {# ^! w" I$ ]/ Z2 ~0 V- u: T) g1 O2 |8 G6 }
   DINT;
( F; y2 T* M3 l' X9 A0 K3 ]& m& k! \1 J9 s
   InitPieCtrl();8 P+ e( c/ k. E
. v: D: Y  J' s) c# U8 p
// Disable CPU interrupts and clear all CPU interrupt flags:5 y. o: b2 V( T* J
   IER = 0x0000;
$ j6 L2 g  t* ]1 b+ R; L9 K5 n4 Q$ K9 v   IFR = 0x0000;' R' K! g! S% `2 O+ @
   ' k% |6 D* s. @8 ^; o
   InitPieVectTable();
4 a1 N; ~6 S; m2 W
$ h  W2 H; c- k6 X$ F1 }2 z   spi_fifo_init();          // Initialize the Spi FIFO& ]( C1 J$ X9 c1 y
   spi_init();                  // init SPI, z0 g# w* a$ o$ w# j, W9 C
7 L  w; [% W  a* C
   sdata = 0xAAAA;
1 J* ~+ B8 K6 M! M) n& W4 ]   for(;;)/ ^7 R* _  C8 e/ [/ X5 Z
   {   % y; W5 A$ _& E5 h
     // Transmit data4 a& l3 o5 Y0 j& [5 c" h
        spi_xmit(sdata);
' j, t1 n* u* t) g" g+ o     // Wait until data is received9 f$ w3 ~4 X6 H4 h! ~4 d
     while(SpiaRegs.SPIFFRX.bit.RXFFST !=1) { }                        7 I7 n0 I/ ~, G" T3 k1 [
     // Check against sent data
3 s4 {3 i, ]6 D* c! ^     rdata = SpiaRegs.SPIRXBUF;. r4 [+ x8 c. W1 U% _: \. p: f
     - D* g5 K) t) B% L7 r
     //sdata++;
7 y- ]/ Z: I. K
1 `, g7 G. D0 o5 g& r3 m. E! J   }$ B6 [6 h& u' l2 y- ?$ m& T
}        
. T* V0 d! m: R7 o; r; [void spi_init()
/ Z7 n2 a) y! N& K5 v. V. v{
, X* T2 k6 }0 N# s        SpiaRegs.SPICCR.all =0x000F;                     // Reset on, rising edge, 16-bit char bits* G$ ^+ R; h8 L. Y3 E
        SpiaRegs.SPICTL.all =0x0086;                         // Enable master mode, with phase delay,6 s, L" N1 D0 Y& I% d* B$ f
                                                 // enable talk, and SPI int disabled.
+ w; |0 p# \/ }- `) K+ d+ V! A        SpiaRegs.SPIBRR =0x006;                                        //波特率7.5MHz: `6 |8 t- D1 I; t
    SpiaRegs.SPICCR.all =0x008F;                         // Relinquish SPI from Reset
  T; k7 Z) \  V    SpiaRegs.SPIPRI.bit.FREE = 1;                // Set so breakpoints don't disturb xmission; k: {5 f. Y' P! K
}4 K# d4 x' L' V" k3 U' T

! C6 h* ~8 L* ]. Cvoid spi_xmit(Uint16 a)5 M+ C! i& C4 |$ G. u& a  ]
{
. k. K" A, T" g+ b0 L    SpiaRegs.SPITXBUF=a;
- Y6 ?1 ^& k( D$ F}
0 v% i0 M: o( K- I# Z; S1 E* P# ~2 z2 b
void spi_fifo_init()
6 J. M; R1 l) @2 o' T{4 ]1 K% U0 o# N/ R) o7 s
// Initialize SPI FIFO registers8 P% V% m% g  f
    SpiaRegs.SPIFFTX.all=0xE040;/ C9 g- K; ^7 m
    SpiaRegs.SPIFFRX.all=0x205f;
) K) E1 T* e% _4 P' T    SpiaRegs.SPIFFCT.all=0x0;
! f. N1 J' L2 a/ L4 H1 d0 u}- [9 a. Y' [' r- f7 I
(顺便说一下,f28335的芯片资料上SPI波形的高电平不知道为什么是5v,是不是错了)
- n& e0 C  Z) c: j. c  z
  • TA的每日心情
    开心
    2022-12-27 15:46
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    3#
    发表于 2021-6-4 16:36 | 只看该作者
    肯定不是5V  你看看硬件上哪儿加入了直流分量没

    点评

    我测的高电平是3.3v没问题,5v是28335SPI手册里的,在最后面,你可以看一下。我的主要是低电平不对,从芯片里直接引出的,什么都没接  详情 回复 发表于 2021-6-4 16:39

    该用户从未签到

    4#
     楼主| 发表于 2021-6-4 16:37 | 只看该作者
    nevadaooo 发表于 2021-6-4 15:26
    # S0 S8 K8 k+ e& o# X- f- |不会吧

    9 t0 j6 z! Y& z0 \1 M- _0 D原来做的东西,当时没注意,反正读AD结果是对的。现在拿出来测波形,低电平是2V,再读原来的AD也不对了,不知道哪里出问题了,悲剧的是原来的程序也找不到了
    / U+ _. v; ~; |2 T; F# j: E8 y  R

    该用户从未签到

    5#
     楼主| 发表于 2021-6-4 16:39 | 只看该作者
    qq666888qqw 发表于 2021-6-4 16:36, A! \( e8 A5 L& V0 n2 O
    肯定不是5V  你看看硬件上哪儿加入了直流分量没
    ( u1 ?; [8 S2 b' D; }5 O) ?- z6 s2 a
    我测的高电平是3.3v没问题,5v是28335SPI手册里的,在最后面,你可以看一下。我的主要是低电平不对,从芯片里直接引出的,什么都没接6 m& N  U, H) }* j7 {5 j6 O  C5 R
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-11-24 07:15 , Processed in 0.156250 second(s), 28 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

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