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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 10159|回复: 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,
+ J& Z4 X$ _% w$ W5 X: hinput mcasp_ahclkx,
0 h- l2 v/ A7 d& Y* ?8 @/ z1 einput mcasp_aclkx,
) ]8 O' B6 F0 X/ ginput axr0,! {# w. I/ p) M- l" |& p
7 V% S/ L* }7 L6 _# @, X( b
output mcasp_afsr,
3 @: X: @9 J0 A$ |& Soutput mcasp_ahclkr,, }( y+ v; h0 K' q, h+ k
output mcasp_aclkr,
) @& L5 Q3 t  {' K* ?5 M7 ioutput axr1,) G6 ]2 c% W1 {
assign mcasp_afsr = mcasp_afsx;
3 q7 x. P9 l. C8 Y! V# M* Fassign mcasp_aclkr = mcasp_aclkx;# B2 N4 L, t' Z5 I4 d! i
assign mcasp_ahclkr = mcasp_ahclkx;. a, w7 C9 M# M
assign axr1 = axr0;

9 ]* O  L5 ~) W
/ ~% K! C6 _# U# v& r
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。

5 Q& g. A) K( b( t- F$ `, ?9 q! I
static void McASPI2SConfigure(void)# j' S" Z. @4 ^$ y4 ]+ ]* r" g
{
, I+ f/ `9 \8 y' w5 |McASPRxReset(SOC_MCASP_0_CTRL_REGS);
- b( W3 X1 s: \% T. nMcASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */
9 Z7 \* J. K; [2 p& C6 E6 UMcASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);" L! ]  S# Q7 d0 C' n! E
McASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */; m/ u! e/ Q: s/ V: T2 c( h8 h( r
McASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
& z5 p4 w4 s+ f* Y$ e" ~MCASP_RX_MODE_DMA);
7 k9 J. r$ ~% ]! l" fMcASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
$ o0 Q5 Z7 a" t2 `$ }' X( G. Y7 bMCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */3 r! t% Q0 Y: E
McASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD,
2 R* H9 _- {2 E! DMCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);
* Z* c8 d( K1 X8 R* H9 E4 zMcASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD, " {7 i* s/ z7 g( |
MCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */2 y+ g$ L/ }; B
McASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);
$ \. {. S/ q9 r& s( i" xMcASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE); 1 p& U! q. ]3 T/ R$ g' k
McASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,
: K; `8 y7 v* E9 J0x00, 0xFF);
/* configure the clock for transmitter */& R7 w9 ]: Z- c3 ^8 a) [1 }; I
McASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);# J( w) H% J! j. E, n' U
McASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE);
& Z3 r' p$ _" e8 l- a, xMcASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,
' ?, r+ U$ E4 B* }+ W  j: W0 y0x00, 0xFF);
- K, c' H; e  e7 y
& J6 O0 {0 t  v7 |  }/* Enable synchronization of RX and TX sections */
" l. K: H7 P1 {! a( C: F. ?. kMcASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */* t5 t+ r+ L3 ?$ [& G( ~1 e
McASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
( n' N( i& J/ S8 hMcASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*3 F' B: T4 \# t8 s, D! V
** Set the serializers, Currently only one serializer is set as
6 Z8 `9 n3 G, O6 X0 j** transmitter and one serializer as receiver.$ T* J- c) Q9 x
*/
2 P' a4 Z0 ]# A+ IMcASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);3 D4 z1 ~. p, m/ A/ F9 @( L! A2 `
McASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*
; \' s7 S/ J- r1 @8 @& Z) p** Configure the McASP pins . d6 ~) O3 K% T  Y" M
** Input - Frame Sync, Clock and Serializer Rx
' S2 J8 q* D* A( ]8 w* y* ~** Output - Serializer Tx is connected to the input of the codec
) K# d! P& V( J/ U*/" a) n. v" V# _$ c& R9 T
McASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);
# O4 p6 @8 V5 i5 @, B: d( zMcASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));
; J; i; j- j- ~; g& G! I6 ^McASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX8 {9 D" F7 [& m; O
| MCASP_PIN_ACLKX
6 ~6 g) t) X3 p; J$ c| MCASP_PIN_AHCLKX
+ S; ^, X6 d4 u* _7 S" z| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */
7 m/ e8 Z/ `/ u% M! YMcASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR 7 _3 j5 [3 k1 Z8 ]' d
| MCASP_TX_CLKFAIL
" R/ U+ Z6 p5 r| MCASP_TX_SYNCERROR
* b3 K  R$ C% n, d2 c| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR
) X5 f7 I! {4 m% z7 h+ }| MCASP_RX_CLKFAIL/ i' A! l/ e' K# s
| MCASP_RX_SYNCERROR - `& L& i, N0 Q) h/ Z- S& j
| MCASP_RX_OVERRUN);1 m( |- y! l$ g% k. N
}
static void I2SDataTxRxActivate(void)' Z- R/ S, s: V+ |
{
. G6 w/ H, D7 E- C/* Start the clocks */
% u% A3 p6 y% ?! w' XMcASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);
1 l' c' g/ N5 B. CMcASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */% v- ]: X! w* m# N  ^2 l
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,& n) `# }5 f3 ?, y( O
EDMA3_TRIG_MODE_EVENT);" D# z7 _' D  K) P7 e( D0 Y
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS,
: x. g! q0 j: AEDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */+ B. Y. p: ?$ N1 ^. R
McASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);* A. I7 U: f0 e7 Q6 m$ _! y
McASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */
0 m" n3 ]9 X( l5 R: b7 Owhile(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines *// b" ]  p+ G( e2 M3 Y) o
McASPRxEnable(SOC_MCASP_0_CTRL_REGS);
! G9 S2 c( W) ^  T% U! L* ~. @McASPTxEnable(SOC_MCASP_0_CTRL_REGS);
0 x' a& A* A- M}

; u9 z1 v. Z. H2 H; f  ^7 T
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.
* c& Q: M& ]; `+ W
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-30 13:26 , Processed in 0.038855 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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