嗨,对话框:
使用DA14580 qfn40
1.使能pwm3, pwm4, pwm5,脉冲50%,2.设置PWM频率10k或以上3.开始运行pwm,4.应用程序发现设备,不能连接设备或连接时立即断开5.停止pwm,应用连接设备6.向ble设备发送数据,运行PWM7.应用程序断开或发送数据不响应
请检查这个问题!
你好,Mark,你能告诉我你在DA14580上运行什么配置文件吗(例如SIG配置文件或你自己构建的配置文件)以及你连接到什么?例如,另一个DA14580或iOS或Android使用Lightblue或类似的东西?这将帮助我们为你找到答案。BR JE_Dialog
你好,Mark,你提到的观察结果可能是由于内部和外部的强PWM信号与敏感的RF信号路径的耦合。请确认TRIPLE_PWM_CTRL_REG的设置。HW_PAUSE_EN设置允许BLE RF活动时关闭PWM信号摆动。如果问题无法解决,建议设置SW_PAUSE_EN位,让软件决定何时暂时禁用PWM,以避免外部电源的干扰。问候,WI_Dialog
谢谢WI_Dialog,我已经找到问题的根本原因,一条pwm信号线通过晶体,hclk不稳定,情况下这个问题,
你好。我也有类似的问题不能够激活PWM2(由timer2输出)。我正在使用sps_device演示项目(UART over BLE)。我已经设置它与HW和SW控制禁用。GPIO_ConfigurePin(GPIO_PORT_1, GPIO_PIN_0, OUTPUT, PID_PWM2, true);timer2_init(假的,假的,1000);timer2_set_pwm2_duty_cycle (20000);我没看到任何信号产生。当我使用timer0,我可以看到正确的频率和直流电2-3秒,之后改变到完全不同的频率和直流电(当然是错误的)。timer0_init (TIM0_CLK_FAST PWM_MODE_ONE TIM0_CLK_NO_DIV);timer0_set(0、500、1000);timer0_start ();
GPIO_ConfigurePin(GPIO_PORT_1, GPIO_PIN_0, OUTPUT, PID_PWM2, true);timer2_init(假的,假的,1000);timer2_set_pwm2_duty_cycle (20000);
timer0_init (TIM0_CLK_FAST PWM_MODE_ONE TIM0_CLK_NO_DIV);timer0_set(0、500、1000);timer0_start ();
由于timer0和timer2不被BLE堆栈使用,是否有一种方法完全禁用BLE堆栈和那些定时器之间的交互?我不介意关闭电源管理,如果可以的话——我不需要为我的设备省电。============================好的,我已经发现#undef CFG_EXT_SLEEP禁用关机,并保持TIMER0 PWM输出始终活跃和正确。
嗨kobyfr_mag
当系统进入睡眠计时器也关闭,因此你不能产生PWM,你有永久禁用睡眠,或者如果你想使用睡眠,你必须禁用它,当它的时间产生PWM,并再次启用它时,你完成。
由于MT_dialog
你好,Mark,你能告诉我你在DA14580上运行什么配置文件吗(例如SIG配置文件或你自己构建的配置文件)以及你连接到什么?例如,另一个DA14580或iOS或Android使用Lightblue或类似的东西?这将帮助我们为你找到答案。BR JE_Dialog
你好,Mark,你提到的观察结果可能是由于内部和外部的强PWM信号与敏感的RF信号路径的耦合。请确认TRIPLE_PWM_CTRL_REG的设置。HW_PAUSE_EN设置允许BLE RF活动时关闭PWM信号摆动。如果问题无法解决,建议设置SW_PAUSE_EN位,让软件决定何时暂时禁用PWM,以避免外部电源的干扰。
问候,WI_Dialog
谢谢WI_Dialog,我已经找到问题的根本原因,一条pwm信号线通过晶体,hclk不稳定,情况下这个问题,
你好。
我也有类似的问题不能够激活PWM2(由timer2输出)。
我正在使用sps_device演示项目(UART over BLE)。
我已经设置它与HW和SW控制禁用。
GPIO_ConfigurePin(GPIO_PORT_1, GPIO_PIN_0, OUTPUT, PID_PWM2, true);
timer2_init(假的,假的,1000);
timer2_set_pwm2_duty_cycle (20000);
我没看到任何信号产生。
当我使用timer0,我可以看到正确的频率和直流电2-3秒,之后改变到完全不同的频率和直流电(当然是错误的)。
timer0_init (TIM0_CLK_FAST PWM_MODE_ONE TIM0_CLK_NO_DIV);
timer0_set(0、500、1000);
timer0_start ();
由于timer0和timer2不被BLE堆栈使用,是否有一种方法完全禁用BLE堆栈和那些定时器之间的交互?
我不介意关闭电源管理,如果可以的话——我不需要为我的设备省电。
============================
好的,我已经发现#undef CFG_EXT_SLEEP禁用关机,并保持TIMER0 PWM输出始终活跃和正确。
嗨kobyfr_mag
当系统进入睡眠计时器也关闭,因此你不能产生PWM,你有永久禁用睡眠,或者如果你想使用睡眠,你必须禁用它,当它的时间产生PWM,并再次启用它时,你完成。
由于MT_dialog