MCASP自环配置。 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站
点击跳转“创龙科技服务通”

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 11618|回复: 0
打印 上一主题 下一主题

[未解决] MCASP自环配置。

[复制链接]

6

主题

12

帖子

1215

积分

金牌会员

Rank: 6Rank: 6

积分
1215
跳转到指定楼层
楼主
发表于 2018-11-7 13:28:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我项目上用OMAPL138的板子MCASP的引脚都是链接的FPGA,所以在FPGA这端设置的MCASP自环。把axr0接收到的通过axr1发回去。
部分代码如下
input mcasp_afsx,
7 X3 ~; l0 C3 l1 ]" Iinput mcasp_ahclkx,  j6 J( p* p5 Q. G# C% Q
input mcasp_aclkx,+ p7 k  V* R; U+ \! `! _
input axr0,7 m. H* I2 f, L/ z* W: Z& a

" d  {8 J' o, Q6 U) M! D, z$ noutput mcasp_afsr,
+ o! d% r  i# u8 poutput mcasp_ahclkr,
0 F. d3 t6 M) Youtput mcasp_aclkr,- n4 o* O, {4 z
output axr1,
, G: Z1 y7 b7 X/ |9 R& B- j) K: r
assign mcasp_afsr = mcasp_afsx;6 ^/ _+ V8 B9 l3 c; t7 |
assign mcasp_aclkr = mcasp_aclkx;! @# {  C3 I; C8 S# \, v
assign mcasp_ahclkr = mcasp_ahclkx;
' M% `" L. G% i- T' Hassign axr1 = axr0;

9 |2 ~, Y$ o9 @$ x) K( s
/ n; T0 @9 u1 p+ [4 R/ N  ?
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。

/ x+ I0 q+ k8 T$ [0 r8 J
static void McASPI2SConfigure(void)
$ n: `. \, U& V+ J{% H. S& l; `( T3 s3 }7 Y) ?3 x/ K
McASPRxReset(SOC_MCASP_0_CTRL_REGS);
3 d5 D1 D0 M& r+ F) JMcASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */
* n; U8 X5 v" Y" r/ JMcASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
0 |% x5 r) T# @; q% n+ x1 RMcASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */5 q& n6 y+ t3 \0 T
McASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,1 E8 t. Z; {1 K5 }! N7 @" I
MCASP_RX_MODE_DMA);1 r  Q+ G; o+ T4 q: P
McASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,  R- g& _+ R+ e# B7 a' a
MCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */- k( H) A# w1 D& m" \  ^4 T
McASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD,
  i3 B$ A% `/ _" l$ K1 jMCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);
& S/ I0 U4 y4 H& C' k% ~: qMcASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD, # j8 H; H! [& W: B
MCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */) \4 v& B9 W' f2 G& q8 ]: Z8 j
McASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);/ |: m! k. E, u; u: B
McASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE);
: r+ Q6 [% p" n& y6 }: l5 ZMcASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,6 ?5 h4 L+ Z" ~1 m* N) n
0x00, 0xFF);
/* configure the clock for transmitter */2 H  c; P9 Y4 D5 t9 j- W- F
McASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);. \) R* o/ d0 B$ W# M5 s
McASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE); 4 t9 R2 j5 L7 j8 s- q* j) [
McASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,
3 [" N' J9 Z' a% y: L. j5 g0x00, 0xFF);
6 ]" ^# T- ~: P% f/ ?# ]- }/ T) c0 J3 @
/* Enable synchronization of RX and TX sections */
0 o/ X0 T' G: W/ tMcASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */
3 w6 r/ i" f" ?3 WMcASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);. f# z' }, D* M
McASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*
) i# N! a9 S2 |( S5 ^% T# H** Set the serializers, Currently only one serializer is set as3 M2 x% Z* _* R
** transmitter and one serializer as receiver.
9 C3 N( Z4 ]5 D) l' y+ b, ]*/
3 y4 {  A, i# g2 K8 I" q( XMcASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);
3 h/ V8 S+ v2 n* t) X  _McASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*
/ T. Z+ s/ Y2 b** Configure the McASP pins
! [* q* T6 a0 d+ @# t, s** Input - Frame Sync, Clock and Serializer Rx
/ z0 Q  w( y0 a. r. b& @9 A- T; S) i" k8 ?** Output - Serializer Tx is connected to the input of the codec
0 `  K( |. w( W7 U*/% V+ a' |, x: |2 k& {/ Y# o/ o
McASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);% @( w2 x& C7 g1 \# }! \
McASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));
! c" F  a8 u" n9 x  \: {8 AMcASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX
, x5 d1 |& J0 u9 B# N+ T9 t( O0 @| MCASP_PIN_ACLKX
* A5 F2 N+ U) [4 _/ q* c: d2 f: W2 B8 \| MCASP_PIN_AHCLKX
9 a& v- W7 D' w| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */
* q3 s8 c3 R- ^McASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR * B+ X4 _. ^; ^; ?; y7 Q
| MCASP_TX_CLKFAIL 9 Y6 y! z! ]# h/ K7 ?4 a! ?3 n
| MCASP_TX_SYNCERROR
( Z- D) s6 C8 I+ h0 V+ e) x| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR
+ p4 q. h0 f: Q' ~! Q. U| MCASP_RX_CLKFAIL
) Q) a8 V; f# A, H| MCASP_RX_SYNCERROR , I0 X6 x8 }; W& H- x& A
| MCASP_RX_OVERRUN);9 i; z9 s& L) ~( ?! y2 c4 G& P) b
}
static void I2SDataTxRxActivate(void)
6 h0 v, \; Z- o2 ^3 Z{
' }* H5 j4 g- \' X1 J! Y0 h7 @3 V9 A5 f/* Start the clocks */
6 a; x- `% j/ b, i! @2 r4 r9 }0 m; zMcASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);- v1 J* @+ T+ w. J& [0 u. r: ?( J
McASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */( N& W1 @6 f8 y
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,
2 L3 K; D0 M3 x: B6 m- F+ Z8 nEDMA3_TRIG_MODE_EVENT);
6 h6 j- {7 ^$ u7 e3 s! mEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS,
9 D" F/ t; F* D7 X. V7 HEDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */
6 F6 p3 q9 O, J+ V5 gMcASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);
4 d! u7 L- e" ]/ A5 P1 T4 yMcASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */! e' p# B* I& s. p
while(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */5 Z2 V/ X6 t; u
McASPRxEnable(SOC_MCASP_0_CTRL_REGS);8 x1 w" L$ X& H7 I+ n) e
McASPTxEnable(SOC_MCASP_0_CTRL_REGS);) ~! _$ j4 r# G5 M" y
}
# M, y, n4 H# C1 Y: l9 @7 t: Y6 Q7 x6 |( b
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.
5 {: G' n/ l% C
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

点击跳转“创龙科技服务通”

QQ|手机版|小黑屋|嵌入式开发者社区 ( 粤ICP备15055271号

GMT+8, 2026-3-10 05:15 , Processed in 0.039277 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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