STM32 PWM+曼彻斯特编码低频唤醒AS3933问题请教

2019-07-20 22:08发布

AS3933低频唤醒帧格式如下图1所示:
现在小弟准备利用已经调好的pwm波形,输出特定的曼彻斯特编码帧格式进行对as3933芯片的低频唤醒。

图2是需要实现的帧格式。

我目前的实现方法是:
曼彻斯特编码的1,即1->0,
                     0,即0->1.

要想实现图2的帧格式,我是想利用pwm的开关来实现从1->0,0->1的跳变。代码如下所示。
void STM32_PWM_ENABLE()
{
        TIM_CtrlPWMOutputs(TIM1, ENABLE);
        TIM_Cmd(TIM1, ENABLE);
}
void STM32_PWM_DISABLE()
{
        TIM_CtrlPWMOutputs(TIM1, DISABLE);               
        TIM_Cmd(TIM1, DISABLE);
}

void manchester_one()
{
        STM32_PWM_ENABLE();
        Delay(1);
        STM32_PWM_DISABLE();
        Delay(1);
}

void manchester_zero()
{
        STM32_PWM_DISABLE();
        Delay(1);   //Ñóê±1ms
        STM32_PWM_ENABLE();
        Delay(1);
        STM32_PWM_DISABLE();//1Øμôpwm2¨DÎêä3ö
}

void carrier_burst()
{
        STM32_PWM_ENABLE();
        Delay(1);
        STM32_PWM_DISABLE();
        Delay(1);
}

void qin_pwm()
{
        uint16_t i = 0;
                /*¼ù¶¨ò»¸öÂü31Ë1ìØÂëÔa3¤¶èÎa360us*/
       
        /*2åèëÔØ2¨DÅoÅ3ms*/
        carrier_burst();
       
#if 1
        /*Ç°μ&#188reamble 0xFF*/
        for(i = 0; i < 8;i++)
        {
                manchester_one();
        }
                       
        /*&#196;£ê&#189;pattern 0x96*/
        manchester_one();
        manchester_zero();
        manchester_zero();
        manchester_one();
        manchester_zero();
        manchester_one();
        manchester_one();
        manchester_zero();


        /* SOF */
        for(i = 0; i < 7;i++)
        {
                manchester_one();
        }
        manchester_zero();

        /* ID */
        for(i = 0; i < 8;i++)
        {
                manchester_one();
        }
       
        /* CRC16 */
        for(i = 0; i < 8;i++)
        {
                manchester_one();
        }
                        #endif
        /* EOF 0xaa*/
        for(i = 0; i < 4;i++)
        {
                manchester_one();
                manchester_zero();
        }

        delay_ms(500);

}

软件模拟的波形如下图图三所示。
困惑点:
1、AS3933的一个码元的长度,比如说是125K低频信号的多少个周期?
2、这样子的程序设计思路是否存在问题?如果有问题该怎么去调整?
3、用示波器去看这个波形的话不稳定一直在跑(while(1)里面每隔一段时间发送图三这样的波形,但是示波器看的话这个波形一直在移动),是什么原因?
4、AS3933芯片论坛里大大有资料的帮忙共享下,着急死了



友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
16条回答
h101611123
1楼-- · 2019-07-20 23:41
xxssl 发表于 2017-11-24 17:26
用过MCP2030,和AS3933类似

恩恩,目前已经调试的pwm唤醒帧格式已经可以唤醒AS3933了。
h101611123
2楼-- · 2019-07-21 02:57
自己帮自己顶
h101611123
3楼-- · 2019-07-21 06:57
 精彩回答 2  元偷偷看……
xxssl
4楼-- · 2019-07-21 12:22
h101611123 发表于 2017-11-24 16:24
希望有用过as3933或者接触过的朋友们回复下帮帮小弟我,,,,,不胜感激!!!!!

用过MCP2030,和AS3933类似
h101611123
5楼-- · 2019-07-21 17:03
 精彩回答 2  元偷偷看……
刘震1007
6楼-- · 2019-07-21 17:53
h101611123 发表于 2017-11-27 15:31
自己结下帖子:
困惑点解答1、AS3933唤醒帧中曼彻斯特编码半个码元我定的是360us。
2、请教过stm32群里做 ...

楼主你好,能分享下AS3933低频唤醒的源程序吗?有很多不明白的地方,非常感谢,1255030237@qq.com

一周热门 更多>