Автор Тема: Работа с PWM  (Прочитано 9838 раз)

Оффлайн AlDemin

  • Житель
  • ****
  • Сообщений: 494
  • Лайков: 161
  • Карма: +25/-1
  • OPi, OPi+, OPiOne, OPiZero, OPiPC2, BPi, RPiB.
    • Просмотр профиля
Re: Работа с PWM
« Ответ #15 : Февраль 20, 2016, 05:04:03 pm »
У меня версия новее.
А что в твоей версии в пункте "2.2. System Block Diagram"?
У меня там один pwm.
и  в пункте "4.10 PWM" что ни будь есть о pwm1?

А вообще ты ж сам написал, что включение pwm1 ничего не дало,
тогда как с pwm0 все срабатывает.

Остается принять факт его отсутствия.

StaLeWaR

  • Гость
Re: Работа с PWM
« Ответ #16 : Февраль 20, 2016, 06:48:23 pm »
да ты видимо прав.
я так понял PA5 это пин который на гребенку uart выведен на дебаг ?

Оффлайн AlDemin

  • Житель
  • ****
  • Сообщений: 494
  • Лайков: 161
  • Карма: +25/-1
  • OPi, OPi+, OPiOne, OPiZero, OPiPC2, BPi, RPiB.
    • Просмотр профиля
Re: Работа с PWM
« Ответ #17 : Февраль 20, 2016, 07:21:11 pm »
Да, RX, но как uart тогда его выключай.

StaLeWaR

  • Гость
Re: Работа с PWM
« Ответ #18 : Февраль 20, 2016, 07:37:05 pm »
а можно переназначить консоль дебага на uart который выведен на 38 и 40 пины?

Оффлайн AlDemin

  • Житель
  • ****
  • Сообщений: 494
  • Лайков: 161
  • Карма: +25/-1
  • OPi, OPi+, OPiOne, OPiZero, OPiPC2, BPi, RPiB.
    • Просмотр профиля
Re: Работа с PWM
« Ответ #19 : Февраль 20, 2016, 08:20:06 pm »
Думаю, что да, как то так:

[uart1]
uart_used = 1
uart_port = 1
uart_type = 2
uart_tx = port:PG06<2><1><default><default>
uart_rx = port:PG07<2><1><default><default>
;uart_rts = port:PG08<2><1><default><default>
;uart_cts = port:PG09<2><1><default><default>

[gpio_para]
gpio_used = 1
gpio_num = 19
gpio_pin_1 = port:PL10<1><default><default><0>
gpio_pin_2 = port:PA15<1><default><default><1>
;gpio_pin_3 = port:PA06<1><default><default><0>
gpio_pin_4 = port:PA13<1><default><default><0>
gpio_pin_5 = port:PA14<1><default><default><0>
gpio_pin_6 = port:PD14<1><default><default><0>
gpio_pin_7 = port:PA03<1><default><default><0>
gpio_pin_8 = port:PC04<1><default><default><0>
gpio_pin_9 = port:PC07<1><default><default><0>
gpio_pin_10 = port:PC03<1><default><default><0>
gpio_pin_11 = port:PA21<1><default><default><0>
gpio_pin_12 = port:PA07<1><default><default><0>
gpio_pin_13 = port:PA08<1><default><default><0>
gpio_pin_14 = port:PG08<1><default><default><0>
gpio_pin_15 = port:PA09<1><default><default><0>
gpio_pin_16 = port:PA10<1><default><default><0>
gpio_pin_17 = port:PG09<1><default><default><0>
;gpio_pin_18 = port:PG06<1><default><default><0>
;gpio_pin_19 = port:PG07<1><default><default><0>

И пересобрать ядро исправив строку в Boot options -->
earlyprintk=ttyS1,115200 loglevel=8 initcall_debug=0 console=ttyS1,115200 console=tty0 init=/init

Cам сейчас попробовать не могу.

StaLeWaR

  • Гость
Re: Работа с PWM
« Ответ #20 : Февраль 20, 2016, 09:04:36 pm »
надо будет попробовать  :D
думаю добавить в pwm_para PA05, подгрузить модуль pwm-sunxi и посмотреть появится ли он в /sys

Оффлайн AlDemin

  • Житель
  • ****
  • Сообщений: 494
  • Лайков: 161
  • Карма: +25/-1
  • OPi, OPi+, OPiOne, OPiZero, OPiPC2, BPi, RPiB.
    • Просмотр профиля
Re: Работа с PWM
« Ответ #21 : Февраль 20, 2016, 09:20:30 pm »
PWM в /sys появляется, проверил.
Консоль не проверял, ядро возможно пересобирать не нужно, если uart0 будет отключен, то возможно ядро назначит устройство ttyS0 первому найденному uart-у.

StaLeWaR

  • Гость
