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一直輸出,太快了,之後會自制驅動代碼來控制。

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