导航

    全志在线开发者论坛

    • 注册
    • 登录
    • 搜索
    • 版块
    • 话题
    • 在线文档
    • 社区主页

    Meils的PWM BUG

    MR Series
    3
    7
    2556
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • L
      leomini5 LV 6 最后由 编辑

      这段代码是PWM驱动里面的,这个disable没有用处,也就是PWM并不会停止
      所以,这代码我猜应该是没测试过的

      感觉这个Meils 4 开发的太快了都来不及测试就上线了

      void hal_pwm_enable_controller(uint32_t channel_in)
      {
          unsigned long reg_addr = PWM_BASE + PWM_PER;
          uint32_t reg_val;
      
          reg_val = readl(reg_addr);
          reg_val |= 1 << channel_in;
      
          writel(reg_val, reg_addr);
      }
      
      /************   disable  **************/
      void hal_pwm_disable_controller(uint32_t channel_in)
      {
          unsigned long reg_val;
          unsigned long reg_addr = PWM_BASE + PWM_PER;
      
          reg_val = readl(reg_addr);
          reg_val |= 1 << channel_in;
      
          //reg_val = Ox00;
      
          writel(reg_val, reg_addr);
      }
      

      PER那个使能寄存器是这么描述的

      Offset:0x0080 Register Name: PER
      Bit Read/Write Default/Hex Description
      31:8 / / /
      7 R/W 0x0
      PWM7_EN
      When PWM is enabled, the 16-bit up-counter starts working and 
      PWM channel7 is permitted to output PWM waveform.
      0: PWM disable
      1: PWM enable
      
      1 条回复 最后回复 回复 引用 分享 0
      • A
        awwwwa LV 8 最后由 编辑

        请问这个SDK是从哪里获取的?我这边的1.4版本是这样的

        5d60c62f-8c87-4c0c-9cc9-75f7248fe70a-image.png

        L 2 条回复 最后回复 回复 引用 分享 0
        • L
          leomini5 LV 6 @awwwwa 最后由 编辑

          @awwwwa 你这个版本是正确的

          我这个是Melis4呀

          github上面,还有gitee上面都有

          具体位置在这

          https://github.com/Tina-Linux/d1s-melis/blob/master/ekernel/drivers/hal/source/pwm/hal_pwm.c

          这个是官方的吗?

          有没有Melis3的官方稳定测试过的版本呀,在哪里可以下?
          我要遇到同样BuG了好去找个对比的……

          还有这个PWM的测试代码并不全,甚至驱动也是不全的,那个功能就写了一个生成PWM波的,没有中断的,也没有PWM对的,也没有PWM捕获,开发文档也没写清楚这些PWM输出引脚也是受限的,容易被其他功能干扰导致不输出

          直接看用户手册直接操作寄存器,比较靠谱……

          还有我顺带测试了一下那个Ledc驱动的输出,这玩意基本也是个废柴,输出不稳定,800K的周期,部分是800,部分是833,850,如果只驱动一两个应该没事,驱动数量上去了,就会有各种问题……什么头尾绿,颜色不对……那个参数不能乱改,应该调好的,调别的乱跳的时候就不能保证1和0的周期正确了

          YuzukiTsuru 1 条回复 最后回复 回复 引用 分享 0
          • YuzukiTsuru
            柚木 鉉 LV 9 @leomini5 最后由 编辑

            @leomini5 github这个是很老的版本了.... 0.6版

            L 1 条回复 最后回复 回复 引用 分享 0
            • L
              leomini5 LV 6 @YuzukiTsuru 最后由 编辑

              @yuzukitsuru 哪里有最新的版本啊,这个版本太多BUG了,干不过它

              1 条回复 最后回复 回复 引用 分享 0
              • L
                leomini5 LV 6 @awwwwa 最后由 编辑

                @awwwwa 你这个也是错的,这么写会把所有通道都关掉,而不是指定的那个……

                A 1 条回复 最后回复 回复 引用 分享 0
                • A
                  awwwwa LV 8 @leomini5 最后由 编辑

                  此回复已被删除!
                  1 条回复 最后回复 回复 引用 分享 0
                  • 1 / 1
                  • First post
                    Last post

                  Copyright © 2024 深圳全志在线有限公司 粤ICP备2021084185号 粤公网安备44030502007680号

                  行为准则 | 用户协议 | 隐私权政策