完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
嗨,第一次PSoC4用户/NOOB在这里。我有一些CY8KIT-04942XX工具包(由客户芯片CY8C4245AXI-83),并且AM试图从CE9522(Diff. PreAmplifier)应用笔记中工作,将一个简单的多通道ADC采样集成到UART端口的概念证明中。然而,在启动ADC之后,该示例挂起等待ADC“完成”(DATaRADEY断言)-中断从未触发。当我用轮询循环来替换ADCII ISEnTrimeExchange(ADCJReTurnSytStand)的值时,它总是报告0(未完成)。
迄今为止尝试: 确保正确的芯片ISE选择(Project & Gt;设备选择器)更新所有的PopDebug。CysCH组件(Project & Gt;更新组件-大部分是版本1。x;现在版本2.30的ADC)从ISR中移除标志检查,以便任何命中的ToADCU-ISRH-HyllER将断定DATAARDY(用于测试)- NOTHING确认SAR ADC的配置:除了示例采样率r150 HZ以外的所有默认值,在其指定的范围内,我假设根据当前时钟配置的合法范围。时钟源内部采样模式自由运行VREF:内部1.024V,单端NEG。输入VSS结果格式签署,右对齐,128个平均值,ALT分辨率8位,平均模式“固定分辨率”A/B/C/D时钟:4个顺序通道:4(0, 1, 2,3 - 2,微分,2 SE)确认ADC引脚分配在*.CydWReWORK OK,并有效的试剂盒注意,“AdcIrqqSARTEX(ADCYIS)调用实例来注册中断处理程序不是在ADC文档中,而是“AdcIrqQueNable()”(在示例中没有使用)是。加上这似乎没有效果。 为了测试,我的“主循环”现在包括: 为((;)){(DATAARADY==0U)//lt;-挂在这里{///*等待ADC转换*/UARTURUUARTPUTSHIPE(“rNADC状态:”);UARTHARUARTEPTCHAR((UIT88T)ADCI ISEDAtiON转换(ADCL ReReTURN状态)+ CurrtToTo-ASCII); } /……未达到的代码在这里…} 输出是“ADC状态:0”消息的永无止境的流。 有什么特殊的(芯片专用的)吗?我错过了让ADC开始/完成转换,或者关于如何进一步调试这方面的任何建议? 谢谢! |
|
相关推荐
13个回答
|
|
欢迎来到论坛。
作为bobgoar说:你能把你的完整的项目,这样我们都可以在你所有的设置,一看。这样做,使用的创造者- >;文件& gt;创建工作包(最小的)并将结果文件。 鲍勃 |
|
|
|
|
|
|
|
我检查了样本程序,它正在工作和改变频道,并有广告数据。我唯一做的就是更新组件,运行在Psoc Creator 3.3上。我没有添加电阻在原来的设计只是加载了项目并运行它。我确实改变了参考电压从1.024到1.024旁路,因为它不喜欢时钟频率,它正在显示一个红色!它说时钟频率超出了要求。
|
|
|
|
Drmn:我删除了这个代码/调试:示例代码挂在这里;尝试看看ADC实际上是在做什么//UARTURUUARTPUTHORT(“rNADC状态:”);//UARTHARUARTPTCCHAR((UIT88T)ADCI ISEDATION转换(ADCL ReReTun-Stand)+ CurrtToTo-ASCII);
然后把它打开 如果(SW2a读())= CyDelay(5U);/*基本去抖动延迟*/IF(SW2a读())==0U){ChhannFrave= 1U;/*更新信道号*/Chans++:信道%= NosioFi信道;}(SW2BAd读入()==0U){;//等待按钮释放*/}} 现在它工作得很好。什么是I2C成分和SPIG1。它们在代码中无法启用,因此我禁用了它们。我还禁用了您的引导加载组件,因为我使用PSoC 4先锋板。你可以把它打开。此外,在原始代码中,端口0通道被设置为限制检测。在我的例子中,我把它关掉了,它工作了,但是如果你需要它,你可能需要在极限检测框中进行检查。此外,我改变了UART输出引脚到P0Y5从P4Y1,因为我没有使用CY8CKIT-04942XX套件。 DATAACQWorkStudio 2.1兆字节 |
|
|
|
博博加
我使用PSoC创建者3.3 CP2(3.3.0.7334),昨天更新。组件(假设这意味着ADC和TopDead中的其他块)从运行“更新组件”开始应该是最新的,虽然我只是物理上打开了ADC组件,以便将版本号与当前在Calgor的组件目录中显示的内容进行视觉比较。 我接受了你的建议,把引用改为“旁路”。这似乎并没有使我的代码在功能上有任何差异(仍然显示“ADC状态:0”总是),尽管在采样率/频率旁边的括号中显示的值范围扩大了这个变化。我没有任何警告/红色(!)关于ADC配置中的时钟速度的标记。 SPI和I2C块还没有做任何事情。我知道,一旦像ADC这样简单的东西在工作,我就需要那些接口,但是它们还没有被使用。(PSoC所使用的“专用硬件外设[SCB]和/或恰如其分地合成一个”的方法对我来说仍然是一种黑盒巫术。对于编译器/钳工错误来说,G似乎是确认支持I2C/SPI Master加上UART上行链路回到PC上的片上资源的最简单方式。在编译器输出中,我得到了与这些模块相关的几个时钟警告,但我怀疑它们与ADC问题有关。 更新:我意外地在终端模拟器程序被连接到它的虚拟编译器时拔出并复制了这个工具包。在此之后,我失去了在这个端口上连接/编程的能力,但是坐在终端输出上有四条光荣的线路:“通道1=-0043毫伏”。 经过一点实验,看起来ADC在启动后很短的时间内工作(比插入它所需的时间短,然后手动连接到结果的COM端口);令人惊讶的是,在连接到端口上的插件套装似乎不仅起作用,而且还起作用。在工具箱返回到挂起等待DATaRADE/非零ADC状态之前,我得到ADC读数几秒钟。插件循环后的终端输出: ADC状态:1=0091 mV ADC状态:0通道1=0088毫伏 ADC状态:0通道1=0086毫伏 ADC状态:0通道1=0083毫伏 ADC状态:0通道1=0079毫伏 ADC状态:0通道1=0078毫伏 ADC状态:0通道1=0016毫伏 ADC状态:0通道1=0012毫伏 ADC状态:0 ADC状态:0通道1=0011 mV ADC状态:0通道1=0007毫伏 ADC状态:0通道1=0006毫伏 […] ADC状态:0通道1=-0097毫伏 ADC状态:0通道1=-0098毫伏 ADC状态:0通道1=-0101毫伏 ADC状态:0 ADC状态:0 ADC状态:0 ADC状态:0 ADC状态:0 ADC状态:0 ADC状态:0 好像“某事”让ADC不高兴了一会儿。如果ADC在读出/轮询状态标志之间完成一次以上的扫描,或试图读取/查询“太快”,是否存在已知的问题? |
|
|
|
我在谈论你在第一篇文章中引用的示例项目。我必须更新这个例子并修正频率和参考电压。我能让它工作20分钟,然后我把它断开,把先锋工具箱放回箱子里。这可能是一个堆栈问题,尝试将它从100增加到400,看看它是否修复了它。你试过我发给你的程序了吗?
|
|
|
|
这是另一个你想复习的程序,它有一个6通道伏特表并在LCD上显示,它还写到一个终端程序。它是为CY8CKIT-04941XX,但伟大的CY8CKIT-049- 042XX板。我跑了好几个月。
SARMUXGLCD.BuffLe02.Zip 804.6 K |
|
|
|
谢谢你的建议。堆栈已经是0x400;我也尝试了堆堆;没有改变(它不应该使用堆,但是……)
我还没有尝试这些不同的例子,但我会有时间。由于这最终将被交付给客户,我真的很想了解正在发生的问题,而不是冰雹玛丽我的方式与不同的罐头代码样本,直到问题似乎消失(只有潜在地回来后)。 在原始代码中,端口0通道被设置为限制检测。 你可能在这里发现了什么!我发现我可以通过把我的手指揉搓在各自的模拟端口引脚上,使死机ADC在短时间内“复活”。??????!!)(PIN当前不连接/浮动,因为这基本上是软件烟雾测试)。这似乎是与条件检测特征一致的行为,但是禁用所有通道的“极限检测”,在ADC的“中断限制”下修改阈值/条件。组件没有效果。我将确保“中断限制”值*仅适用于至少一个通道启用“极限检测”功能,并且该中断将产生独立于(不门)基本ADC采样操作和状态报告,但希望有经验的人可以肯定。文档似乎暗示这是一个独立的特性,它产生一个单独的中断,允许CPU核心保持在睡眠状态(假设ADC完成的中断被禁用)直到极限条件发生。 我还试着从AppNoSE示例中删除OpAMP的东西,用模拟引脚替换这些输入,并将它们全部设置为单端。这改变了,但并没有消除,卡住的ADC行为(现在它往往更常返回值,但仍然可以通过在模拟引脚上运行手指来保持/松开)。 有什么想法吗? |
|
|
|
把手指放在针脚上会导致非常高的交流信号从空气中被检测到,这就是它工作的原因。C的易失性关键字是在声明变量时应用于变量的限定符。它告诉编译器,变量的值可以在任何时候改变——而编译器在附近找到的代码不需要采取任何行动。我认为你需要让你的中断变量变为易失性,因为在中断程序中有时是有用的。
|
|
|
|
蔡R2016 发表于 2019-10-16 10:58 “DATaRADY”标志已经被声明为易失性;这是我用来检测中断的任何命中(实际状态标志现在被忽略,但很好地调用这些变量也被存储到易失性)。同样,通过供应商提供的功能访问实际的状态和结果数据,“应该”处理这个细节(如果不是的话,我怀疑在这个问题上会有更多的问题!)特别是,在等待中断的情况下,ADC进程不断轮询ViaADCI ISEN转换(ADCL RealTurnStand状态),到目前为止,我还没有看到不伴随中断的非零结果。 所有编译器优化目前都已禁用(GCC命令行选项:-MCPU= CORTEX-M0-MTEMP- Wno -I.IGEnEdRead SoalsPSO4-4WA,-ALH= ${OutPudiDR}/${CopyFLIFLE } .LST-G -墙函数节-O0-FFAT LTO对象) 还有什么其他的想法吗? 谢谢! |
|
|
|
|
|
|
|
请参阅PrimeSype 4的工作区ZIP(DATAQQWorkStudio Cyrkky.CaseVo.01.zip)。除非有一些数据丢失了?
|
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
754个成员聚集在这个小组
加入小组2106 浏览 1 评论
1853 浏览 1 评论
3671 浏览 1 评论
请问可以直接使用来自FX2LP固件的端点向主机FIFO写入数据吗?
1786 浏览 6 评论
1536 浏览 1 评论
CY8C4025LQI在程序中调用函数,通过示波器观察SCL引脚波形,无法将pin0.4(SCL)下拉是什么原因导致?
572浏览 2评论
CYUSB3065焊接到USB3.0 TYPE-B口的焊接触点就无法使用是什么原因导致的?
424浏览 2评论
CX3连接Camera修改分辨率之后,播放器无法播出camera的画面怎么解决?
438浏览 2评论
386浏览 2评论
使用stm32+cyw43438 wifi驱动whd,WHD驱动固件加载失败的原因?
916浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-25 01:27 , Processed in 1.346247 second(s), Total 100, Slave 84 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号