1
完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
问题/问题:
我使用硬件UART(RX8或TX8UM),在CPS8C21x34系列的PSoC 1设备中使用CasSncsCdS/StRISSENDS/CSDADC UM。我的UART工作不正常。 原因: 最可能的原因是RX8/TX8UM的时钟输入。如果时钟输入是VC1、VC2或VC3分频器中的任何一个,那么在程序执行期间,将从那些用于UART的时钟源获得的预期波特率将被破坏。原因是基于分辨率和扫描速度CSD/CSDADC/SrimStudio UM修改VC1、VC2和VC3除法器。关于它们如何影响的信息和细节可以在UM数据表中找到(下图)。 因此,如果将RX8的输入时钟设置为VC2,并确定波特率为150 kSPS(SysCLK=24MHz,VC1=SysCLK/16;VC2=VC1/10)。在CSD分辨率为12位和正常扫描速度的情况下,波特率改变为750 kSPS(SysCLK=24,VC1=SysCLK/4,VC2=VC1/8)。当调用CSDJSTATE()API时发生这种情况。WHSEER将使用StaskSnice,这些分频器的值不暴露给用户,并且它们随每个传感器而变化。 解决方案/可能的解决方案: 为输入时钟使用外部时钟选项(ROWY-EntPuxx行),并将时钟路由到引脚。如果使用CSD/CSDADC,则基于所选择的分辨率和扫描速度计算CY8C21x34中的波特率,并将另一端UART RX/TX调谐到所获得的波特率。这个bug不局限于UART,它对于所有来自数字块到中断的源都是有效的,比如使用这些系统时钟分频器的VC3 ISR。UART是一个例子,因为它是最常见的问题所面临的客户试图沟通CSD按钮状态超过UART线。 请自由地把你的想法添加到其他可能的解决方案上。 以上来自于百度翻译 以下为原文 Issue/Problem: I am using hardware UART (RX8 or TX8 UM) with CapSense CSD/SmartSense/CSDADC UM in CY8C21x34 family of PSoC 1 devices. My UART is not working properly. Cause: Most probable cause is the clock input of RX8/TX8 UM. If the clock input is any of the VC1, VC2 or VC3 dividers, then the intended baud rate obtained from those clock sources for the UART will be destroyed during program execution. The reason being based on Resolution and Scanning speed CSD/CSDADC/SmartSense UM modifies VC1, VC2 and VC3 dividers. The information and details on how they impact can be found in the UM datasheet (below figure). So if you set the input clock of RX8 as VC2 and fix a baud rate of 150 ksps (SysClk = 24MHz, VC1 = Sysclk/16; VC2 = VC1/10). With a CSD resolution of 12 bit and normal scan speed, your baud rate changes to 750 ksps (Sysclk = 24, VC1 = Sysclk/4, VC2 = VC1/8). And this happens when CSD_Start() API is called. Worser would be using SmartSense, where the values of these dividers are not exposed to user and they change with each sensor. Solution/Possible workarounds:
Please feel free to add your thoughts on other possible workarounds too. |
|
相关推荐
3个回答
|
|
&…继续& GT;
从附上的图像,您可以计算VC1,VC2和VC3时钟给定的CSD分辨率和扫描速度。 因此,如果在全局参数(SysCLK=24 MHz,VC1=SysCLK/16,VC2=VC1/10)中设置RX8时钟输入为VC2,并且具有以12位分辨率和正常扫描速度配置的CSD。在CSDJSTATE()API执行期间,VC1、VC2和VC3的值分别被改变为4, 8和128。因此,您的RX8输入时钟变为750千赫(VC1=SysCLK/4,VC2=VC1/8),而不是预期的150 kHz。从而完全摧毁了UART波特率。随着StruSt回事,情况恶化,因为这些分频器值不暴露给用户,并且它们为每个传感器改变。 可能的解决方案/解决方法: 使用UART的外部时钟选项(使用ROWIN IMPUTX X或RooOutOutPuxx线和路由时钟通过PIN)用于CSD/CSDADC UMS,根据分辨率和扫描速度找出VC1、VC2和VC3除法器。因此,在CY8C21x34族中计算UART的波特率,并且在另一侧使用相同的波特率。这个问题不仅仅局限于UART。它适用于从数字块到中断的所有源(例如VC3 ISR),这些时钟分频器使用这些系统时钟分频器。UART的选择是因为它是最常见的问题,客户最终尝试在UART线路上传输传感器状态。 CSDL协议 122.1 K 以上来自于百度翻译 以下为原文 < .... continued> From the attached image, you can calculate VC1, VC2 and VC3 clocks for a given CSD resolution and Scan speed. So, if you have set the RX8 clock input to be VC2 with a frequency of 150 KHz in global parameters (SysClk = 24 MHz, VC1 = Sysclk/16, VC2 = VC1 / 10) and have a CSD configured at 12 bit resolution and Normal scan speed. During CSD_Start() API execution, the values of VC1, VC2 and VC3 are changed as 4, 8 and 128 respectively. As a result of this, your RX8 input clock becomes 750 KHz (VC1 = Sysclk/4, VC2 = VC1 / 8) instead of the intended 150 KHz. Thus completely destroying the UART baud rate. With SmartSense the situation worsens, as these divider values are not exposed to user and they change for each sensor. Possible Solutions/Workaround:
|
|
|
|
另一个选择是从PWM模块导出UART时钟。PWM输入时钟应设置为系统时钟。设置PWM的周期值配置UART波特率。
然而,该方法消耗1或2个数字块。 以上来自于百度翻译 以下为原文 One more option is to derive the UART clock from a PWM module. PWM input clock should be set to system clock. Setting the period value of the PWM configures the UART baud rate. However, this method consumes 1 or 2 digital blocks . |
|
|
|
事实证明,在放置CSD之后,对于RX或TX实现只剩下1个数字块。没有PWM模块的位置。
朋友,以前的帖子来自我,对CY8C21X34设备无效。但是,您可以在PSoC 1系列中使用它,即使在放置CAPSYSE模块之后,也可以使用足够的数字块。 以上来自于百度翻译 以下为原文 It turns out that after placing CSD, there is only 1 digital block left for RX or TX implementation. There is no place for PWM module . Friends, the previous post from me, is not valid for CY8C21x34 devices. But, you can use it in PSoC 1 families where sufficient digital blocks are available even after placing capsense module. |
|
|
|
只有小组成员才能发言,加入小组>>
754个成员聚集在这个小组
加入小组2113 浏览 1 评论
1860 浏览 1 评论
3673 浏览 1 评论
请问可以直接使用来自FX2LP固件的端点向主机FIFO写入数据吗?
1794 浏览 6 评论
1540 浏览 1 评论
CY8C4025LQI在程序中调用函数,通过示波器观察SCL引脚波形,无法将pin0.4(SCL)下拉是什么原因导致?
582浏览 2评论
CYUSB3065焊接到USB3.0 TYPE-B口的焊接触点就无法使用是什么原因导致的?
434浏览 2评论
CX3连接Camera修改分辨率之后,播放器无法播出camera的画面怎么解决?
445浏览 2评论
393浏览 2评论
使用stm32+cyw43438 wifi驱动whd,WHD驱动固件加载失败的原因?
1021浏览 2评论
小黑屋| 手机版| Archiver| 德赢Vwin官网 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-31 02:12 , Processed in 1.021733 second(s), Total 81, Slave 65 queries .
Powered by 德赢Vwin官网 网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
德赢Vwin官网 观察
版权所有 © 湖南华秋数字科技有限公司
德赢Vwin官网 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号