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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 10303|回复: 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,
. q  [: r$ `' g5 o% uinput mcasp_ahclkx,+ ~5 W  g) }& H
input mcasp_aclkx,
* `' u  d, f% X7 d) y7 L  ]2 I9 {input axr0,: J6 T; E4 z( [) N3 T

3 {  U- V4 P; T4 Aoutput mcasp_afsr,% k/ [  V- j: S: a8 V& s
output mcasp_ahclkr,5 c0 M8 P) D1 _/ J3 A
output mcasp_aclkr,
+ S" K, q) J* C+ h' ioutput axr1,
3 [# l8 v; U3 q$ P2 i) c! o3 Y4 ^
assign mcasp_afsr = mcasp_afsx;- D6 n! F+ K' T2 @' A& j3 u
assign mcasp_aclkr = mcasp_aclkx;; c+ F  R$ T7 B  N" Z
assign mcasp_ahclkr = mcasp_ahclkx;
/ L9 h! [/ b9 Y4 n0 c' Jassign axr1 = axr0;
5 K6 y0 [( X* `8 _2 g& C: i

1 K( X9 G7 \7 u" B7 j
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。
- E6 j/ p7 j3 D  n1 o' i, p
static void McASPI2SConfigure(void)
$ h, ]( V0 u3 [- A{
8 J+ p5 |* Z1 ]6 B4 dMcASPRxReset(SOC_MCASP_0_CTRL_REGS);
3 n" s3 B0 K4 Z  i5 I  X% x. WMcASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */- Y; A6 k4 k: d- d( r
McASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);4 e% A( Y) Q' U' x! _7 n( K, `
McASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */) |; e; b) S' ~' w% p& F5 I$ j* B' j
McASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
1 E. T0 G: n/ A5 Z9 Z% Y& }7 }MCASP_RX_MODE_DMA);
+ [; r/ v! T' @6 aMcASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
& {8 L" H" k1 D% o1 h8 V% M+ I$ oMCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */. l8 y5 t" J5 {  o8 Q0 i- k
McASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD, & _5 w. Q: g6 w+ Z, }2 i
MCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);6 l) F! Q6 m( D* D
McASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD,
/ {+ S6 `# n. N$ Z( H2 F% cMCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */& P9 _7 `! ?: @0 h5 p
McASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);
8 `* W0 i" Z; G$ hMcASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE); + b- p( X  e: D, q+ e, D2 M
McASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,% f. \  M2 s, e* s
0x00, 0xFF);
/* configure the clock for transmitter */) s  _8 E" ?8 S3 Z( \' K4 n
McASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);5 |7 ^; Q' q: E$ j& f2 d. ?6 w
McASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE); ; K! i0 g( V( L+ H4 _: h$ c
McASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,
4 w* _2 ?* x) f  ^0x00, 0xFF);3 x6 V8 s0 w' e4 H" `, O7 n+ C
1 b3 X+ n3 g* u4 @, I* R" M
/* Enable synchronization of RX and TX sections */
2 J5 N: l) F/ D$ W; n' S8 mMcASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */
6 P6 u  s$ Q- t. e7 z# F8 yMcASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
+ @7 }4 `; i) u$ f, z* l, gMcASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*
' r% h) [+ _* t** Set the serializers, Currently only one serializer is set as
8 y) `% S* `. c$ ]3 p  _** transmitter and one serializer as receiver.
' y5 p) M1 b$ w9 [$ V5 x) `4 {*/
7 ?+ D3 J$ [/ R! e. |McASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);' ~: g; t" k( _: p) A( x; G$ Q
McASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*9 I1 P4 _& A; T
** Configure the McASP pins
3 a8 h/ J+ u, A** Input - Frame Sync, Clock and Serializer Rx
; N8 ~  C7 Y0 ?' A5 E- E, p  [5 |  e** Output - Serializer Tx is connected to the input of the codec , g/ f* v7 p  u6 P( \
*/
2 r* Z/ r& [; A* ^  W3 rMcASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);3 {9 {1 Z7 D: \. b  |
McASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));
* }5 }6 ^+ A0 q/ |McASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX
$ F' D3 H6 J; Z/ m4 a| MCASP_PIN_ACLKX
6 q7 X5 W+ Y# O$ \| MCASP_PIN_AHCLKX8 `8 O% G. @. x+ V; ]+ W- P# ^
| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */
  w1 B6 M  n8 N5 {/ |/ P% CMcASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR - _! N0 F$ O  B$ P# b4 I6 b* F1 A! E$ ~; Q4 x
| MCASP_TX_CLKFAIL 9 e7 X8 |. o' ^! Z
| MCASP_TX_SYNCERROR6 D# j6 R+ v4 y+ s
| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR
7 T8 g0 p5 y- q& e9 H| MCASP_RX_CLKFAIL, Y+ ?, m. e6 e1 j0 l. |
| MCASP_RX_SYNCERROR " ?! m( W; w/ q8 b9 {; b* T3 [
| MCASP_RX_OVERRUN);/ B# x4 S' L6 ^5 Y7 r/ D# ~, d
}
static void I2SDataTxRxActivate(void)+ A& m7 {3 q+ p8 Y
{, K. d. t, M- l9 g) I/ k% [1 M
/* Start the clocks */* F& ?6 k" v" p
McASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);& B) V% C6 v* Q
McASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */
6 C% I) {  `# u9 C5 HEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,' j( N/ `( b4 M
EDMA3_TRIG_MODE_EVENT);
0 Q- z. k) E0 H" ?% g: p3 GEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS,
1 G( _3 l6 f8 D- @# n) WEDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */& I0 \2 w% J+ j- S
McASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);) y+ B  g: G8 A1 P* R- x4 b
McASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */
6 W9 A6 C! S2 O7 }9 Xwhile(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */
8 O% _8 T# d( P3 Q; d6 ~) Q# ]McASPRxEnable(SOC_MCASP_0_CTRL_REGS);
) e: H0 U. b9 ?/ O1 C, n6 _/ y# u; UMcASPTxEnable(SOC_MCASP_0_CTRL_REGS);9 ]4 Z) o7 y' Q) u; o' k
}
% o4 G6 M" ^2 t" `- [* w, x: K3 ~
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.
* Z* B# @6 Z( O$ f8 j* Z; M
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-3 05:00 , Processed in 0.038613 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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