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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 11658|回复: 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,2 J' n  [1 o: U# w
input mcasp_ahclkx,
% T% `: V8 m. h# O# S0 {; Iinput mcasp_aclkx,
: w; _9 }& r# A) n  ginput axr0,
) Y$ w/ k3 p- P& Z9 `/ U9 R% P1 f/ L5 {4 @" Y
output mcasp_afsr,  @. m5 ~3 V  V3 g$ S1 i
output mcasp_ahclkr,
$ p3 }' F6 n- r5 ~output mcasp_aclkr,
' q/ _& N+ {, G" routput axr1,
6 w9 E% `* P( p; h8 G
assign mcasp_afsr = mcasp_afsx;
1 x- e8 i6 ~: z% r1 {assign mcasp_aclkr = mcasp_aclkx;
% U5 M2 P2 M3 C" o# v, b1 Q  lassign mcasp_ahclkr = mcasp_ahclkx;7 j" C- N) K$ X' _; [( j, x9 J+ Z! g: k
assign axr1 = axr0;

# Y& B/ e- R" |# R: `8 A2 F7 o( i. D$ C3 }+ l1 _
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。
3 n5 v/ @- \, W/ {$ N
static void McASPI2SConfigure(void)6 Y3 ?2 M; ?' i; \/ `
{
& Q7 m; A: M0 P9 R7 @* ^McASPRxReset(SOC_MCASP_0_CTRL_REGS);
! m/ m9 V1 C/ w: [4 k- e; nMcASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */
9 |7 c& g* [8 I: a7 w8 w4 HMcASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
, }; ?. r4 y" r0 e0 V9 ]7 [% g0 aMcASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */) ]: f0 e# Q- h9 j. m! X" |
McASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,4 ^3 Z) k7 E0 l5 Y0 ]4 h
MCASP_RX_MODE_DMA);( u5 ^& l1 ~; X
McASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
1 ]( b) q2 V! }  N6 hMCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */
8 d4 y! l8 n* K  i+ gMcASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD, 1 q$ `$ f0 j3 u# J
MCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);' d6 E1 r* z0 T3 z" L5 E4 e
McASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD, # @. a! G- Y% r& E/ G
MCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */6 w3 F% Z: J" M$ E& F; @
McASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);; M1 L* N& D, p( B, @  t# k' I
McASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE);
7 X! A7 r' g" D/ |( |McASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,
! I3 [2 O, x, |0x00, 0xFF);
/* configure the clock for transmitter */. x, H& X  J/ f+ H& h
McASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);
0 _+ ]+ n) v1 |2 q1 {5 b! q  q) z0 r2 K" lMcASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE); - h" |* N/ u4 k3 F* q1 \- Y
McASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,
0 C, `6 _: ^' m: n3 U8 w0x00, 0xFF);! A* |2 q/ u2 }6 n3 o# E/ B
4 ~1 E5 X3 X6 {% ?
/* Enable synchronization of RX and TX sections */   O1 v! d( E& ]/ T
McASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */
9 g* P9 u3 _- qMcASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);, G5 r/ D( s; `3 Y4 s2 R
McASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*: f( R5 ?' ]$ I0 v: n
** Set the serializers, Currently only one serializer is set as* m9 W" g4 f9 j7 E- [) z3 M* o  l
** transmitter and one serializer as receiver.
) @1 y$ r$ n8 j* \*/- c5 y/ S" |2 B+ n
McASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);
' F9 q+ j; R% s8 tMcASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*9 u8 P9 d  F% E1 w0 Q( s
** Configure the McASP pins
) H2 g! S) g. v" z/ Q! ?** Input - Frame Sync, Clock and Serializer Rx
9 X+ K5 Q) P) q& }) N** Output - Serializer Tx is connected to the input of the codec 9 i9 S; O* C5 c' r/ N1 T! p) L0 F
*/4 m, j# E2 `% `. |8 Z9 z6 B3 w
McASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);. T8 n# v# ?& p1 e  X2 Z# s
McASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));6 i. v0 j3 R/ y5 d: Q
McASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX! f8 h2 \# N1 }. H
| MCASP_PIN_ACLKX. c/ Y) T( R# s, t  ?" I! K
| MCASP_PIN_AHCLKX3 C) t& {5 F0 E8 y6 b! A4 C
| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */0 H8 @2 x4 G* o  z- O% |
McASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR : I! M7 }; k7 I- R6 O1 j5 L
| MCASP_TX_CLKFAIL 4 z2 t4 B" c# {
| MCASP_TX_SYNCERROR- _- x# s( z% A- l8 ~: X5 B7 _
| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR ; v8 ^' f8 O$ s# X5 H. j9 y& n* W/ O
| MCASP_RX_CLKFAIL
. ^8 O- |  n* h3 N6 K| MCASP_RX_SYNCERROR
$ K8 S0 I6 F- t. u| MCASP_RX_OVERRUN);# n$ m' c. H( j" d; w; F: Q& B
}
static void I2SDataTxRxActivate(void)
% z2 U- k/ b5 e2 ]- F. A' j% k{
, x; u2 ~: B( g, o0 ?& d# U( U/* Start the clocks */
: ]8 K. U0 d8 a! eMcASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);
9 U& w) q- z1 U; tMcASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */7 b9 V, I1 h$ p4 v
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,  X: G' L9 W. G, J- Y" {1 L( X
EDMA3_TRIG_MODE_EVENT);
. A9 x+ j" p( r$ ]- p- P# SEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, # I& R- g- l* w) O; a7 b9 {/ Y. `
EDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */
( m9 q2 g0 m9 c$ tMcASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);
/ ^7 k6 j  e% x; MMcASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */" r; y; {( X3 g6 Q
while(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */' b* o1 c: B2 Y# y3 C7 y1 |
McASPRxEnable(SOC_MCASP_0_CTRL_REGS);
9 O5 z* H% T3 `: Z9 o0 r- ZMcASPTxEnable(SOC_MCASP_0_CTRL_REGS);6 l' V7 N4 W* Y* z4 \
}

$ I- R. f; m. i8 F8 \( d. D
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.

2 T* n6 Z8 u. C' K& e3 Y
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-11 02:25 , Processed in 0.039564 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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