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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] MCASP自环配置。

[复制链接]

6

主题

12

帖子

1215

积分

金牌会员

Rank: 6Rank: 6

积分
1215
跳转到指定楼层
楼主
发表于 2018-11-7 13:28:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我项目上用OMAPL138的板子MCASP的引脚都是链接的FPGA,所以在FPGA这端设置的MCASP自环。把axr0接收到的通过axr1发回去。
部分代码如下
input mcasp_afsx,8 j) t  Z2 k/ M; v
input mcasp_ahclkx,
' D; g8 m/ Z6 N1 f! G6 M, Ainput mcasp_aclkx," P5 n- ~! q% V+ p( j
input axr0,
5 ^9 _: Z9 m1 A# H- f. m) J. g4 M$ N8 N
output mcasp_afsr,
0 u! O, m2 ]3 W* \6 d! o. m; doutput mcasp_ahclkr,6 G4 t  i4 e& t$ _, o
output mcasp_aclkr,
: j! Y) S6 f: @4 a# ooutput axr1,( K2 w+ B+ K1 W. j$ j' l: v
assign mcasp_afsr = mcasp_afsx;
; F, f9 X) I5 K- U+ n, c- Sassign mcasp_aclkr = mcasp_aclkx;
. c* `3 z+ q4 m! J! E; Dassign mcasp_ahclkr = mcasp_ahclkx;
! [' [6 W* z: q4 ~. q) I6 uassign axr1 = axr0;
, o7 w0 q/ j+ k1 d
2 s( U! j8 C" u  R4 z
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。

# [3 w! L/ K4 A( j& w8 J3 d. y) }- c
static void McASPI2SConfigure(void)
! t4 H! D2 ^! E! D: O{3 w! m+ g( g* t  R- e
McASPRxReset(SOC_MCASP_0_CTRL_REGS);% O) L4 b$ f: P. R. o  r
McASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */0 C1 U5 Q7 d- q& S6 y1 g2 a
McASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);! _8 S: T1 h. d5 U1 p
McASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */
2 u+ x/ x& [) U/ S4 yMcASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
% O4 z0 Y- B, \; A* DMCASP_RX_MODE_DMA);
7 @  P- X& T4 t, d& A0 l; XMcASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,( Y5 h9 z# r% v# D! ]2 ~
MCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */  u& b; ]6 z& F5 ^
McASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD, # W/ J- _6 l8 e8 d. D) s
MCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);# ~, x# H' h8 ~5 k/ j+ ]( n
McASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD,
3 V# [; C( b) B; p4 m  ^$ }+ B& fMCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */% X9 E0 [4 I8 p8 t7 ~
McASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);
5 P% |* d! `+ g4 a. BMcASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE); : O7 C: G6 W8 Q$ b* j
McASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,  q/ C! S( s  `$ }3 m$ }& U
0x00, 0xFF);
/* configure the clock for transmitter */
- g1 J$ M* ?; Q% d: t3 a/ W# f7 sMcASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);8 T" ]2 H0 U2 \
McASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE); ; Y. [* c8 s8 S' V2 w# d- d
McASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,
' o6 x+ z3 r- ^! y0x00, 0xFF);
+ y# ~# }2 ]* V, S; _  h* \, `/ ?1 A# b5 L+ H( V
/* Enable synchronization of RX and TX sections */ , x" u+ t( K& G4 p8 _  ?' G5 s
McASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */
6 p5 C& d; K/ T6 i9 KMcASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
" D* G+ p+ G& N  ~  S( w$ g3 qMcASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*& {% A4 a) E7 ]' k0 k9 w. q
** Set the serializers, Currently only one serializer is set as
8 s. t& s7 l! d1 p( f! p; r: |. H** transmitter and one serializer as receiver.. R0 ~+ n8 }; k8 }/ v
*/: B) U$ J& o" m3 c9 [) _
McASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);9 _7 S( s$ A4 h7 y7 @
McASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*
: }: o0 [, A( V! [7 ~3 s** Configure the McASP pins
+ d: I3 d$ B. }  x6 @6 `** Input - Frame Sync, Clock and Serializer Rx
& [6 v( t" ~) O2 g! W** Output - Serializer Tx is connected to the input of the codec
3 K: }0 ~4 T* O( c*/
; E% p  C! m% t% E. b9 {3 rMcASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);" q$ h! f4 a" I& P5 ^5 z+ h. |
McASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));! i/ C1 l% c* j* T# ~7 b5 W* O
McASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX' j3 R  I' D& j$ A4 j0 [$ K4 U# N" H
| MCASP_PIN_ACLKX7 \6 r$ f$ }! W/ t5 V2 P: Q
| MCASP_PIN_AHCLKX
' y9 a7 r, K2 t4 r/ {- r) [+ E| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */
( V/ t1 `$ C$ q( b; i- |7 [McASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR ( W9 C+ R' w/ R  d9 D$ n& u
| MCASP_TX_CLKFAIL
6 }5 h2 d: U: L. `0 {. k| MCASP_TX_SYNCERROR
* j$ J) ^1 `, O& N( o% ^/ i3 Q| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR 4 _( J) W" j$ Q: Y/ p, ?
| MCASP_RX_CLKFAIL1 O+ o2 G- X' T
| MCASP_RX_SYNCERROR
3 @7 B5 i/ |5 J; o/ j4 o| MCASP_RX_OVERRUN);
0 R$ b& a# @- F. R6 Y$ `  _% _}
static void I2SDataTxRxActivate(void)4 M) r: U) h1 Z! w, l7 p) E
{- d8 D: Y# u  I& `+ ^0 V+ O
/* Start the clocks */
3 K* N7 y3 _, [; k( p2 n/ cMcASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);
7 q% o# Z: \' e4 E, kMcASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */
* W" E" J* |2 }  Y- v; a% t. wEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,
' v, t( z* T6 O- [2 b+ i' Y( iEDMA3_TRIG_MODE_EVENT);
( ~8 V/ ~5 f8 g1 R2 E+ EEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS,
) f+ o' ]- M1 U7 {- @EDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */( i5 \- N' s. m
McASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);3 I% ]4 `7 x" e) O8 U
McASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */
: n- l; L* `3 {$ w# l, C! C' Wwhile(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */9 w3 _8 r* `& r6 T8 q2 Z0 Z! S
McASPRxEnable(SOC_MCASP_0_CTRL_REGS);6 n1 q! x" `% v8 L
McASPTxEnable(SOC_MCASP_0_CTRL_REGS);% @9 S1 q) l" z3 K8 ^. U7 b5 a
}
+ d0 _! n5 a- q+ M" Y. |% E
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.

2 ^: ?" ^& V; W1 ^0 D3 U. P
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-4-2 10:20 , Processed in 0.039434 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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