完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
嗨,
我正在尝试在SPC560D40L1上设置模拟转换。我在HAL配置中激活了ADC,定义了一个由通道0(引脚PB4上的ADC1_P [0])组成的adc转换组。 ADC没有完成样品。 ADCD2状态为ADC_ACtiVE,ADC_MSR.ADCSTATUS为0x4(采样)。缓冲区中的值保持不变。 转换组“精确度”的我的设置: - 线性,最大顺序:4 - 看门狗功能全部禁用 - 频道设置:初始值:0,频道数:1 - 时间:CTR0_INPLATCH = 1,OFFSHIFT = 0,INPCMP = 2,INPSAMP = 9,CTR1,2相同 - 没有使用回调 在eDMA_MUX_Settings中,ADC使用DMA2。 我的程序看起来像这样: int main(void) { uint16_t adcBuffer [4]; componentsInit(); osalIsrEnable(); adcStart(& ADCD2,NULL); adcStartConversion(& ADCD2,& adc1_group_precision,& adcBuffer [0],4); 而(1) { } } ADC和eDMA的寄存器似乎是正确的,时钟设置应该是正确的,我在PLS-Debugger中找不到寄存器ME_PCLT33(32和44都在那里)。 感谢帮助。 StefanP 顺便说一下,无法在转换组设置中选择ADC通道44。 以上来自于谷歌翻译 以下为原文 Hi, I'm trying to setup an analog conversion on SPC560D40L1. I activated the ADC in HAL configuration, defined a adc-conversion-group that consists of channel 0 (ADC1_P[0] on Pin PB4). The ADC does not finish the sample. The ADCD2 state is ADC_ACTIVE and the ADC_MSR.ADCSTATUS is 0x4(Sample). The values in the buffer stay unchanged. My Settings for the conversion group ''Precision'': - Linear, Max Sequential: 4 - Watchdog functions are all disabled - Channel Settings: Inital: 0, Number of channels: 1 - Timing: CTR0_INPLATCH = 1, OFFSHIFT = 0, INPCMP = 2, INPSAMP = 9, CTR1,2 the same - No callbacks are used In the eDMA_MUX_Settings, ADC uses DMA2. My Programm looks like this: int main(void) { uint16_t adcBuffer[4]; componentsInit(); osalIsrEnable(); adcStart(&ADCD2, NULL); adcStartConversion(&ADCD2, &adc1_group_precision, &adcBuffer[0], 4); while(1) { } } The registers of ADC and eDMA seems to be right, the Clock Settings should be right, I can't find register ME_PCLT33 in the PLS-Debugger (32 and 44 are there). Thanks for help. StefanP By the way, ADC-Channel 44 can not be selected in the Conversion Group Setup. |
|
相关推荐
7个回答
|
|
嗨Stefan,
你的应用程序运行良好。 1)循环中只有1个问题。 虽然(1){}被hightec编译器''跳过''。 os-less退出,您将通过DMA丢失转换结束。请添加osalThreadSleepMilliseconds(500);在你的循环中 而(1) { osalThreadSleepMilliseconds(500); 0x000024D6:70 60 01 F4 E_LI R3,0x1F4 0x000024DA:79 FF FF 67 E_BL osalThreadSleep(0x00002440) 0x000024DE:E8 FC SE_B 0x000024D6 ADC高电平驱动器状态良好后ADC_READY ;-) 2)关于ME_PCLT33: 通常,要访问所有寄存器,您可以在PLS调试器中使用watch变量 复制粘贴 监视窗口中的((ME_tag *)(0xC3FDC000))不适用于保留的内存。 (参考手册) 3)关于频道44:我已经参考了参考手册..在D系列中,只有12个标准频道从32到43。 我在等你的反馈 最好的祝福 Erwan Yvin 嗨, 我正在尝试在SPC560D40L1上设置模拟转换。我在HAL配置中激活了ADC,定义了一个由通道0(引脚PB4上的ADC1_P [0])组成的adc转换组。 ADC没有完成样品。 ADCD2状态为ADC_ACTIVE,ADC_MSR.ADCSTATUS为0x4(采样)。缓冲区中的值保持不变。 转换组“精确度”的我的设置: - 线性,最大顺序:4 - 看门狗功能全部禁用 - 频道设置:初始值:0,频道数:1 - 时间:CTR0_INPLATCH = 1,OFFSHIFT = 0,INPCMP = 2,INPSAMP = 9,CTR1,2相同 - 没有使用回调 在eDMA_MUX_Settings中,ADC使用DMA2。 我的程序看起来像这样: int main(void) { uint16_t adcBuffer [4]; componentsInit(); osalIsrEnable(); adcStart(& ADCD2,NULL); adcStartConversion(& ADCD2,& adc1_group_precision,& adcBuffer [0],4); 而(1) { } } ADC和eDMA的寄存器似乎是正确的,时钟设置应该是正确的,我在PLS-Debugger中找不到寄存器ME_PCLT33(32和44都在那里)。 感谢帮助。 StefanP 顺便说一下,无法在转换组设置中选择ADC通道44。 以上来自于谷歌翻译 以下为原文 Hi Stefan , your application is working well. 1) Just 1 issue in your loop. While(1) {} is ''skipped'' by the hightec compiler. os-less is exited and you lose your end of conversion by DMA. please add osalThreadSleepMilliseconds(500); in your loop while(1) { osalThreadSleepMilliseconds(500); 0x000024D6: 70 60 01 F4 E_LI R3,0x1F4 0x000024DA: 79 FF FF 67 E_BL osalThreadSleep (0x00002440) 0x000024DE: E8 FC SE_B 0x000024D6 }After the state of ADC high level driver is well ADC_READY ;-) 2) About ME_PCLT33 : generally , to access to all registers you can use watch variable in PLS debuggers copy-paste ((ME_tag*)(0xC3FDC000)) in Watch windows Non-Applicable for Reserved memory. (cf Reference Manual) 3) Concerning the channel 44 : i have checked in the reference manual .. in the D Family there are only 12 standards channels from 32 to 43. i am waiting for your feedback Best regards Erwan Yvin Hi, I'm trying to setup an analog conversion on SPC560D40L1. I activated the ADC in HAL configuration, defined a adc-conversion-group that consists of channel 0 (ADC1_P[0] on Pin PB4). The ADC does not finish the sample. The ADCD2 state is ADC_ACTIVE and the ADC_MSR.ADCSTATUS is 0x4(Sample). The values in the buffer stay unchanged. My Settings for the conversion group ''Precision'': - Linear, Max Sequential: 4 - Watchdog functions are all disabled - Channel Settings: Inital: 0, Number of channels: 1 - Timing: CTR0_INPLATCH = 1, OFFSHIFT = 0, INPCMP = 2, INPSAMP = 9, CTR1,2 the same - No callbacks are used In the eDMA_MUX_Settings, ADC uses DMA2. My Programm looks like this: int main(void) { uint16_t adcBuffer[4]; componentsInit(); osalIsrEnable(); adcStart(&ADCD2, NULL); adcStartConversion(&ADCD2, &adc1_group_precision, &adcBuffer[0], 4); while(1) { } } The registers of ADC and eDMA seems to be right, the Clock Settings should be right, I can't find register ME_PCLT33 in the PLS-Debugger (32 and 44 are there). Thanks for help. StefanP By the way, ADC-Channel 44 can not be selected in the Conversion Group Setup. |
|
|
|
嗨二湾,
不,这不能解决问题。正如您在屏幕截图中看到的那样,即使在20秒之后并且没有写入adcBuffer,acd仍在采样。我不知道在哪里搜索。 关于通道44:我的参考手册将PB12显示为ADC1_S [12],并在第656页上的图像(Doc ID 16886 Rev 6)上显示ADC1_S [0](Ch 32)... ADC [12](Ch 44) 。 问候 StefanP 以上来自于谷歌翻译 以下为原文 Hi Erwan, no, this doesn't solve the problem. As you can see in the screenshot, acd is still sampling, even after 20s and no adcBuffer is written. I don't know where I have to search. Concerning the channel 44: my reference Manual shows PB12 as ADC1_S[12] and on the image on Page 656 (Doc ID 16886 Rev 6) there are ADC1_S[0] (Ch 32)... ADC[12](Ch 44). Regards StefanP |
|
|
|
你好Stefan,
我通过附件发送我的测试申请。 你能把你的测试申请寄给我吗? 我不重现这个问题cf screenshot 没有CDR 44 ..好的捕获,我怀疑它是参考手册中的错误。 我将与ADC专家讨论小型短管轴。 最好的祝福 二万 以上来自于谷歌翻译 以下为原文 Hello Stefan , i am sending my test application by attachment. Could you send me your test application ? i do not reproduce this issue cf screenshot There is no CDR 44.. good catch, i suspect that it is an error in the reference manual. I am going to check with ADC experts on the small bolero. Best regards Erwan |
|
|
|
你好Stefan,
为了您的信息,已为参考手册创建了错误报告。 (Bolero 256k) 在SPC5Studio方面,我正在检查CDR44 可以访问。 如果是,我们将在SPC5Studio插件中添加频道(在下一个版本中) 我正在等待您对ADC应用程序的反馈 最好的祝福 二万 以上来自于谷歌翻译 以下为原文 Hello Stefan , For your information , an error report has been created for the reference manual. (Bolero 256k) In SPC5Studio side, I am checking if the CDR44 is accessible. If yes, we will add the channel in the SPC5Studio plugins (in the next release) i am waiting for your feedback about your ADC Applications Best Regards Erwan |
|
|
|
嗨二湾,
我试过你的代码。当我导入Projekt时,我得到了信息: 在组件''org.chibios.spc5.components.hal.platform.spc560xx的实例中找不到配置设置''dma_mode':[Element< adc_settings />]'' 我正在使用SPC5Studio 2.0.0。 我将您的设置复制到我的项目并遇到了同样的问题。 ADC1寄存器具有与屏幕截图相同的值,但ADC保持采样。 我可以通过电子邮件向您发送我的代码,我并不是因为我删除了所有信息(客户/项目)。 谢谢, StefanP 以上来自于谷歌翻译 以下为原文 Hi Erwan, I tried your code. When I import the Projekt I get the Information: Configuration settings ''dma_mode'' not found in instance of component ''org.chibios.spc5.components.hal.platform.spc560xx:[Element I'm using SPC5Studio 2.0.0. I copied your settings to my Project and got the same Problem. The ADC1-registers have the same values as on your screenshot, but ADC stays sampling. Can I send you my code via email, I'm not shure that I have removed all information (costumer/project). Thanks, StefanP |
|
|
|
嗨Stefan,
我的电子邮件地址是erwan.yvin@st.com 您可以在出口后通过电子邮件将申请表发送给我。 BR 二万 以上来自于谷歌翻译 以下为原文 Hi Stefan, My email address is erwan.yvin@st.com You can send me your application after export by email. BR Erwan |
|
|
|
你好Stefan,
对于dma模式,它只是一个警告''dma_mode''.. 因为,下一个官方ADC驱动程序可以添加启用或禁用DMA的可能性。 (2014年5月开放) 1)警告后 2)只需保存配置 3)清理项目 4)再生 5)建立 无论如何,把你的申请发给我..我会尝试你的申请;-) 最好的祝福 Erwan YVIN 以上来自于谷歌翻译 以下为原文 Hello Stefan , For dma mode, it is just a warning ''dma_mode''.. because , the next official ADC drivers could add the possibility to enable or disable DMA. (Available in may 2014) 1) After the warning 2) Just Save the configuration 3) Clean the project 4) Regenerate 5) Build Anyway , send me your application .. i will try with your application ;-) Best Regards Erwan YVIN |
|
|
|
只有小组成员才能发言,加入小组>>
请教:在使用UDE STK时,单片机使用SPC560D30L1,在配置文件怎么设置或选择?里面只有SPC560D40的选项
2626 浏览 1 评论
3208 浏览 1 评论
请问是否有通过UART连接的两个微处理器之间实现双向值交换的方法?
1782 浏览 1 评论
3607 浏览 6 评论
5987 浏览 21 评论
938浏览 4评论
1313浏览 4评论
在Linux上安装Atollic TRUEStudio的步骤有哪些呢?
582浏览 3评论
使用DMA激活某些外设会以导致外设无法工作的方式生成代码是怎么回事
1302浏览 3评论
1356浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-20 23:19 , Processed in 1.313305 second(s), Total 89, Slave 72 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号