Re: Работа с PWM
« Ответ #22 : Февраль 21, 2016, 09:08:55 am »
благодарю за информацию о подтверждении!
интересно, на PI One может подправили разводку? схематики на официальном сайте нету

Оффлайн AlDemin

  • Житель
  • ****
  • Сообщений: 494
  • Лайков: 161
  • Карма: +25/-1
  • OPi, OPi+, OPiOne, OPiZero, OPiPC2, BPi, RPiB.
    • Просмотр профиля
Re: Работа с PWM
« Ответ #23 : Февраль 21, 2016, 04:17:04 pm »
Поправка, ядро само ttyS0 не назначит, он назначается так:

[uart1]
uart_used = 1
uart_port = 0
uart_type = 2
uart_tx = port:PG06<2><1><default><default>
uart_rx = port:PG07<2><1><default><default>

Без пересборки работает, только о замене порта не знает u-boot поэтому на переназначенный порт инфа идет после старта ядра.

StaLeWaR

  • Гость
Re: Работа с PWM
« Ответ #24 : Февраль 21, 2016, 04:49:01 pm »
кстати вопрос по u-boot и вообще процессу загрузки.
сколько у тебя проходит от момента подачи питания до загрузки ядра?

для примера, я вкомпилировал в ядро модуль выводящее на дисплей hd44780 сообщение при загрузке
С момента подачи питания до появления сообщения на дисплее проходит около 6 секунд.

Думаю как уменьшить это время.
Полагаю что 3 секунды забирает штатный делей в u-boot.
Как еще можно уменьшить время?

Оффлайн AlDemin

  • Житель
  • ****
  • Сообщений: 494
  • Лайков: 161
  • Карма: +25/-1
  • OPi, OPi+, OPiOne, OPiZero, OPiPC2, BPi, RPiB.
    • Просмотр профиля
Re: Работа с PWM
« Ответ #25 : Февраль 21, 2016, 05:16:36 pm »
Аналогично ~6 секунд:
[      2.045]Hit any key to stop autoboot:  0 
[      5.308][mmc]: blkcnt should not be 0
[      5.799][mmc]: blkcnt should not be 0
## Booting kernel from Legacy Image at 40007800 ...
   Image Name:   Linux-3.4.39-02-lobo
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    10965080 Bytes = 10.5 MiB
   Load Address: 40008000
   Entry Point:  40008000
   Verifying Checksum ... OK
   Loading Kernel Image ... OK
OK
[      5.992][mmc]: MMC Device 2 not found
[      5.996][mmc]:  mmc  not find,so not exit
[      6.000]
Starting kernel ...
3 скунды ожидания

StaLeWaR

  • Гость
Re: Работа с PWM
« Ответ #26 : Февраль 21, 2016, 05:43:55 pm »
3 секунды можно убрать пересобрав u-boot с опцией CONFIG_BOOTDELAY=0
видимо это единственное место где можно уменьшить время загрузки

megahertz

  • Гость
Re: Работа с PWM
« Ответ #27 : Февраль 21, 2016, 05:53:11 pm »
Всем привет
Кто-то разобрался как рулить аппаратным ШИМ на опельсинке?
root@Opelsinka:/home/orangepi/examples# gpio mode 3 pwm
root@Opelsinka:/home/orangepi/examples# gpio pwm 3 100
[pwmWrite:L2344] the pin:-1 is invaild,please check it over!
где рука косячит?
адекватной документации по PWM не нашел(

StaLeWaR

  • Гость
Re: Работа с PWM
« Ответ #28 : Февраль 21, 2016, 06:39:09 pm »
адекватной поддержки pwm нету, единственный вариант через модуль pwm-sunxi
pwm сидит на PA05 который на гребенке дебага средний пин, заявленый порт PA06 который сидит на  общей гребенке GPIO на пине 7 не подерживает PWM исходя из документации на чип  H3 datasheet v1.1

поддержка в библиотеке wiringop не реализована

Оффлайн AlDemin

  • Житель
  • ****
  • Сообщений: 494
  • Лайков: 161
  • Карма: +25/-1
  • OPi, OPi+, OPiOne, OPiZero, OPiPC2, BPi, RPiB.
    • Просмотр профиля
Re: Работа с PWM
« Ответ #29 : Февраль 21, 2016, 09:05:05 pm »
Шим управляется просто, всего через два аппаратных регистра,
через один можно:
1 собственно включить
2 выбрать режим: одиночный импульс или непрерывная последовательность
3 выбрать полярность активного импульса
4 установить коэффициент деления прескалера
5 дать команду на выдачу одиночного импульса
6 пропустить напрямую 24МГц
через второй:
задать количество циклов активного импульса 16 бит
и задать количество циклов периодического сигнала.

Как все эти параметры драйвер преобразует в "файлы" в /sys/devices/virtual/sunxi_pwm/sunxi_pwm и как этим рулить -
я без понятия.