Cypress技术论坛
直播中

曾艳

7年用户 257经验值
私信 关注
[问答]

差模问题中的PSOC 5和模拟MUX信号开始转换

你好
我目前已经迁移到我的项目从一个PSoC 3-5(cy8ckit-014)。我的模拟设计使用模拟多路复用器的音序器在差分模式有6个双输入的GPIO。复用器是直接连接到一个差delsig ADC,16位@ 1000 SPS多采样模式。转换结果存储在一个数组中,并在ADC的中断有一个逻辑停止转换,改变多路信号并开始转换了。
在PSoC 3中,这种设计是完全可行的。但当我切换到PSoC 5开始我从ADC得到奇怪的结果。一些输入通道转换的ADC,但输出值有明显的偏移,而且似乎attenuaded。其他渠道(主要是偶数)的回报总是相同的价值,无论对GPIO应用电压。此外,这似乎与PSoC复位输出值变化。
我试图使用模拟多路复用器和多路模拟音序器,没有运气。当我连接引脚直接到ADC,转换工作正常。在单模式中使用模拟多路复用器也是有效的。所以,此刻,我结束了两个独立的器驱动ADC的输入。它工作,但我的模拟路由现在看起来像意大利面条。
我使用PSoC创建者1生产(7727)。
如果需要,我可以张贴更多的细节。
还有其他人与这些黑客有类似的问题吗?或是有人已与差模器的工作项目?我会感激任何信息。
当做
汤姆

以上来自于百度翻译


     以下为原文
   Hello
     I have currently migrated my project from a PSoC 3 to 5 (CY8CKIT-014). My analog design uses an Analog Mux Sequencer in differential mode with 6 dual inputs from GPIO. The Mux is connected directly to a differential DelSig ADC, 16-bit @ 1000 sps in multi-sample mode. Conversion results are stored in an array, and in the ADC's interrupt there is a logic to stop conversion, change mux channel and start conversion again.
     In the PSoC 3 this design was working perfeclty. But when I switched to the PSoC 5 I started to get weird results from the ADC. Some input channels are converted by ADC, but output values have significant offset, and seem to be attenuaded. Other channels (mainly evenly numbered) return always the same value, regardless of voltage applied to GPIO. Furthermore this output value seems to change with PSoC reset.
     I tried to use both Analog Mux and Analog Sequencer Mux, with no luck. When I connect pins directly to the ADC, conversion works properly. Using the Analog Mux in Single mode also works. So, at the moment, I ended up with two seperate muxes to drive both inputs of the ADC. It works, but my analog routing now looks like a spaghetti.
     I am using PSoC Creator 1.0 Production (7727).
     I can post more details if necessary.
      
     Does anybody else had similar issues with those muxes? Or mabye there is somebody who has working project with muxes in differential mode? I would be grateful for any iformation.
      
     Regards
     Tom
     
  
     
  

回帖(3)

姜钰

2019-7-23 13:31:26
我有一个类似的问题-我试图转换关于使用MUX定序器与SAR ADC使用Delta Sigma模数转换器。结果是TU-MUX似乎没有在频道之间切换-我总是得到相同的数据。原因是ADC的EOC信号没有被路由到MUX输入(但我知道它是有效的,因为我用EOC来触发DMA请求)。
我通过在软件中做任何事情来解决它(阅读结果和切换频道)。

以上来自于百度翻译


     以下为原文
  I had a similiar problem - I tried to convert the AppNote about using the Mux Sequencer with the SAR ADC into using the Delta-Sigma-ADC. The result was that thet mux didn't seem to switch between the channels - I always got the same data for all of them. The reason semed to be that the EOC signal from the ADC didn't got routed to the Mux input (but I know it worked because I used EOC to trigger the DMA requests).
    I solved it by doing everything in software (reading the result and switching the channel).
举报

马昱

2019-7-23 13:36:30
你好汤姆/HLI,
PSOC5中ADC的EOC信号不能连接到中断组件。这一勘误表已被记录为PSOC5 ES1。
它陈述如下:
Δ∑ADC转换结束问题定义转换结束(EOC)由状态寄存器位、抽取器中断、抽取器DMA和DSI可路由信号来表示。DSI可路由信号不工作。CPU可以轮询状态寄存器位或使用抽取器中断或抽取器DMA。参数影响NA触发条件(NA)的影响范围,PSoC Creator分量的ADC转换结束(EOC)输出只能用于路由到一个DMA信道。EOC输出不能用于通过DSI路由到任何其他数字资源。抽取器DMA路由绕过DSI路由避免了这个问题。集成到PSoC创建者组件中的抽取器中断也绕过DSI路由。所有其他可能的EOC连接都需要DSI路由。围绕CPU工作可以在状态寄存器中查询EOC位,或者使用抽取器中断来使用固件和控制寄存器向数字系统发出信号。固定状态硅修订版可在ES2中使用。
在这里可以找到:HTTP://wwwyCyp.com/?DOCID=27094
当用于ADC的2个或更多信道时,ADC应该配置为多信道模式。在每次频道更改之后,StaseCurror()和CaseExchange()API可以分别用于启动和停止转换。

