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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 11398|回复: 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,: F+ C+ @; d* @! {3 @$ ~% I
input mcasp_ahclkx,
+ j) O4 K% H0 P8 h6 l1 ~  winput mcasp_aclkx,& F/ u  X3 r. D7 I3 K, v
input axr0,  j+ p: k0 W$ A  t$ w9 Z
% n0 v, R& c3 Y6 m0 u! e  i
output mcasp_afsr,
  D% m, R) ^+ ^! Moutput mcasp_ahclkr,
% i- k) [$ h5 [0 p$ h3 E3 Aoutput mcasp_aclkr," D! h5 h$ ]# F# \7 M6 I+ \
output axr1,3 b5 m: n/ |( m! o) I
assign mcasp_afsr = mcasp_afsx;5 x0 e, B0 @/ C- H2 o
assign mcasp_aclkr = mcasp_aclkx;
" E1 g1 d5 C7 @; Y+ ~4 N& B$ ?9 sassign mcasp_ahclkr = mcasp_ahclkx;
3 |  {! i. V! d+ Rassign axr1 = axr0;

6 d  e% A4 t7 Y/ L5 {, J1 I) q) X* L& x% C: [% r) A
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。
9 C! H1 B' V5 R. c
static void McASPI2SConfigure(void)
  l2 @2 h2 \' @3 k5 e{
! i5 O6 h8 ]$ E# u( G6 XMcASPRxReset(SOC_MCASP_0_CTRL_REGS);
8 K2 p3 C9 D6 h9 mMcASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */
- g9 L; X. h% |# j  S& y/ cMcASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
1 s6 s8 e- r" ?# T" s' R5 aMcASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */1 S" ^: b7 V: _+ W
McASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
& Y1 L& e9 _" h6 P$ b* yMCASP_RX_MODE_DMA);  _( v( b3 p6 p- B7 g( Z. v6 }8 G
McASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,4 Q/ M0 K- G% N% s) ]
MCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */2 N' d( z$ Z1 p* ?3 d& N
McASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD,
) G9 e% [! {* b, R8 O* ~+ O& U. X" p0 X: c% ~MCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);
, X9 L  ]; e# Q, n4 N' hMcASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD, 6 R: s( w9 r8 u. G2 C/ y4 e( d
MCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */% r/ \% y; A% q% K& {* K
McASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);
8 v3 [6 c# s; v3 x* I0 K; vMcASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE);
9 P, S; s3 j! o, k9 JMcASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32," Z: s  X) C% @
0x00, 0xFF);
/* configure the clock for transmitter */
; _  M' a; N: M% Y/ b& T4 w+ BMcASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);
- X, W' y2 o4 B7 B+ S- M! EMcASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE);
. @% ^% H+ o" e: I/ n2 t- cMcASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,( T; U2 j: A# v) J% b9 _" `
0x00, 0xFF);
' q8 f( ]5 x$ h3 j4 r- d7 `% o2 K' [7 T; o2 j. p+ y
/* Enable synchronization of RX and TX sections */
& c# ^: i5 I; Q* J2 E1 v& k) f* `McASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */
7 Q- j6 `* k/ Q. j4 W7 N2 uMcASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);! _8 B8 a- `' z: A6 Z0 {  o
McASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*. d" c  E6 V+ Z: Q( S5 ?1 w
** Set the serializers, Currently only one serializer is set as% q% G) i+ T& v! P( x
** transmitter and one serializer as receiver.
. t" M( f5 R5 F6 b$ Q*/6 D1 _: ~9 N' ~/ o
McASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);
: g/ [- I: N; N9 q4 OMcASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*
8 _7 ^* t1 K% q** Configure the McASP pins / o; J8 o  p: m' I
** Input - Frame Sync, Clock and Serializer Rx- S2 A  ^  X. R( f8 Y0 }
** Output - Serializer Tx is connected to the input of the codec $ q3 A9 i! |3 A, q; \9 L) F
*/
+ C6 D1 a/ [, n/ n% _McASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);
0 a7 N& j; N' k/ \: K9 BMcASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));) j0 z0 M- H# M. O
McASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX
8 s# D# t) @) l5 H5 b8 ~| MCASP_PIN_ACLKX
3 c9 m, U" q: m9 Y3 o6 D| MCASP_PIN_AHCLKX
& Q/ f# D$ A1 o! E, a* P| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */& s$ d1 @+ Y4 {- t! g. e0 L9 a9 ~9 K
McASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR 9 |7 [& G3 n0 O
| MCASP_TX_CLKFAIL
" f2 P; b* O* B% U( j| MCASP_TX_SYNCERROR, {# u( p# C# t( [
| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR
. M& C6 `; l- D| MCASP_RX_CLKFAIL/ \+ `0 }; E( M% p. ]& i- X+ @( \, z) g
| MCASP_RX_SYNCERROR
* B9 p! J0 T/ @0 H4 n7 U7 Z| MCASP_RX_OVERRUN);
* y  q+ L# s  [' F. p; s}
static void I2SDataTxRxActivate(void)
2 o$ ]/ l9 o) M& e% `( X{2 p( H" e6 M/ A$ H3 C8 v
/* Start the clocks */  R1 e& r+ |* E! B1 {
McASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);
2 m- G) n, N$ ], [9 LMcASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */" _& [; Z* [7 T. ]
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,
& b8 c' w" L6 c2 z3 }EDMA3_TRIG_MODE_EVENT);! q  O2 g$ ~* [2 j; E( x" B4 G
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS,
+ r. n- X* A; N( Q8 U* zEDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */  d" a+ |9 }) g2 \; e; \
McASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);
/ o8 Y$ G2 K" D/ IMcASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */
, U7 `) ^* i5 o* k; D6 hwhile(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */
( w- E6 b6 f0 i7 \McASPRxEnable(SOC_MCASP_0_CTRL_REGS);
% M5 p3 O# W  a1 G& e1 B( @' SMcASPTxEnable(SOC_MCASP_0_CTRL_REGS);
- A; p5 L9 c0 e9 b) k! m, }8 ~}
8 }, n9 }6 {/ s  s# n/ b
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.

& l* n, \) e7 n. k  }" i
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-4 10:19 , Processed in 0.039776 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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