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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 12883|回复: 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,1 F  M3 q2 F4 v
input mcasp_ahclkx,
& u  ?; C; a1 |" Y4 W* h) G3 S! sinput mcasp_aclkx,
/ p/ X3 \5 x" }# ginput axr0,
/ t& Z3 q3 Q. q1 h" f/ C: G; `1 D+ ]# D! R
output mcasp_afsr,4 o7 y* I/ x8 k8 b4 w
output mcasp_ahclkr,
% p  R2 y6 u1 L* D9 \6 ?output mcasp_aclkr,: V+ I+ Q6 W' `5 b
output axr1,+ \& V! g( k) v& j
assign mcasp_afsr = mcasp_afsx;
7 r3 @+ K$ Z+ X0 ]' Jassign mcasp_aclkr = mcasp_aclkx;) ?$ w/ K. K8 |6 P
assign mcasp_ahclkr = mcasp_ahclkx;4 G- O! ]' x+ B6 l- a
assign axr1 = axr0;

3 T/ O& w/ F( o6 Q  o3 j
# M( r: O3 Y- H- w
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。
' y. W/ j) j4 v6 ?
static void McASPI2SConfigure(void)) }2 {, ?+ r1 T& r
{/ @4 V3 ~; q7 u
McASPRxReset(SOC_MCASP_0_CTRL_REGS);+ D1 B9 f8 J# ]6 J. V& {
McASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */& L" Q. Q: Q  K
McASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);$ s1 {! d2 [# Z5 L
McASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */
' B' s- r, A9 {- y- BMcASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
3 S0 _2 [) n! m7 aMCASP_RX_MODE_DMA);
1 T% H$ k1 [! S5 x* G; Z6 ~) fMcASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,& R9 `. s! i( c, M1 U
MCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */$ ~; X) \, S% u, _" O0 }
McASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD,
2 _" R* O- f; B* ZMCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);) [$ i9 N- v0 y5 P+ [8 H' L8 F
McASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD,
% n1 C1 w, A( x* j/ Y% Q( W' lMCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */
' S4 R* O3 j% A# s9 ]  c0 B5 hMcASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);" U: T% E4 ^7 I' }# |
McASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE);
- r- @4 f9 `$ E6 |McASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,
8 z1 ~8 X0 U' H2 d0x00, 0xFF);
/* configure the clock for transmitter */# I( ^* @( Y9 A4 z
McASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);0 t' M4 i0 K8 H0 w- ]5 `' u
McASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE);
% b& ^9 h% Q9 _7 ]) l6 @McASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,
$ z  U$ q) l4 U5 ~/ [( B4 ~% A0x00, 0xFF);2 [+ \7 C  ~1 U! R; e( p3 ], s
# V; j, e5 S* j% |! g
/* Enable synchronization of RX and TX sections */
! ]' _* `' x$ H' ~& e! Z. Y1 O/ FMcASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */6 _& c% x+ G. @. j- i+ a
McASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);8 s0 q3 o# n* ~7 p
McASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*9 e! ]6 i" A) @8 c. z
** Set the serializers, Currently only one serializer is set as6 z+ c0 b* q# `5 n1 [+ A) a6 B/ W
** transmitter and one serializer as receiver.
6 t4 M! D+ j$ N7 I8 s*/
5 K& J* q' E3 q2 B- `6 v% Z, `McASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);. q! _* H+ h5 [4 i9 j
McASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*
' ?9 x+ V! z* F" N8 u% m1 x** Configure the McASP pins
+ t- b: k' v2 i' u0 k** Input - Frame Sync, Clock and Serializer Rx& z' o8 T, Y% K- ]% X6 o& [2 ~9 ~& K1 ]2 z
** Output - Serializer Tx is connected to the input of the codec : t! P* _8 ?7 m
*/3 P0 r# p0 u4 r$ }+ H+ a
McASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);
9 M, h! o! T; mMcASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));. f6 G; e4 b7 k3 m/ L4 b
McASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX5 Y8 S9 ]  G; I4 z4 s
| MCASP_PIN_ACLKX
" H% V! B& l! R/ K: C% q" A, p| MCASP_PIN_AHCLKX
5 ?3 A5 V) w6 {& V9 s| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */1 l. ]5 y. J9 S  H4 _% ?, M% B% w7 n
McASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR
0 k8 r1 y* m/ M| MCASP_TX_CLKFAIL
0 y% n/ `1 J+ [6 V* p6 v: x| MCASP_TX_SYNCERROR" l$ C: p3 J2 \% `
| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR / Z8 `4 u( G+ p6 L% Q4 r- J, [
| MCASP_RX_CLKFAIL
- ?: z$ i% {+ I$ i1 F. e+ ]( y1 I| MCASP_RX_SYNCERROR
, j5 O) |2 V0 ]/ \+ B| MCASP_RX_OVERRUN);
) D! W  O# z1 X}
static void I2SDataTxRxActivate(void), {5 `$ `6 T9 t  ?# O+ J
{, e4 X0 F! j  l9 ?3 I5 C
/* Start the clocks */  v2 T/ j) |" ]' }0 v0 B; v
McASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);, _  [4 z4 P: o! U
McASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */* J* z8 P* A- Q2 v1 i  {
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,
. l2 h8 y; ~! b3 q6 b+ `EDMA3_TRIG_MODE_EVENT);- ?1 X% u2 ?- C' O/ [
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS,
/ O, j8 I: p" U3 bEDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */
& g7 o- T! X$ ?. [: L7 C3 h6 Z. nMcASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);) h3 y0 M$ t0 X1 y8 G$ {3 u
McASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */
! x) n+ e4 s: t' L6 N+ Ywhile(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */
5 P* j8 S" A0 s, TMcASPRxEnable(SOC_MCASP_0_CTRL_REGS);
! f. q+ U3 @- ]& k! F, f8 ]McASPTxEnable(SOC_MCASP_0_CTRL_REGS);$ w2 G- B; n% f% i; q
}

: }) N  ?; f5 u
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.

/ u5 l0 X; u3 \5 u2 V; u- A
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-7-12 17:08 , Processed in 0.040724 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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