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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 10851|回复: 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,9 N6 l, D& v/ E4 p( k
input mcasp_ahclkx,# H7 y# j/ f! Y$ F
input mcasp_aclkx,
/ M9 [+ p9 ]8 C7 m7 o! Binput axr0,
$ z1 W# T; h+ _$ X8 T& d. r6 n3 I4 h
output mcasp_afsr,* v. t4 x( E. a6 g
output mcasp_ahclkr,, W5 [  K7 b% d" B
output mcasp_aclkr,
, S! D) Y9 R1 r4 _4 p, {output axr1,
0 [) q) ^3 [! {. a0 N
assign mcasp_afsr = mcasp_afsx;
) u# q) M' i4 x4 a+ W5 _( B! [assign mcasp_aclkr = mcasp_aclkx;9 X0 [/ q! \5 C8 ~0 J' T& n! j0 j, {
assign mcasp_ahclkr = mcasp_ahclkx;
' c/ G: r! u) xassign axr1 = axr0;

; l4 A; x. l2 J- ^- h! S
/ W# K8 O' ?5 B0 h' I; V
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。
/ U+ p0 E. U7 o7 b
static void McASPI2SConfigure(void)
- D2 C0 U3 |, d  @{
: H% p7 [: m# r  pMcASPRxReset(SOC_MCASP_0_CTRL_REGS);
  B1 X) ~% f/ d; n: O& y  IMcASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */
/ B& F) V/ Q' [* W! k+ U1 r" LMcASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);7 G; t/ [4 _% ]$ z* R
McASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */. O$ ~  J  }( @9 M" m
McASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
  u* ^3 e2 X5 s7 v8 z( oMCASP_RX_MODE_DMA);
5 _, z6 a- V& L/ C& |' Y) LMcASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,0 I* [; z$ |6 M; C9 N7 n
MCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */5 U5 c2 {7 Y" i9 u
McASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD,
6 ?# q9 n" @+ h  J# o* [MCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);. s- q- D5 m& }( v7 E6 l
McASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD, ) p  A! o+ t4 w- K
MCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */
. n7 g  K2 o: M) ?; s& e! EMcASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);% {. H, |7 X  O' [2 X
McASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE);
8 ^! D$ s1 f0 H6 L1 ^. P- f( k: PMcASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,9 I3 ?* g' K' R$ H8 ]3 a: \
0x00, 0xFF);
/* configure the clock for transmitter */9 d* p( k  b1 Q: |. {& d1 p' W
McASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);5 S  P2 t9 O4 j' i
McASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE); 9 b* O3 h7 n6 k, Q
McASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,
8 q$ w# c: h% d0x00, 0xFF);
8 o5 l- L/ O) ^: i0 B
0 y9 W7 p" b1 E/* Enable synchronization of RX and TX sections */ * o1 E% \* D9 ~/ u& t) N
McASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */" p. g; l* v4 u
McASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
- ^; A1 w* i. a) tMcASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*$ `) x/ K$ I; p  c5 i+ U
** Set the serializers, Currently only one serializer is set as
6 o: S0 }: x6 l* l# Y7 V6 Z1 U5 m** transmitter and one serializer as receiver.2 f: f4 Z7 n; H
*/
" f* q2 I6 a/ L/ `2 ]0 \McASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);4 ?: y  Y" O: z# |9 k; c
McASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*1 ?2 F/ ^, ]0 i0 {6 R+ ?# i0 X
** Configure the McASP pins * ?& j+ W# w2 s$ e+ ~; a$ U
** Input - Frame Sync, Clock and Serializer Rx
/ ]- M4 R$ a; B7 j** Output - Serializer Tx is connected to the input of the codec
5 x! @+ p' f% N6 t*/6 v9 e4 E1 J7 M$ o( @4 V9 M
McASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);; T8 \' r; `* E. Z
McASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));& Y. C3 u) p5 n2 b* l
McASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX
) d' w$ F7 L0 L5 f# I, x. f; Q. ^& I+ Z+ F| MCASP_PIN_ACLKX. _( Q: G9 ]- z4 P/ ?& z  E- N
| MCASP_PIN_AHCLKX
* P# C! N. t& }| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */
5 @: \& ~( |: G5 uMcASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR
. A$ i. y2 h4 b# K( j* z. o0 v" O| MCASP_TX_CLKFAIL " W4 a" f- e9 t6 Y
| MCASP_TX_SYNCERROR
$ |6 g0 N, z6 I; t. T* X| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR * O  [( I3 u! a0 K
| MCASP_RX_CLKFAIL* n9 |3 O9 F) N! ?8 e; ^/ z/ n
| MCASP_RX_SYNCERROR 3 F9 G6 k0 d: d+ y  V+ r# K
| MCASP_RX_OVERRUN);  e# R7 X" a- `1 Y# v2 w# \
}
static void I2SDataTxRxActivate(void)
, e$ j% ?5 W  G6 L; s: F$ b{
, ]/ w* C6 d" u3 {8 ?/* Start the clocks */5 Z. l9 {+ Z% L% t
McASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);9 T% B# G, y" X$ }) r$ C
McASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */
% i+ E! q+ q  ?EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,
5 C+ |3 X  f  ?& ?3 z. FEDMA3_TRIG_MODE_EVENT);0 p" s: U, O4 A0 L
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS,
* \/ v# v5 b7 j8 U1 u# bEDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */1 L: r/ I$ b1 O5 |/ q6 u: m- q
McASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);
, J+ D" }/ _, g2 [& W' ^McASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */
# M" d% ^7 e) B1 }( s' mwhile(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */
3 H( a; i: k; ?9 WMcASPRxEnable(SOC_MCASP_0_CTRL_REGS);
: \) ], t# z, i) ^. ~McASPTxEnable(SOC_MCASP_0_CTRL_REGS);/ x) f0 i! U7 Q. b
}

/ n" U8 \$ i0 \. N
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.
/ n/ e& H8 ^1 J! d4 c
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-17 11:11 , Processed in 0.039056 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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