以上来自于百度翻译


     以下为原文
  Hi Tom/ hli,
     
    The EOC signal of ADC in PSoC5 cannot be connected to interrupt component. This errata has been documented for PSoC5 ES1.
    It states as follows:
     Delta Sigma ADC End-of-Conversion
■ PROBLEM DEFINITION
End-of-conversion (EOC) is signaled by a status register bit, decimator interrupt, decimator DMA, and DSI
routable signal. The DSI routable signal does not work. The CPU can poll the status register bit or use the
decimator interrupt or decimator DMA.
■ PARAMETERS AFFECTED
NA
■ TRIGGER CONDITION(S)
NA
■ SCOPE OF IMPACT
The ADC end-of-conversion (EOC) output of the PSoC Creator component can only be used to route to one
DMA channel. The EOC output cannot be used to route through the DSI routing to any other digital resources.
The decimator DMA route bypasses the DSI routing avoiding this issue. The decimator interrupt integrated
into the PSoC Creator component also bypasses the DSI routing. All other possible EOC connections require
DSI routing.
■ WORKAROUND
The CPU can poll the EOC bit in the status register or use the decimator interrupt to signal the digital system
using firmware and a control register.
■ FIX STATUS
Silicon revision fix available in ES2.
     
    It can be found here: http://www.cypress.com/?docID=27094
    When 2 or more channels are used for ADC, then the ADC should be configured for multichannel mode. The StartConvert() and StopConvert() APIs can be used to start and stop the conversion, respectively, after every channel change.
举报

曾艳

2019-7-23 13:51:22
Hli,DASG -谢谢你的回答。
在我的设计中,我没有使用EOC信号。AMUX切换和采样重新启动代码驻留在ADC中断文件中。我发现AMUX在连接两个相同的模拟全局总线(P6[ 2)和P6(6)在我的情况下)时,其行为开始奇怪。当我使用其他引脚时,AMUX似乎工作正常。
我看了PSoC勘误表,但是我找不到任何与这个问题相关的项目。
我已经附加了一个简单的项目来显示我的问题。AMux的通道0, 2和3都应该输出相同的值。通道1输入反向,所以它应该输出相似的值,但是改变了符号。但是,输出值看起来像这样(通道0到3;输入电压大约为1.2V,具有几个MV差):
20795—260—6190—12573
所以只有通道1显示正确的值。当我使用PIN P6〔4〕和P6〔2〕时,得到正确的结果:
208—224—207—220
我的设计有错误吗?或者PSoC Creator AMux路由可能有些bug?
dasg:
在你的最后一句话中,你写了“多渠道模式”。您是指ADC配置屏幕中的“多示例”转换模式,还是其他设置?
问候汤姆
阿姆斯特泰斯
1.1兆字节

以上来自于百度翻译


     以下为原文
  Hli, dasg - thank you for your answers. 
    In my design I'm not using the EOC signal. AMux switching and sample restart code resides in the ADC Interrupt file. I have discovered that the AMux starts to behave oddly when I connect it with two pins sharing the same Analog Global bus (P6[2] and P6[6] in my case). When I am using other pins, the AMux seems to work correctly. 
    I looked at the PSoC errata, but I couldn't find any item related to this issue.
    I have attached a simple project showing my problem. Channels 0, 2 and 3 of the AMux should all ouptut the same value. Channel 1 inputs are reversed so it should output similiar value, but with changed sign. But, output values look like this (channel 0 to 3; input voltages are about 1.2V with a few mV difference):
     20795 -260 6190 12573
    So only channel 1 shows correct value. When I use pins P6[4] and P6[2] I get the correct results:
    208 -224 207 220

    Do I have an error in my design? Or maybe there is some bug in the PSoC Creator AMux routing?
     
    @dasg:
    In your last sentence you wrote about "multichannel mode". Did you mean "Multi Sample" conversion mode in ADC configuration screen, or some other setting?
     
    Regards
Tom



举报

更多回帖

发帖
×
20
完善资料,
赚取积分