MCASP自环配置。 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] MCASP自环配置。

[复制链接]

6

主题

12

帖子

1212

积分

金牌会员

Rank: 6Rank: 6

积分
1212
跳转到指定楼层
楼主
发表于 2018-11-7 13:28:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我项目上用OMAPL138的板子MCASP的引脚都是链接的FPGA,所以在FPGA这端设置的MCASP自环。把axr0接收到的通过axr1发回去。
部分代码如下
input mcasp_afsx,
, h$ Z2 i6 z1 vinput mcasp_ahclkx,+ n5 l( `, p/ c- N4 G
input mcasp_aclkx,
$ r7 c6 Q% o8 j$ I/ O3 w: @input axr0," y0 Z: [: }5 c3 J& d7 S
$ q; ~4 R  `9 _6 z" ~
output mcasp_afsr,8 S4 k; p: r4 @0 Z" }) U
output mcasp_ahclkr,$ Z  _( W, h4 w6 J' B  o
output mcasp_aclkr,% t. F1 ]: N6 R: V" k: I1 V' J
output axr1,
! x1 ?* t/ L: |4 P& W/ K7 U5 e. y% V
assign mcasp_afsr = mcasp_afsx;
: j/ _4 L; R3 }$ nassign mcasp_aclkr = mcasp_aclkx;
9 i$ M6 M8 ?" p5 d% O4 rassign mcasp_ahclkr = mcasp_ahclkx;
! W  B9 d8 R' S6 _* U, w: N" Gassign axr1 = axr0;
8 R" R$ }& A9 F6 }
# |$ M1 m1 d1 o/ o# y. Q
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。
- H: h! b& B& P1 q. W' M
static void McASPI2SConfigure(void)
* Y) k9 b: l. a2 v4 E6 [{
) ]0 ]" X. m! ~: H% L) Q" UMcASPRxReset(SOC_MCASP_0_CTRL_REGS);, z5 Q: j, T0 p; o6 G9 X5 T
McASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */  D% o* c* |: ]1 }& A
McASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);7 f  v+ q/ n& P3 [% y- S- a8 e
McASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */9 ~9 R2 s% k% {$ o; j  D2 n, ^3 e" A
McASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,' Q5 h8 D, J5 Z; o3 y; `; L' n
MCASP_RX_MODE_DMA);: ^, a: M* t/ ~  u" W; z
McASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
3 _: V; z4 Y  V6 Y6 P* z- h$ KMCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */
; \; X8 A6 t: O# `& U9 PMcASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD,   X3 b4 Y( s* j
MCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);4 o, `5 v/ e" k" v/ M
McASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD,
! h/ X, @. D% D. d$ h& mMCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */
  Q0 G* ]" F5 ~& {6 KMcASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);
( G4 ^* O9 [" q* \! SMcASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE);
) \5 @! N" k; g8 r% B" [1 HMcASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,
: Y, J, F, d3 d8 {, o0x00, 0xFF);
/* configure the clock for transmitter */
$ [: C, v: I8 e$ E) PMcASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);
- _+ k- D* _6 w# X* Z, WMcASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE);
6 e) X# d5 F, J, C6 ]1 j  ?; vMcASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,! K: G' B) A6 b( n2 W; a) l. S
0x00, 0xFF);
& C8 E: n5 W. F9 s9 U  h# G
: }3 ~  F" `$ t4 H9 ]- A1 X/* Enable synchronization of RX and TX sections */
! [7 P) p! n" a; eMcASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */) a0 p% z6 {* d8 I7 O2 |/ y& t0 j2 ~) e
McASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);% {2 S! Z- {7 I0 n' W
McASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*# F* R/ ]7 q% k) @* k% T
** Set the serializers, Currently only one serializer is set as
* F8 [& |$ x! P, @% n% l** transmitter and one serializer as receiver.
" J; a6 T' S* b4 P1 a+ H*/1 M  Z0 p7 B$ c9 J( w% E- I7 `2 A
McASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);1 O9 v8 I& ^, Y$ X9 t3 e) e
McASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*( j1 z- M' T3 P1 _$ G
** Configure the McASP pins 5 N0 @- A& m) q0 }9 ^$ y6 Z
** Input - Frame Sync, Clock and Serializer Rx
/ R9 A0 {* E  K; T2 b5 m+ G( t** Output - Serializer Tx is connected to the input of the codec   B0 ~: K& k  b
*/
- [3 s# |4 c5 K1 r& N$ f4 ]0 rMcASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);) X, R& w: `$ X1 Q" O$ @# {
McASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));
0 C( d4 N3 C! u6 M/ ^3 eMcASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX
- r. j, k, q; y1 f. \| MCASP_PIN_ACLKX3 v# ^- T" D1 @2 l
| MCASP_PIN_AHCLKX
4 _  |) i6 d0 }+ @4 X: V| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */9 s' E/ _7 @% D+ [( i
McASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR
, O, U  n, s2 A+ |# L3 E4 g| MCASP_TX_CLKFAIL 4 r: N# @2 K9 F1 R4 u* K$ K, m
| MCASP_TX_SYNCERROR
2 T, u9 M2 Q7 Y* A- o( L! {4 H| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR
/ x* m& h# _7 \+ g! J5 h| MCASP_RX_CLKFAIL
9 ~/ g6 a# ~& G; y% j| MCASP_RX_SYNCERROR 5 ^  t$ S8 e6 u9 s# ^
| MCASP_RX_OVERRUN);/ X' B6 q* H- r2 ^
}
static void I2SDataTxRxActivate(void); v  q3 P1 t5 @$ K) L; ^/ E
{
! L( J, B: U! z# K% j$ y+ d/* Start the clocks */) \! J' x5 x- d4 e3 F
McASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);
. W& b9 g$ Y) \McASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */9 s: T' a& l/ C5 P$ Y1 W
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,) F. Z4 h: l- ^) x* L. |
EDMA3_TRIG_MODE_EVENT);
0 y7 G2 ^& b' zEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, / {1 P( e2 N3 k" L7 D
EDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */
8 c8 Z. R. z* k% y& zMcASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);
8 D! B6 M: s* C0 P0 D/ V: HMcASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */1 L( D( W6 S; C) i+ k0 S
while(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */
$ @7 v& t$ L. @/ w; A7 oMcASPRxEnable(SOC_MCASP_0_CTRL_REGS);
0 i3 a1 K9 B6 b) N) ?% m- KMcASPTxEnable(SOC_MCASP_0_CTRL_REGS);
% \- C) K) |1 S  g  m, b- K  t}
/ G0 R! w: a5 `, ^: y
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.

+ j# S0 ^" O  _6 ^4 q. P3 J  u5 d
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-7 16:51 , Processed in 0.040433 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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