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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] MCASP自环配置。

[复制链接]

6

主题

12

帖子

1216

积分

金牌会员

Rank: 6Rank: 6

积分
1216
跳转到指定楼层
楼主
发表于 2018-11-7 13:28:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我项目上用OMAPL138的板子MCASP的引脚都是链接的FPGA,所以在FPGA这端设置的MCASP自环。把axr0接收到的通过axr1发回去。
部分代码如下
input mcasp_afsx,* y& L  ~! S$ a( L0 s# {4 c
input mcasp_ahclkx,0 I& E( L0 s, o8 u" i( A
input mcasp_aclkx,
' c) o) Q# C! R8 [. S: a- Cinput axr0,
9 Z# d. S3 r) c, c$ M& `/ L* \9 k6 w% U# @" [& F( Q4 p* X" F
output mcasp_afsr,
6 H' q3 v% w1 o3 E8 a: joutput mcasp_ahclkr,$ R9 Y# d# a: [5 C
output mcasp_aclkr,
: x, n( {5 H" U% }' w, Boutput axr1,% P* [" D# s3 ]# y2 w0 ^
assign mcasp_afsr = mcasp_afsx;
& E6 o" w) ?* P; I! rassign mcasp_aclkr = mcasp_aclkx;( K1 F- X: Q9 N
assign mcasp_ahclkr = mcasp_ahclkx;
; S& l* {; ~' X6 Z$ l: v2 g$ r/ [assign axr1 = axr0;
/ b7 M2 [2 n3 K! ~& H4 w, v

0 g; [" y* d$ ]. [; o9 ]6 G5 ?1 N
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。

4 @/ W7 @; i6 U
static void McASPI2SConfigure(void)
" G1 G- u( |0 q1 J" A# A: A8 |{* |; y  E. _) ~
McASPRxReset(SOC_MCASP_0_CTRL_REGS);5 U! h- ]3 _2 W: S9 H7 ]
McASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */
2 J0 m: C5 u- M/ V. [' jMcASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
+ S- W' w. J+ S9 J* SMcASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */; `: t! {, z! }- o6 w: _+ D2 B+ ]
McASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
; v" P! ]6 X# y, p* x9 ^& M0 EMCASP_RX_MODE_DMA);- [. K! s9 A, H" X
McASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
( N5 }. t: a. G9 S: ]MCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */
9 o3 Z, u. E2 @! g9 kMcASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD, * _7 i, z1 g6 l* n8 L" _* r
MCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);
$ w& U4 ]- O, o5 \) Q2 P) b. lMcASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD, 3 t$ b( @. f4 e; x: w
MCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */
- j! C! W: }' D6 J  XMcASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);
2 g" S" s) T: X3 ?" S1 {- jMcASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE); 0 {0 {7 K! I- G$ i4 ~6 ^8 s7 m
McASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,3 X; g+ C2 W1 ^/ H, A
0x00, 0xFF);
/* configure the clock for transmitter */
; ~$ y! c# U- Q& b/ y# c4 E# @McASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);- O& P" r% V$ D$ i8 N0 }
McASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE);
2 z+ t' b0 L- a6 U- e' l! WMcASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,+ m; s3 H- }3 p4 D) u; |
0x00, 0xFF);/ R6 N1 l; l9 Y% F
, s1 |* D! [& q3 y8 o$ i' P
/* Enable synchronization of RX and TX sections */
4 u# S' @5 k3 h0 W& `9 h* ?; p. q) ^' uMcASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */
4 N6 G1 N0 G2 x* D. PMcASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
" b+ c/ a4 Z3 o! e$ h. }) WMcASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*
1 s6 {$ g! G0 d) o** Set the serializers, Currently only one serializer is set as- {  v% B% J% u# j
** transmitter and one serializer as receiver.
3 V9 G/ i2 x' Z8 p' B* m*/
$ p8 _# i( f7 y# h  V6 d( hMcASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);
' H+ G; A( }" G9 J5 k2 K3 }+ vMcASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*9 L3 G3 q; z  m% A7 ?& w7 X
** Configure the McASP pins 1 C% Y$ b4 F- @: ^
** Input - Frame Sync, Clock and Serializer Rx
* p' ?$ e5 `4 b0 p* q) g** Output - Serializer Tx is connected to the input of the codec . [; s) R) E. X; _7 w* A
*/2 w. f- K, Q6 \9 M; ]* P
McASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);
! J0 ]6 U0 e! a& `# T0 m9 M8 qMcASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));
* h4 t7 d* Q" @7 u7 u2 [McASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX3 F: R8 _9 V# t! e4 B# Z* h
| MCASP_PIN_ACLKX
, N- |. D7 B6 E; ]* A4 P4 d9 Z5 X| MCASP_PIN_AHCLKX- _/ [/ Z/ q) u, X! R/ V! z$ m
| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */
: U# u) U. s( P' n9 fMcASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR ( K% b! ?( R# g
| MCASP_TX_CLKFAIL
/ B" n% c4 R' C2 `( u" E0 t| MCASP_TX_SYNCERROR+ J& H' [  |- X# y* y
| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR : U+ i( Q$ e& H- g* {
| MCASP_RX_CLKFAIL
* ?) t- N9 Q0 x( }) c. [8 r| MCASP_RX_SYNCERROR ) @: X6 ?* ]8 Y" T3 I9 j
| MCASP_RX_OVERRUN);
" C$ L5 r0 K) n: {4 {. a}
static void I2SDataTxRxActivate(void)* t  J- ?1 y; o  q: J* F' ^8 `! R
{% X  [7 _! z$ @7 L8 B
/* Start the clocks */" J# U% E5 d6 b& T) C
McASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);/ H, a" ]1 p5 l) p' \
McASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */1 }& K8 E5 z. N3 o0 N
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,6 o) y, |8 ]6 B) \2 L
EDMA3_TRIG_MODE_EVENT);; H- v! d. J& e' z9 t
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, 1 r; K5 M% [0 @& B: h% T0 I% s) d
EDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */. m  {  S2 R$ n7 n
McASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);
' ?+ y9 H8 u2 A- \5 n  q+ hMcASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */, }3 K8 G1 p; k( }( V% [
while(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */9 L, W/ ^# U4 z6 d9 g1 l+ @
McASPRxEnable(SOC_MCASP_0_CTRL_REGS);
: Z* n# R/ o! L0 a# VMcASPTxEnable(SOC_MCASP_0_CTRL_REGS);  w3 g: d, ~! {& ~
}

  s; l* \+ T" Z. O
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.
  l9 j1 Z5 Z+ v. x5 O
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-7-26 13:53 , Processed in 0.042829 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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