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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 11470|回复: 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,2 D9 W/ \, ?6 h8 H. a+ i
input mcasp_ahclkx,7 |" M7 T& F, ?  ^. q/ X9 b! z  j/ p
input mcasp_aclkx,
: P# g% F- G% }' W9 z$ Qinput axr0,
) I! j! P* A* q
4 ~  Z, ?8 M. z3 v4 ?1 A) Poutput mcasp_afsr,
# R, x- Y& ^3 K$ Q3 `output mcasp_ahclkr,
' }1 M( R+ p( F9 Doutput mcasp_aclkr,
- r. H: E0 V9 Z: X8 aoutput axr1,
9 e  ]* n( Q8 N; s) e
assign mcasp_afsr = mcasp_afsx;+ q+ v) u$ U8 T* `$ X6 H
assign mcasp_aclkr = mcasp_aclkx;
( I/ L$ b0 Z; Q$ I4 bassign mcasp_ahclkr = mcasp_ahclkx;
2 @* x$ O1 q9 `1 @. ]# i8 Nassign axr1 = axr0;

0 L  q# q5 W7 B
% {, }7 T: s' B7 x) D, X
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。

& n3 b5 l9 V1 A" l& ~9 J
static void McASPI2SConfigure(void)6 _% K* p! H' Q' E
{
5 }( r- f& G2 b* i, @McASPRxReset(SOC_MCASP_0_CTRL_REGS);
2 F+ L# H) x7 W* M1 p9 T+ L' L  nMcASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */
( H7 t% p6 E) A2 aMcASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);2 P$ `7 |) |, v( l
McASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */
8 x( H% u, a# R. }9 _McASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,9 v! Z0 V# b  X) P! W9 A, o; C
MCASP_RX_MODE_DMA);
; H7 _* x) K2 E; p: @* y6 u" T5 JMcASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
; {1 S8 R; j6 Y$ z+ aMCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */
2 o2 c! t* p" }2 H# L8 X( m, ]* VMcASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD, 5 }/ l5 y7 a' M8 I) X& z
MCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);
: d  G* I1 ?  wMcASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD,
9 ~( I4 y8 B& w5 @( u2 Z- \MCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */' |! M! Q& s6 c. A
McASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);
) e8 n  ^: u# |' w0 [8 H! wMcASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE);
1 ]! q9 w+ L* @2 c0 b' b9 ~/ KMcASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,5 q$ T' N$ Q% j! W  z8 d6 g3 e0 y
0x00, 0xFF);
/* configure the clock for transmitter */
* g+ w9 n' j7 fMcASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);
" R$ H+ R9 z* y3 a1 g( a' x9 lMcASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE);
" }) ?8 w5 F1 t( B0 y1 K( _McASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,# @7 I7 c5 m; s( _
0x00, 0xFF);( z# |. i( ?( ]+ z

* N, q( G: K3 D2 Y+ \0 E/* Enable synchronization of RX and TX sections */
) I7 b6 C. a/ B( {% A- IMcASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */' O  K& ?: H' b) l9 l, M/ c
McASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
' P' a; v/ {5 h6 n. J  n4 [5 O7 EMcASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*1 F0 X% A" ^1 z. O3 l: g( V' \: _
** Set the serializers, Currently only one serializer is set as
" i% g  E/ I' V* w+ ~** transmitter and one serializer as receiver.
$ w. i, M; q2 ]0 P2 `' k" q*/2 m& l& C1 N8 J2 f. |+ x+ {+ F) N
McASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);
9 Z) ]7 M, E% _$ P1 ]McASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*" }4 B2 ]5 m) F; D& D& s
** Configure the McASP pins + G$ L5 O  ]7 f8 j+ |
** Input - Frame Sync, Clock and Serializer Rx
; j9 x/ N; S+ R3 ?- e1 O1 m$ R9 y& u** Output - Serializer Tx is connected to the input of the codec
: l7 g; w( \& F) b. \& F*/4 N) B- b' V: k& w) z& W
McASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);/ K' U8 F" Y1 u. G
McASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));
8 {: Q0 U. _: D* j" jMcASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX
; ]' E7 U$ N2 c! F7 p* n. V9 X  i5 X| MCASP_PIN_ACLKX: a7 b" G6 {0 v6 N' `6 k+ Z+ w2 p4 R
| MCASP_PIN_AHCLKX  O% `. x/ K! @
| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */
; v, ?1 E2 J! D$ lMcASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR
; `; \; o8 O/ u) C| MCASP_TX_CLKFAIL
% Z$ ]& V( I, M| MCASP_TX_SYNCERROR
' a( y' ], k, r) [) W+ ]| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR
" g; \. h: e% k! o( ]| MCASP_RX_CLKFAIL" U3 X8 K* y- b. v9 r: z
| MCASP_RX_SYNCERROR
  g6 Z) w, t6 A& v7 J) ~| MCASP_RX_OVERRUN);
# }$ s% [0 U' I) @}
static void I2SDataTxRxActivate(void)
+ t8 G" h% y( a6 W1 t8 p{
2 t! |& X! z# h( }+ z5 I. r/* Start the clocks */
$ M+ M$ f( q6 |; gMcASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);
* q( w9 d9 ?! m) ?* q. G# Y+ [McASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */- W" A: I3 m$ M  r$ v! c! f9 o" W
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,4 D; k: y8 L. h: }. t, L8 B
EDMA3_TRIG_MODE_EVENT);3 p5 e1 H0 a9 D" z; }* v. n
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, 7 U/ c4 O1 @; i8 ?) w! N& t: A& z
EDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */
3 Z2 ?$ u( a; Q6 Q9 ^McASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);
5 z/ R% a7 k0 V# m' WMcASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */
6 u( W( X, s2 a; @& xwhile(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */( Z& _+ T- R; n5 _% J- ^
McASPRxEnable(SOC_MCASP_0_CTRL_REGS);8 R; Y+ [. p4 P* N: C- C
McASPTxEnable(SOC_MCASP_0_CTRL_REGS);$ `% z& x+ A" e! |! O" A1 _
}
% a2 P& y5 K9 U' _; @3 w
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.
) T& C: k+ X# l1 t9 |: x! ~
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-6 06:12 , Processed in 0.040702 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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