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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 11682|回复: 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,
4 m8 y: M( ~, H. O. }8 Qinput mcasp_ahclkx,2 |4 q/ o: p4 u9 g% L- J1 r! ]3 I
input mcasp_aclkx,
% o7 r* @# a6 k% h6 Jinput axr0,
' X5 n) h9 ]' w, ]! P- i5 ?6 K3 D. R' V7 ~! K/ M- K
output mcasp_afsr,
! p5 Z( E. v9 D4 k& e) H* Y9 G9 Houtput mcasp_ahclkr,1 Z9 H& X, K+ x- A8 [* ?5 ]' ^
output mcasp_aclkr,
6 `- C  m+ n& j7 C3 V2 Z3 Aoutput axr1,; \% F( S2 u" e9 s
assign mcasp_afsr = mcasp_afsx;
4 r! s* |. {1 [! V- O/ p& M, zassign mcasp_aclkr = mcasp_aclkx;+ o. v6 |) _5 L' J, c, G5 S; K( u
assign mcasp_ahclkr = mcasp_ahclkx;
0 J( X& b; @6 g2 Z- Z& Wassign axr1 = axr0;

% y% h# q# U7 [% g& ?3 L/ w# @# z. v
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。
8 I: C2 e( j# j# T6 I4 @
static void McASPI2SConfigure(void). |0 {0 e( J, x) C0 V% y" o' v
{: U7 q, A/ D4 C+ x# r) x3 g
McASPRxReset(SOC_MCASP_0_CTRL_REGS);* u9 y/ |$ \( K$ Q1 Z1 }
McASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */9 w% ?( T1 [8 S1 N
McASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
$ p) e2 x5 h" a7 x2 m3 [+ GMcASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */0 c0 D/ D& g% o) Y+ b+ ~: }
McASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,3 O8 U$ `; A4 D( K, @1 @& R
MCASP_RX_MODE_DMA);
: q/ A9 G6 q4 f# }5 Q& eMcASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
( X7 h) s: f9 M+ Y# aMCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */
- {6 ?0 A4 i" _* UMcASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD,
/ Z" y0 ~& f% }* a  {1 `" o3 b! zMCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);
7 ~9 T8 I: Z( Y2 ^) gMcASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD, # F# `( |1 G2 |2 w2 Z2 ?
MCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */, x1 z& ^! c& O  V6 y3 l
McASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);
8 q! H# v! v  r7 W+ HMcASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE);
0 a0 {$ Y$ @1 kMcASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,
1 l' U9 j. S- @% `5 |0x00, 0xFF);
/* configure the clock for transmitter */5 l: x& Y- v6 J7 ^% T0 z9 |
McASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);1 p- ~2 N6 V4 z; m1 ?6 j
McASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE);
* f6 O. ]: Y0 Q" u4 eMcASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,3 j! k1 W1 Y% v: z7 c2 Z! Q. V. @
0x00, 0xFF);6 H9 D# V: \1 M; n* w, X
, d& x/ o. E8 }- ~1 n) O# X& I' y
/* Enable synchronization of RX and TX sections */ / Y* X% J; P1 |  E
McASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */
; z: |9 n) m+ o& K+ cMcASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);1 s6 q; ?0 ^- G7 }# r' z% @
McASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*
6 G/ Q3 e: a1 E$ R! d** Set the serializers, Currently only one serializer is set as9 l, i" |2 c- m( w6 e
** transmitter and one serializer as receiver.
/ a+ ?9 b4 W8 m* C% o7 A% I8 r*/
9 f* N7 |' t! T# `, nMcASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);
1 [7 T, G/ S( U& {8 }McASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*
2 Z% v0 r1 l/ Y% N, N2 _# A** Configure the McASP pins
/ R& W& ~! x0 ~8 g: K4 U" F, u** Input - Frame Sync, Clock and Serializer Rx* z# R8 i; o- A5 t: v& W8 J% L/ U2 k
** Output - Serializer Tx is connected to the input of the codec   w) ~8 i& B% E) u7 X/ Y7 G
*/% B) k6 H9 B) w7 J
McASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);
, V/ e4 i6 d8 L; [McASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));
$ J7 G2 i$ P8 E' e+ f  R& i# wMcASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX
# P3 a) k. H) X) c4 e| MCASP_PIN_ACLKX
3 ]. f0 R0 X& H5 Z| MCASP_PIN_AHCLKX
& [" z* c; J; r" Q5 s| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */
( P; h" u* l( z4 b; X' aMcASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR ' a& _% h9 Q" P% G
| MCASP_TX_CLKFAIL ! H) n' B. z$ `6 C
| MCASP_TX_SYNCERROR0 X+ M: u+ K0 E4 H4 L/ E2 Y
| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR
+ _! s8 ~" T5 W% e4 z* \| MCASP_RX_CLKFAIL
1 m5 Y. D! |- x; N| MCASP_RX_SYNCERROR
  u% }+ c, T: [: f- p( r) D' f| MCASP_RX_OVERRUN);
- f4 a" I  r0 R4 p3 Z$ d. f}
static void I2SDataTxRxActivate(void)
. B7 _8 {; z- t# h  P0 u5 q5 B, D{
6 E$ {& t2 w! `. {. H  V/* Start the clocks */  Q0 h; V* r9 |3 j( ?8 l9 n8 l4 c
McASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);/ Y" P1 E5 x; q3 q- _( Q* f! x
McASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */
1 M8 S: J* Z6 cEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,6 O2 \" m; M: [7 w5 X" s. O
EDMA3_TRIG_MODE_EVENT);
/ \2 a9 D  m' x: j9 L4 ?" L; eEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, 0 S; v2 Y' y( L7 s# H1 ~
EDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */6 c  x1 Z* A* X4 X
McASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);
, s; b! o% W2 K7 OMcASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */
6 l& W. \0 i# b$ H/ X8 ywhile(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */9 g; T+ I. ^* ]" c0 [  z; E
McASPRxEnable(SOC_MCASP_0_CTRL_REGS);: X1 F6 f. o' F5 G0 u
McASPTxEnable(SOC_MCASP_0_CTRL_REGS);
# k5 q2 O& @0 s}
  K2 C% D( t/ t+ C; X
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.
. t0 E+ P+ t, v4 C
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-11 15:50 , Processed in 0.040446 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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