stm32外部晶振单片机晶振怎么防EFT抗干扰性

STM32F030使用外部晶振时,做EFT试验晶振有干扰,单片机死机 - STM32 - 意法半导体STM32/STM8技术社区
后使用快捷导航没有帐号?
查看: 93|回复: 7
STM32F030使用外部晶振时,做EFT试验晶振有干扰,单片机死机
在线时间0 小时
该用户从未签到主题帖子精华
新手上路, 积分 6, 距离下一级还需 44 积分
发表于 6&天前
STM32F030使用外部晶振时,做EFT试验晶振有干扰,单片机死机的情况。请大神指点下,如果有干扰时,能不能切换到内部晶振工作,如果可以如何操作程序?干扰结束后,还可以切换到外部晶振工作吗?外部晶振有没有能抗住EFT干扰的可能?谢谢
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp
在线时间102 小时
该用户从未签到主题帖子精华
金牌会员, 积分 1473, 距离下一级还需 3527 积分
发表于 6&天前
晶振外壳接地,做EFT会不会有改善
在线时间27 小时
该用户从未签到主题帖子精华
中级会员, 积分 404, 距离下一级还需 96 积分
发表于 6&天前
外部晶振接地,晶振要紧挨CPU时钟输入位置,时钟线下周边尽量不走其它信号线,周边全敷地 做到这些基本EFT基本可以通过
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp
在线时间467 小时
ST金币4796
蝴蝶豆1140
TA的每日心情开心 11:47签到天数: 1 天[LV.1]初来乍到主题帖子精华
发表于 6&天前
你用的是无源晶振吗?有源晶振的话一般不会受影响,除非对电源影响太大,超出了晶振的工作范围。(一般无源晶振称为晶体谐振器,有源晶振称为晶体振荡器)
STM32时钟源切换是需要程序控制的,寄存器时钟源切换,不会自动适应。也就是说,你一旦用了外部晶振,它是不能自动切加内部的。
在线时间0 小时
该用户从未签到主题帖子精华
新手上路, 积分 6, 距离下一级还需 44 积分
发表于 5&天前
晶振外壳接地,做EFT会不会有改善
接地没有用,因为干扰耦合方式是到地
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp
在线时间0 小时
该用户从未签到主题帖子精华
新手上路, 积分 6, 距离下一级还需 44 积分
发表于 5&天前
你用的是无源晶振吗?有源晶振的话一般不会受影响,除非对电源影响太大,超出了晶振的工作范围。(一般无源 ...
我准备用有源晶振试试,看看对EFT干扰
程序里可以在外部晶振没有的情况下调用时间安全系统寄存器来实现切换内部晶振,但是在干扰去除后再切回外部晶振,还在调试
在线时间1 小时
该用户从未签到主题帖子精华
新手上路, 积分 14, 距离下一级还需 36 积分
发表于 5&天前
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp
在线时间467 小时
ST金币4796
蝴蝶豆1140
TA的每日心情开心 11:47签到天数: 1 天[LV.1]初来乍到主题帖子精华
发表于 5&天前
我准备用有源晶振试试,看看对EFT干扰
程序里可以在外部晶振没有的情况下调用时间安全系统寄存器来 ...
这个有点难度吧,MCU怎么知道是否有EFT干扰?
有源晶振比较稳定,随便干扰,不会不振
STM32粉丝勋章Ⅳ
狂欢节专属(智多星)
STM32粉丝勋章Ⅲ
狂欢节专属(分享宝宝)
STM32粉丝勋章Ⅱ
狂欢节专属(研讨会问答)
站长推荐 /2
Tel: 3-8064
备案号: 苏ICP备号-2
|||意法半导体STM32/STM8技术社区
Powered bySTM32操作ADS1115怎样能进行4个通道AD值的读取 - STM32/STM8技术论坛 -
中国电子技术论坛 -
最好最受欢迎电子论坛!
后使用快捷导航没有帐号?
STM32操作ADS1115怎样能进行4个通道AD值的读取
11:39:44  
10857&查看
& &小弟这几天,想了很多方法,还不是能将四个通道的AD分别对应不同的四个地址进行读取,单独读没有问题,但要四个通道一起读时,值就串扰了,不晓得怎么弄。请各位帮帮忙。
已退回1积分
11:49:38  
先将目前做的程序上传,望各位大神能及时给予帮助,小弟在这里谢谢各位
11:49 上传
点击文件名下载附件
下载积分: 积分 -1 分
2.09 MB, 下载次数: 749, 下载积分: 积分 -1 分
20:45:17  
多谢各位i,我在看看
12:34:24  
地址用数组表示
12:35:42  
你那个采集怎么采集的,直接是板子上的电压,还是外设电路的电压呢??
12:56:39  
我之前也出现过这个问题,地址用数组表示以后就好了,
10:43:19  
//---------------------------
void adc_num(u16 v[])
& & & & u8&&FLAG;
& & & & /* Enable DMA1 channel1 */
& & & & DMA_Cmd(DMA1_Channel1, ENABLE);
& & & & //Start ADC1 Software Conversion
&&& & & & ADC_SoftwareStartConv(ADC1);
& & & & do
& & & & & & & & FLAG=DMA_GetFlagStatus (DMA1_FLAG_TC1); //DMA 传送完成标志
& & & & while(FLAG!=1);& & & & & & & &
& & & & & & & & v[0]=ADC_ConvertedValue[0];
& & & & & & & & v[1]=ADC_ConvertedValue[1];
& & & & & & & & v[2]=ADC_ConvertedValue[2];
& & & & & & & & v[3]=ADC_ConvertedValue[3];
void Adc_conv(void)
//---------起动ADC 转换--------------
& & & & adc_num(vx0);& & & & //1 次
通过数组 VX0[4]一次读出,见附件AD.C文件
10:39 上传
点击文件名下载附件
下载积分: 积分 -1 分
610.13 KB, 下载次数: 462, 下载积分: 积分 -1 分
22:07:31  
啊额他问题安踏爱玩图安踏腌图吖
00:50:49  
楼主解决了吗?是因为采样速率的原因吗?
18:43:23  
您好,您解决了吗,遇到同样的问题
18:45:03  
我之前也出现过这个问题,地址用数组表示以后就好了,
你好,我也是采集四路ads1115,跟楼主的问题一样,可以把你的四路配置让我看看嘛?
等待验证会员
08:55:47  
参考一下!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
11:07:07  
我之前也出现过这个问题,地址用数组表示以后就好了,
能否分享一下程序,我的一直显示一个固定的值
14:58:57  
我也在采集思路,参考看看!谢谢分享!
14:01:58  
不知道为啥,读取1个数据正常,读取2个数据就颠倒
16:04:08  
09:53:28  
你好 请问ADS1015可以用这个程序吗
23:34:41  
怎么切换通道呀
11:09:38  
等待验证会员
11:37:45  
参考一下,谢谢.
工程师职场
Powered by
供应链服务
版权所有 (C) 深圳华强聚丰电子科技有限公司STM32的AD采样到底怎么样? - STM32/STM8技术论坛 -
中国电子技术论坛 -
最好最受欢迎电子论坛!
后使用快捷导航没有帐号?
STM32的AD采样到底怎么样?
17:44:52  
印象中STM32的AD好像稳定性和精度不太好,但是我也没有验证过。现在有个项目需要用到AD采样,如果直接用STM32的AD采样口会方便很多。请大家告诉我STM32的AD采样功能到底怎么样?好用吗?
17:52:50  
自己顶一下
助理工程师
08:08:25  
没有什么发的问题,软件上做点小的修改,用软件滤波
高级工程师
08:24:49  
可以哦 一般ZNSTM32上的AD都是12位的 看你需求 够用就好 至于精度 因为他的基准源和VCC共用 只要你的电源波动不大 没有问题的
10:05:48  
没有什么发的问题,软件上做点小的修改,用软件滤波
10:05:56  
可以哦 一般ZNSTM32上的AD都是12位的 看你需求 够用就好 至于精度 因为他的基准源和VCC共用 只要你的电源波动不大 没有问题的
高级工程师
10:25:47  
我们也在用STM32自带的ADC,还是没有外部verf的CPU……
21:45:48  
我们也在用STM32自带的ADC,还是没有外部verf的CPU……
外部verf的CPU 是什么?
高级工程师
18:01:09  
外部verf的CPU 是什么?
就是需要你给内部ADC从外部接一个参考电压。没有的会把供电给CPU的电从内部引过去作为参考电压。
14:57:15  
还可以用的&&不错的&&
08:16:16  
还可以用的&&不错的
也就是说如果采样精度满足的话,stm32的ad还是比较稳定的 是吧?
工程师职场
Powered by
供应链服务
版权所有 (C) 深圳华强聚丰电子科技有限公司STM32GPIO输出高电平,为什么有两个引脚输出不了? - STM32/STM8技术论坛 -
中国电子技术论坛 -
最好最受欢迎电子论坛!
后使用快捷导航没有帐号?
STM32GPIO输出高电平,为什么有两个引脚输出不了?
10:04:10  
本帖最后由 洪焯辉 于
11:03 编辑
#include &pwm.h&
#include &led.h&
//////////////////////////////////////////////////////////////////////////////////& & & &&&
//PWM输出初始化
//arr:自动重装值
//psc:时钟预分频数
void TIM1_PWM_Init(u16 arr,u16 psc)
{&&
& & & & GPIO_InitTypeDef GPIO_InitS
& & & & TIM_TimeBaseInitTypeDef&&TIM_TimeBaseS
& & & & TIM_OCInitTypeDef&&TIM_OCInitS
& & & & RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);//
& & & & RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOC , ENABLE);&&//使能GPIO外设时钟使能
& & & && && && && && && && && && && && && && && && && && && && && && && && & & & & &
& & GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6|GPIO_Pin_7; //
& & & & GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;&&//复用推挽输出
& & & & GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
& & & & GPIO_Init(GPIOC, &GPIO_InitStructure);
& & & & GPIO_SetBits(GPIOC,&&GPIO_Pin_6 | GPIO_Pin_7);
& & & &
& & & & GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3|GPIO_Pin_4; //
& & & & GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;&&//复用推挽输出
& & & & GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
& & & & GPIO_Init(GPIOB, &GPIO_InitStructure);
& & & & GPIO_SetBits(GPIOB,&&GPIO_Pin_3 | GPIO_Pin_4);
& & & &
& &//设置该引脚为复用输出功能,输出TIM1 CH1的PWM脉冲波形
& & & & GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1; //TIM_CH4
& & & & GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;&&//复用推挽输出
& & & & GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
& & & & GPIO_Init(GPIOA, &GPIO_InitStructure);
& & & & TIM_TimeBaseStructure.TIM_Period = //设置在下一个更新事件装入活动的自动重装载寄存器周期的值& & & &&&80K
& & & & TIM_TimeBaseStructure.TIM_Prescaler = //设置用来作为TIMx时钟频率除数的预分频值&&不分频
& & & & TIM_TimeBaseStructure.TIM_ClockDivision = 0; //设置时钟分割:TDTS = Tck_tim
& & & & TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;&&//TIM向上计数模式
& & & & TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure); //根据TIM_TimeBaseInitStruct中指定的参数初始化TIMx的时间基数单位
& & & & TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2; //选择定时器模式:TIM脉冲宽度调制模式2
& & & & TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_E //比较输出使能
& & & & TIM_OCInitStructure.TIM_Pulse = 0; //设置待装入捕获比较寄存器的脉冲值
& & & & TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_H //输出极性:TIM输出比较极性高
& & & & TIM_OC2Init(TIM2, &TIM_OCInitStructure);&&//根据TIM_OCInitStruct中指定的参数初始化外设TIMx
& & TIM_CtrlPWMOutputs(TIM2,ENABLE);& & & & //MOE 主输出使能& & & &
& & & & TIM_OC2PreloadConfig(TIM2, TIM_OCPreload_Enable);&&//CH1预装载使能& & & &&&
& & & &
& & & & TIM_ARRPreloadConfig(TIM2, ENABLE); //使能TIMx在ARR上的预装载寄存器
& & & &
& & & & TIM_Cmd(TIM2, ENABLE);&&//使能TIM1
#include &led.h&
#include &delay.h&
#include &sys.h&
#include &pwm.h&
//ALIENTEK Mini STM32开发板范例代码8
//PWM输出实验& &
//技术支持:www.openedv.com
//广州市星翼电子科技有限公司
int main(void)
& & & & u16 led0pwmval=0;& &
//& & & & u8 dir=1;& & & &
& & & & delay_init();& & & && &&&& & & &&&//延时函数初始化& & & && &
& & & & LED_Init();& & & & & & & && && & & & //初始化与LED连接的硬件接口
& & & &
& & & & TIM1_PWM_Init(899,0);//不分频。PWM频率=7)=80Khz
& && & & & while(1)
& & & & {
& && &&&GPIO_SetBits(GPIOB,&&GPIO_Pin_3 | GPIO_Pin_4);
& & & & & & & &
& & & & & & & & GPIO_SetBits(GPIOC,&&GPIO_Pin_6 | GPIO_Pin_7);
& && &&&delay_ms(500);
& & & & & & & & LED0=!LED0;
& && &&&led0pwmval=300;
& & & & & & & & TIM_SetCompare2(TIM2,led0pwmval);& & & && &
复制代码要使PB3 PB4 PC6 PC7输出高电平,但是只有PB3和PB4可以输出,不知道哪里出问题了,希望大家指点错误,谢谢!
已退回1积分
16:27:47  
你试试我这个
#include &stm32f10x.h&&&
GPIO_InitTypeDef GPIO_InitS& && && &//定义GPIO宏操作结构体&&
void Delay(__IO uint32_t nCount)//__IO的宏定义volatile&&
&&for(; nCount != 0; nCount--);&&
/*初始化嵌入式Flash接口,初始化PLL使其达到系统可用频率*/&&
void RCC_Configuration(void)&&
&&/* Setup the microcontroller system. Initialize the Embedded Flash Interface,& &
& &&&initialize the PLL and update the SystemFrequency variable. */&&
&&SystemInit();&&
int main()&&
& &&&RCC_Configuration();& &//初始化FLASH及其PLL,系统时钟配置&&
& &&&RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIO,ENABLE);& & //外设时钟配置,开启GPIOC的时钟& &
& &&&GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6|GPIO_Pin_7;& && && && && && && && &&&
& &&&GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//将&span style=&font-size:14&&PC6\7\9&/span&口配置为通用推挽输出&&
& &&&GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;& && && &&&//口线翻转速度为50MHz&&
& &&&GPIO_Init(GPIOC, &GPIO_InitStructure);& && && &//配置GPIOC口&&
& &&&while(1)&&
& && && &GPIO_SetBits(GPIOC, GPIO_Pin_6);& && && &&&//PC6口输出高电平&&
& && && &GPIO_SetBits(GPIOC, GPIO_Pin_7);& && && && && &//&span style=&font-size:14&&PC7&/span&口输出&span style=&font-size:14&&高电平&/span&& && && && && & GPIO_SetBits(GPIOC, GPIO_Pin_9);& && &&&//&span style=&font-size:14&&PC9&/span&口输出&span style=&font-size:14&&高电平&/span&&&&/span&&span style=&font-size:14&&&&
& && && && &&&for(i=0;i&1000000;i++);&&
19:50:26  
你试试我这个
#include &stm32f10x.h&&&
谢谢,这个问题已经解决了,把复用推挽输出改成推挽输出就可以了,但是具体原因就不知道了,我猜是因为PC6和PC7上面挂载了定时器的原因吧
工程师职场
Powered by
供应链服务
版权所有 (C) 深圳华强聚丰电子科技有限公司STM32F030使用外部晶振时,做EFT试验晶振有干扰,单片机死机是为什么? - STM32/STM8技术论坛 -
中国电子技术论坛 -
最好最受欢迎电子论坛!
后使用快捷导航没有帐号?
STM32F030使用外部晶振时,做EFT试验晶振有干扰,单片机死机是为什么?
发表于 6&天前  
STM32F030使用外部晶振时,做EFT试验晶振有干扰,单片机死机的情况。请大神指点下,如果有干扰时,能不能切换到内部晶振工作,如果可以如何操作程序?干扰结束后,还可以切换到外部晶振工作吗?外部晶振选择上有没有能抗住EFT干扰的可能型号晶振?
工程师职场
Powered by
供应链服务
版权所有 (C) 深圳华强聚丰电子科技有限公司

我要回帖

更多关于 stm32两个晶振 的文章

 

随机推荐