完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
大家好,
我需要接口两个孤立的ADC,如AD7403从模拟设备到PSoC 5LP。 ADC发出1和0的数据流,这个流的平均值代表模拟值。 当然,一个简单的RC滤波器可以用来产生一个移动平均值,它可以由PSoC的ADC来采样,但是我想知道是否有一个更优雅的解决方案。 目前,我正在运行一个单一的AD7403在5兆赫(最低可能的频率)。 ADC的数字输出由状态寄存器获取。 然后,DMA将数据传送到数字滤波器块,在这里,我使用一个SIS4低通滤波器。 这样,我在DMA上创建了5 MHz的单字节传输请求。 到目前为止,它看起来还不错,但我还没有检查数据的完整性。 DMA真的能处理这样的频率吗? 我需要接口两个ADC,可能在更高的频率(每个10兆赫)-你认为我的解决方案是可行的这样的应用程序? 还有别的选择吗? 我在PSoC Creator和AD7403的数据表中附加了一个小例子。 谢谢你 AD7403.PDF 557.1 K ISOADC.CyWrk.CaseV01.Zip 535.4 K 以上来自于百度翻译 以下为原文 Hi everyone, I need to interface two isolated ADCs like the AD7403 from Analog Devices to the PSoC 5LP. The ADC puts out a data stream of 1 and 0 and the average of this stream represents the analog value. Of course a simple RC filter could be used to generate a moving average which could be samples by PSoC's ADC, but I was wondering if there is a more elegant solution to this. At the moment I am running a single AD7403 at 5 MHz (the lowest possible frequency). The digital output of the ADC is acquired by a status register. A DMA then transfers the data to the digital filter block where I use a SINC4 low pass filter. This way I am creating single byte transfer requests at 5 MHz on the DMA. So far it seems to be working fine but I have not checked the integrety of the data. Can the DMA really handle such a frequency? I need to interface two of those ADCs and possibly at higher frequencies (10 MHz each) - do you think my solution is viable for such an application? Is there an alternative? I attached a small example in PSoC Creator and the datasheet of the AD7403 Thank you
|
|
相关推荐
5个回答
|
|
|
推荐的方法是在输入的比特流上使用SUNC过滤器(我认为AD7403有一个APP注释详细说明)。你还可以做的是收集例如64K的脉冲,并计算其中有多少个是1s。我做了这个测试项目,并确认它是有效的。缺点是你得到的响应比使用数字滤波器慢。
以上来自于百度翻译 以下为原文 The recommended way is to use a sinc-filter on the incoming bitstream (I think there is an app note for the AD7403 detailing that). What you also can do is e.g. collecting e.g. 64k pulses and count how many of these are 1s. I did this as a test project and can confirm that it works. Disadvantage is that you get a slower response than using a digital filter. |
|
|
|
|
lxhzx 发表于 2018-10-26 13:20 你好, 感谢重播! 一个柜台听起来确实很简单。 我假设我可以调整带宽的精度(反之亦然),当我调整了多少个脉冲计数。 谢谢 以上来自于百度翻译 以下为原文 Hi, thanks for the replay! A counter sounds pretty straightforward indeed. I suppose I can trade accuracy for bandwidth (and vise versa) when I adjust how many pulses I count. Thanks |
|
|
|
|
|
马丁,
平均1位输入的一种方法是使用定制的LPFLASH组件,它是简单的一阶指数滤波器。参见这里的示例项目: HTTP://wwwyCyp.com /Cufft/370701 代替使用内部ADC,只需将滤波器输入总线宽度设置为一位,并将其附加到AD7403输出。滤波器输出是以较低速率的指数平均比特流。可以通过使用PSoC数字滤波器进一步平均它。例如,以20MHz的ADC速率和滤波器倾覆长度256开始,抽取的输出将是在4~80kHz的速率下,这可以容易地被PSoC数字滤波器进一步滤波。 根据频闪频率和其他PSoC资源,可以级联多个LpFig组件以制作更高阶的滤波器。将数据传送到DFB的最简单的方法是直接使用API(用于较低速度)读取LPFilter输出;使用DMA附加状态寄存器并使用StasuReg DMA DFB传输。 ODISSEY1 以上来自于百度翻译 以下为原文 Martin, one way of averaging 1-bit input is to use a custom LPFilter component, which is simple first-order exponential filter. See example project here: http://www.cypress.com/comment/377701 Instead of using internal ADCs, just set Filter input bus width to a single bit, and attach it to the AD7403 output. The Filter output is an exponentially-averaged bitstream at lower rate. You can further average it by using PSoC digital Filter. For example, starting with ADC rate of 20MHz, and Filter dumping length 256, the decimated output will be 4-bit at rate of ~80kHz, which can easily be filtered further by the PSoC Digital Filter. It is possible to cascade several LPFilter components to make a higher-order filter, depending on strobe frequency and other PSoC resources. Simplest way to transfer data to DFB is to read LPFilter output directly using API (for lower speed); to use DMA attach a Status Register and use StatusReg-DMA-DFB transfer. /odissey1 |
|
|
|
|
|
马丁,
附件是使用LpFug组件的比特流集成的示例。为了模拟ADC比特流,它使用棱镜组件,利用旋转编码器来改变脉冲密度。首先使用LpFig对BITSRAMM进行聚合,并将其抽取到较低的数据速率,该数字滤波器组件可接受。使用多图绘制SW显示数据。项目使用大约30%的PSoC5资源,表明在20MHz速率下同时采样两个比特流是可行的。 项目文件附呈。 经营该项目所需的其他图书馆: 转轴编码器用按钮开关部件的四位译码器 CY8CKIT-059原型试剂盒注释库 ODISSEY1 多字符 2.1兆字节 LpFiffTy.Ay0.0.PDF 1.3兆字节 LpFieldLyB.CyWrk.CaseVo.01.Zip 1.2兆字节 LPFI比特流积分器DMAY01-1000.CyWrk.SaCuvi01.Zip 233.5 K 以上来自于百度翻译 以下为原文 Martin, Attached is an example of the bitstream integration using LPFilter component. To simulate ADC bitstream it uses a PriSM component, which pulse density is being varied using rotary encoder. The bitsream first aggregated using LPFilter and decimated to lower data rate, acceptable to the digital Filter component. The data is displayed using the Multichart plotting SW. Project uses approx 30% of PSoC5 resources, indicating that sampling of two bitstreams simultaneously is feasible at about 20MHz rate. Project files are attached. Other libraries needed to operate the project: Quad Decoder with Button Switch component for rotary shaft encoders Annotation library for CY8CKIT-059 Prototyping Kit /odissey1
|
|
|
|
|
nvwuwy 发表于 2018-10-26 14:04 您好,ODISSEY1, 谢谢你的回答。 LPFLASH似乎是一个非常有用的组件——不仅仅是针对单比特的比特流! 为什么这些有用的东西不包括在PSoC Creator身上? 数据表上的日期是“2016年8月21日修订版”。 谢谢你的支持。 以上来自于百度翻译 以下为原文 Hello odissey1, thank you for the answer. The LPFilter seems to be a very usefull component - not just for single-bit bitstreams! Why are such usefull things not included in PSoC Creator? The date on the datasheet says "Revised August 21, 2016". Thanks for your support. |
|
|
|
|
只有小组成员才能发言,加入小组>>
787个成员聚集在这个小组
加入小组cyUSB3014一直显示2.1,不能到3.0情况,谁遇到过
7315 浏览 0 评论
2484 浏览 1 评论
2178 浏览 1 评论
4042 浏览 1 评论
请问可以直接使用来自FX2LP固件的端点向主机FIFO写入数据吗?
2087 浏览 6 评论
CY8C4025LQI在程序中调用函数,通过示波器观察SCL引脚波形,无法将pin0.4(SCL)下拉是什么原因导致?
7807浏览 2评论
CYUSB3065焊接到USB3.0 TYPE-B口的焊接触点就无法使用是什么原因导致的?
6371浏览 2评论
CX3连接Camera修改分辨率之后,播放器无法播出camera的画面怎么解决?
757浏览 2评论
729浏览 2评论
使用stm32+cyw43438 wifi驱动whd,WHD驱动固件加载失败的原因?
8213浏览 2评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-12 07:20 , Processed in 5.527922 second(s), Total 51, Slave 44 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
499