在 DM3730 TRM 的第 16.2.4.6 章節,參考 Figure 16-12 跟 16-13
1. GPTi.TCLR[7] 的 SCPWM 是 Set or Clear PWM,指 PWM 預設 high(Set) or low(Clear)
2. 先設定 GPTi.TLDR 暫存器給定
(0xFFFF FFFF - GPTi.TLDR[31:0] LOAD_VALUE + 1) overflow 觸發的頻率
3. 設定 GPTi.TMAR match 暫存器給定 match 觸發的頻率
overflow 跟 match 的 pulse 頻率設完之後
4. GPTi.TCLR[11:10] 的 TRG 控制 PWM 哪時候要變換 high/low
TRG == 0x01 是只看 overflow
TRG == 0x02 是看 overflow 跟 match 的 pulse
5. GPTi.TCLR[12] PT 位元設定 PWM 依 TRG 變換之後是一個 pulse 或維持新準位(high/low)
直到下一次依 TRG 設定的變換
實際的驅動程式範例可以參考:https://github.com/scottellis/omap3-pwm
裡面用到 TI Linux BSP 的 arch/arm/plat-omap/include/plat/dmtimer.h 介面,可以省去
看 datasheet 查暫存器定義的時間
沒有留言:
張貼留言