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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 11505|回复: 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,
0 i& j7 Q! d' T! Hinput mcasp_ahclkx,
" Y2 d9 H* T/ }3 R% xinput mcasp_aclkx,
, Q7 P- `! O: D3 s+ ^) pinput axr0,
: t( j4 g' M" B+ a! i: s7 P
% _& u& H. `( p" B- houtput mcasp_afsr,
) ]( b# F% B9 X; g- aoutput mcasp_ahclkr,: H, j2 ^/ o& V2 n# n3 L0 U7 C
output mcasp_aclkr,. F: I9 t& U# o. }# [1 e& g, ?+ _. V
output axr1,
  e; q2 Z' S" Z" L4 b3 o
assign mcasp_afsr = mcasp_afsx;' Q3 }2 J2 U( m* v( n' g
assign mcasp_aclkr = mcasp_aclkx;
- I% h4 _2 y! Uassign mcasp_ahclkr = mcasp_ahclkx;
$ Q8 Y9 m$ {; _) Q9 t; M. jassign axr1 = axr0;

; u, t0 x+ N& |# d& {
$ {9 z+ H. D3 D4 C) L) x
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。

- s' s9 j- l! a9 `1 a' P8 ~- V
static void McASPI2SConfigure(void): Q' J) Y5 J# Y, e
{
/ ~& _5 J# t6 K5 |McASPRxReset(SOC_MCASP_0_CTRL_REGS);9 }3 Y+ V+ L: _2 i1 t7 j
McASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */
2 W& E- o; v8 _& s7 u; }1 rMcASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);! f; M% o0 J0 r4 k9 J0 [) q5 C
McASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */
5 x# ^* r* G+ ^% z, r  RMcASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE," l& w5 @' I1 Q1 E6 J
MCASP_RX_MODE_DMA);* j  o  `: `: Y; Q
McASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
2 Y5 F1 _1 X& @+ i" ]# VMCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */) w* t2 U7 Z% @& |$ @+ l
McASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD, 2 K, ]0 X0 J: P- n$ q9 c* X
MCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);
1 I& |" F, P8 Q* i) Y: P" {+ aMcASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD,
( ^$ `! P  J1 X2 Z7 EMCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */: g- j. M  b% M4 Z  }: _
McASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);
( g# {# b4 A( p0 f) b0 pMcASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE); + h: T! q5 A5 q8 B; o/ i5 `; Z' [
McASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,6 N( Y3 a: Q, S0 c* Z1 h" ?0 z1 K
0x00, 0xFF);
/* configure the clock for transmitter */' ^+ g+ Z! |. D" E
McASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);7 s  O! `1 W  M! i
McASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE);
7 _0 C# U6 C6 Z) e) O! qMcASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,5 H/ r7 g) z# R1 L! D$ Y& W
0x00, 0xFF);
* M  Z* y' j) r, U  @( r9 P
" z' [! a( H: w2 S& [/* Enable synchronization of RX and TX sections */ 7 T0 y! Q5 k3 J7 y/ W! u
McASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */
( R- c! K5 t" q& L' C% f6 c) S, _& QMcASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
, v9 e- B) s& ]9 lMcASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*. [  N+ ~1 j$ V
** Set the serializers, Currently only one serializer is set as
$ T6 k, ]( K1 h5 o  F2 m9 Q** transmitter and one serializer as receiver.
9 Y* X+ v+ ~- L, X0 [*/: {9 z0 W' w+ I' `. |$ o" U5 D. E5 }
McASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);
2 W& ~. [4 u" }McASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*8 a  Q' C- s- F- _9 U
** Configure the McASP pins : ?! U5 n6 F; @2 m8 t# W: Y( i3 k
** Input - Frame Sync, Clock and Serializer Rx
$ |, u2 H4 W. U# A" H** Output - Serializer Tx is connected to the input of the codec 0 h& M: F" Z4 s8 @9 Q
*/
% _4 [- [& d" V, D3 _5 bMcASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);9 w' N* K$ T9 ^: u  V3 \2 p7 p
McASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));5 q7 N- f6 E0 O6 l& Y5 `
McASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX
1 x/ \3 Q0 R8 ^4 x+ A, U, Z( || MCASP_PIN_ACLKX7 N) K9 Z# g0 _* e$ h( J8 Z
| MCASP_PIN_AHCLKX
! O# m( g' T/ G9 w" T/ o5 \* f) G| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */
% ]2 j% ^3 s( U$ s1 V$ @McASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR
! T* Y; J! r3 D8 b* x| MCASP_TX_CLKFAIL + ^' P2 ~6 Y$ M  k
| MCASP_TX_SYNCERROR) r5 ]: B9 q3 f8 x- i/ @$ f
| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR " v, M( C4 \0 u7 x' E- a" R7 e
| MCASP_RX_CLKFAIL
# c' f1 h0 n& M7 A# q| MCASP_RX_SYNCERROR   z9 e/ ?( g1 q2 h
| MCASP_RX_OVERRUN);
/ i/ v/ A& A2 w6 ?4 O}
static void I2SDataTxRxActivate(void); a- B* R# X9 \* B  T3 w
{, Q5 G% ?- z1 s7 T
/* Start the clocks */
3 Q7 G! L+ `  U1 H6 M- j# W' YMcASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);
: R6 W# U; H5 O& X4 I" _McASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */2 {, N. d  s8 `' s9 E3 U, |! W
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,: d% S/ P, P  i' x$ t
EDMA3_TRIG_MODE_EVENT);
( `: L9 c* @, K( REDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, ; Z5 g* }5 L4 S+ F" C* w, x
EDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers *// _/ d5 ^/ e  c& C8 n9 R
McASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);9 U3 b  `( E  }1 ~: W# R
McASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */  ?5 H' v! k0 Y( j8 F
while(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */. w% Q, O8 B6 R$ [
McASPRxEnable(SOC_MCASP_0_CTRL_REGS);
2 e$ Q7 N8 H5 ^8 \& q0 P  LMcASPTxEnable(SOC_MCASP_0_CTRL_REGS);
( d4 s8 U- f1 u8 J8 C}
! _& c$ d6 s: {
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.

/ w$ n/ L/ d& P5 i! a4 @' S
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-7 12:58 , Processed in 0.063494 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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