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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] MCASP自环配置。

[复制链接]

6

主题

12

帖子

1214

积分

金牌会员

Rank: 6Rank: 6

积分
1214
跳转到指定楼层
楼主
发表于 2018-11-7 13:28:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我项目上用OMAPL138的板子MCASP的引脚都是链接的FPGA,所以在FPGA这端设置的MCASP自环。把axr0接收到的通过axr1发回去。
部分代码如下
input mcasp_afsx,- [* S9 V" X- U& y
input mcasp_ahclkx," _3 F( N$ d' u* q% `7 U
input mcasp_aclkx,
( R" w) p2 {" z( K* ~input axr0,
9 S' C9 g: n+ b, r! r8 h. \2 a, E8 P
! c) z( i' O7 u: \' V! n9 l: M# ^& Ioutput mcasp_afsr,
0 O6 [# n4 U5 M$ o7 l/ ]8 aoutput mcasp_ahclkr,
0 d8 _- @/ L& e# Q" Qoutput mcasp_aclkr,7 I0 @+ ~0 E; U" J
output axr1,
4 F/ _+ E' ~- t' r$ J0 P* D! |
assign mcasp_afsr = mcasp_afsx;" I9 m; W3 o# O9 j1 U5 f5 q6 j
assign mcasp_aclkr = mcasp_aclkx;# s: n/ F7 b% i* {
assign mcasp_ahclkr = mcasp_ahclkx;, F* L7 f' A( \! w
assign axr1 = axr0;
5 q) T* B* A9 \' {# q( ?1 T
- _! N. @5 S3 X: _1 ]$ b+ J
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。

6 p; q! B6 A( r
static void McASPI2SConfigure(void); G! k/ I( M+ a6 {; r
{
9 ?# ~  U/ l; {7 zMcASPRxReset(SOC_MCASP_0_CTRL_REGS);
7 [, U+ _) N& F2 `- S# l; o! QMcASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */
& A- j0 y) P3 y8 U. u! v' Q' rMcASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
8 C* M, J2 t! u, d  {1 \McASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */
) q4 ]( [  y/ d- zMcASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,6 U0 i& N; c7 ~) V" _8 X3 d
MCASP_RX_MODE_DMA);' u2 u- w6 D) e0 H
McASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE," y9 n- S/ D( s* |* t' Y
MCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */
$ r! u' A) D  v% H% a, |* p- v. eMcASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD,
% T: C, J  `6 F9 D' ZMCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);
8 b. B7 A9 `+ d6 C% HMcASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD, " o( ?) b7 c; r; x: M/ Y) n: Z) Q
MCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */% p5 d$ U/ W- o: k5 d  f" t
McASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);
( V+ m+ |9 q' r0 BMcASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE); % g* ^& w5 e* x. H4 I% A" y; c& P
McASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,- P) t* ~; U: _. V" ~( I+ Q
0x00, 0xFF);
/* configure the clock for transmitter */
. i2 E1 |- j) e- \0 B/ ]' ?McASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);8 K0 z$ q7 R3 l4 }
McASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE); % K. T2 G7 T+ i* X
McASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32," @( Y. }- X) c( z
0x00, 0xFF);  R, c! C) p. q5 I$ S
5 N9 n; s! u7 i9 ^) V0 ?6 k
/* Enable synchronization of RX and TX sections */ ) x/ j# _: Y+ z! T: R8 |2 ]* l/ v
McASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */
9 k0 }$ z7 Q* l8 l4 UMcASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
: d2 e; O5 ?# G0 {McASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/** c7 [0 ?+ f) S9 |- u& J
** Set the serializers, Currently only one serializer is set as& b% K( I/ o$ p: s
** transmitter and one serializer as receiver.
; i/ L* w5 i) E4 Z4 p6 a4 J*/
9 Q5 r1 O$ m5 ^! z: G9 Y9 ~* T- X8 [McASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);
# O+ u, O. V3 x9 e, D. UMcASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/** v8 x, @7 L3 o& W7 `7 [; N1 j$ ]
** Configure the McASP pins
0 U4 `7 m6 v# L. Z** Input - Frame Sync, Clock and Serializer Rx
( ^" w) `; C% M" P6 O7 Q** Output - Serializer Tx is connected to the input of the codec
0 v+ c) U! v7 D*/( d: u+ k# s0 c0 w
McASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);
1 ?0 i" F, a; S+ B" Y5 YMcASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));
" t; |4 d: j  K8 |/ s* R0 K1 R  TMcASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX: J1 p: |; g5 o$ D9 H9 s& d5 O
| MCASP_PIN_ACLKX9 _) m& A9 e7 |+ y1 Q# t
| MCASP_PIN_AHCLKX
1 |) @4 O6 N7 S2 a! O' n| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */
" E, c5 e' E' m6 G) a" pMcASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR
! H. [6 t  i5 O| MCASP_TX_CLKFAIL
* K& I+ `4 `& p( j+ M; `6 p7 m( r& ~& W' ]| MCASP_TX_SYNCERROR
7 S: \3 |5 \$ u$ W# J| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR
+ ]6 L2 t3 k5 Z- l| MCASP_RX_CLKFAIL7 }, e8 R% `' Y" |  b- ]
| MCASP_RX_SYNCERROR
9 i! v8 \- b4 q- v| MCASP_RX_OVERRUN);7 o. G- N/ Q7 t, |7 `
}
static void I2SDataTxRxActivate(void)
+ B( P: s" M# L. [, k{
, p: z2 U, N5 w- \/* Start the clocks */
- x2 v  T  Q  o! i7 G$ @McASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);
$ H+ l. L' N! i: RMcASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */
) }2 O/ i. T9 `& |* S  L! z. VEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,
8 A  z+ l" d% J% p. J. x# {EDMA3_TRIG_MODE_EVENT);( ~! K. H3 z& H1 l: G: f/ K4 X
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS,
" {/ x1 |, S% J8 N+ UEDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */
0 ]8 \- O" i3 M! k$ L$ DMcASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);
: c3 {/ |1 ~2 K+ ~McASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */- {0 {: p- i# E6 @* x1 @0 e
while(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */
) B. T  T+ u' Y5 w9 I6 x$ VMcASPRxEnable(SOC_MCASP_0_CTRL_REGS);
' Y2 S8 F6 F1 i# g0 NMcASPTxEnable(SOC_MCASP_0_CTRL_REGS);% E3 \% ?6 ?5 A3 L  x3 [
}

! o- B* X: j( Y  {- _
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.
3 @$ a0 q) K( P. b) Q
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-29 18:44 , Processed in 0.040169 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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