linux舵机硬件环境搭建成功--Apple的学习笔记 一,前言 二,PWM设备驱动,SG90舵机硬件环境搭建 三,验证硬件环境 四,遇到的问题

一,前言

我之前找出了我很多10年前(单片机+2440开发板)以及5年前(智能避障小车)自学项目时候买的元器件及模组。所以我才最近就趁着重新开始学习linux内核驱动的机会,把这些保存很久的资源进行利用。

二,PWM设备驱动,SG90舵机硬件环境搭建

1)SG90舵机连线,三条线是红的、黑色、棕色,接法如下:
棕 : GND
红 : VCC(3.5v-6v)
黄: 信号线
2)看spec及原理图,找到将要连接的引脚,并且通过document中pwm的介绍搜索关键字,找到ehrpwm。



3)实物图连接,之前的eeprom还没有拆。


三,验证硬件环境

1)Kernel中配置ehrpwm



2)am335x-bone-common.dtsi设备树修改

    pwm_pins: pinmux_pwm_pins {
        pinctrl-single,pins = <
            AM33XX_PADCONF(AM335X_PIN_GPMC_A2, PIN_OUTPUT_PULLDOWN, MUX_MODE6) /* EHRPWM1A */
        >;
    };


/* start add by apple */
&epwmss1{
    status = "okay";
};
&ehrpwm1{
    pinctrl-names = "default";
    pinctrl-0 = <&pwm_pins>;
    status = "okay";
}
/* end add by apple */
  1. 最后调试通过,SG90舵机会转。
    echo 0 >/sys/class/pwm/pwmchip0/export
    echo 20000000 > /sys/class/pwm/pwmchip0/pwm0/period
    echo 1000000 > /sys/class/pwm/pwmchip0/pwm0/duty_cycle
    echo 1 > /sys/class/pwm/pwmchip0/pwm0/enable

四,遇到的问题

1,一开始舵机不动,所以用示波器看波形,无波形。
检查设备树功能硬件配置正确,打印寄存器查看与预期相符。检查硬件连接到J9的P14。结果我连接到了P16,修改后有波形出现。
devmem 0x44E10848 32
0x00000006
2,有输出,但是波形不正确。
查看echo命令,仅设置了period,忘记设置duty_cycle了。设置了duty_cycle后,20ms周期,占空比高电平维持1ms。波形正确。


3,确认pwm正确后,将引脚连接到SG90舵机,结果舵机不转。
检查舵机引脚连线正确,于是运行过程中用示波器查看波形的电压幅度值约3v。原来是电流小了,驱动不了了。所以将usb电源改成了power电源后,通过pwm命令能控制舵机能运行,只是运行一会就停了,估计是pwm一直输出,太快了,之后会自制驱动代码来控制。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章