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

megahertz

  • Гость
Re: Работа с PWM
« Ответ #30 : Февраль 21, 2016, 10:00:01 pm »
круто, алгоритм действий понятен, с софтовым шимом разобрался, но хочется как-то заюзать аппаратный шим или понять как работать с пинами которые по табличке gpio readall либо не пронумерованы, либо имеют номер -1(колонка wPi)
   

Оффлайн AlDemin

  • Житель
  • ****
  • Сообщений: 495
  • Лайков: 162
  • Карма: +25/-1
  • OPi, OPi+, OPiOne, OPiZero, OPiPC2, BPi, RPiB.
    • Просмотр профиля
Re: Работа с PWM
« Ответ #31 : Февраль 21, 2016, 10:31:19 pm »
как работать с пинами которые по табличке gpio readall либо не пронумерованы, либо имеют номер -1(колонка wPi)
Не понял, где вы это смотрите?
И что за ексемплы приводили выше?
Аппаратный шим у Н3 только на PA5

StaLeWaR

  • Гость
Re: Работа с PWM
« Ответ #32 : Февраль 22, 2016, 07:09:46 am »
Уважаемый megahertz
Коли пошла такая пьянка, выложите ваши эксемплы с софтверным ШИМ ;D

megahertz

  • Гость
Re: Работа с PWM
« Ответ #33 : Февраль 22, 2016, 03:52:00 pm »
AlDemin
смотри аттач
сталевар, сорс ниже, по нему работаем с IO1 PD14(см.таблицу gpio readall)
#include <wiringPi.h>
int main()
{   
wiringPiSetup();       
int t_on, t_off;

int d, i;
d=100;

t_on=50*d;
t_off=50*(100-d);
for (i=10; i!=0; i++)
{             
digitalWrite(1, LOW);   
delayMicroseconds(t_on);   
digitalWrite(1, HIGH);       
delayMicroseconds(t_off);     
}
return(0);
}

Оффлайн AlDemin

  • Житель
  • ****
  • Сообщений: 495
  • Лайков: 162
  • Карма: +25/-1
  • OPi, OPi+, OPiOne, OPiZero, OPiPC2, BPi, RPiB.
    • Просмотр профиля
Re: Работа с PWM
« Ответ #34 : Февраль 22, 2016, 05:09:18 pm »
Так вы прокладку типа WiringPi имели ввиду...
Само собой она не покушается на то, что может быть занято другими функциями.
Работайте через драйвер ядра gpio_sunxi
Посылайте единички и нолики в "файл" /sys/class/gpio_sw/PD14/data
Получите эти единички и нолики на 12-м пину гребенки.

А чтоб воспользоваться к примеру 8 и 10 пинами в script.bin отключаем uart3 если включен:
[uart3]
uart_used = 0
uart_port = 3
uart_type = 2
uart_tx = port:PA13<3><1><default><default>
uart_rx = port:PA14<3><1><default><default>

включаем их если выключены в gpio:
[gpio_para]
gpio_used = 1
gpio_pin_4 = port:PA13<1><default><default><0>
gpio_pin_5 = port:PA14<1><default><default><0>

За одно не помешает проверить не задействованы ли они еще где:
[spi1]
spi_used = 0
spi_cs_bitmap = 1
spi_cs0 = port:PA13<2><1><default><default>
spi_sclk = port:PA14<2><default><default><default>

после старта модуль gpio_sunxi их подхватит и создаст соответствующие "файлы"
/sys/class/gpio_sw/PA13/data
/sys/class/gpio_sw/PA14/data

если нужен ввод, к примеру на PA14, то делаем так:
[gpio_para]
gpio_used = 1
gpio_pin_4 = port:PA13<1><default><default><0>
gpio_pin_5 = port:PA14<0><1><default><default>
и я так понимаю, что из файла
/sys/class/gpio_sw/PA14/data будем читать состояние пина.
Щаз проверю.

UPD: предчувствия меня не обманули: поставил перемычку на пины 8-10
пишу в /sys/class/gpio_sw/PA13/data читаю состояние /sys/class/gpio_sw/PA14/data
работает.
« Последнее редактирование: Март 01, 2016, 02:43:17 pm от AlDemin »

megahertz

  • Гость
Re: Работа с PWM
« Ответ #35 : Февраль 22, 2016, 06:46:29 pm »
спасибо, буду пробовать.

megahertz

  • Гость
Re: Работа с PWM
« Ответ #36 : Март 01, 2016, 02:15:04 pm »
хы, собсна добрался таки до вопроса) как отключить юарт в script.bin ?)

Оффлайн AlDemin

  • Житель
  • ****
  • Сообщений: 495
  • Лайков: 162
  • Карма: +25/-1
  • OPi, OPi+, OPiOne, OPiZero, OPiPC2, BPi, RPiB.
    • Просмотр профиля
Re: Работа с PWM
« Ответ #37 : Март 01, 2016, 02:39:04 pm »
uart_used       = 0

megahertz

  • Гость
Re: Работа с PWM
« Ответ #38 : Март 05, 2016, 04:11:30 pm »
взорвался мозг..как узнать какой из пинов реально PWM...тыкаться на угад?
например при gpio mode 3 pwm конфиг принял, но 3- это реально, какой пин по таблице gpio
>uart_used       = 0 - сделал
« Последнее редактирование: Март 05, 2016, 04:15:49 pm от megahertz »

Оффлайн AlDemin

  • Житель
  • ****
  • Сообщений: 495
  • Лайков: 162
  • Карма: +25/-1
  • OPi, OPi+, OPiOne, OPiZero, OPiPC2, BPi, RPiB.
    • Просмотр профиля
Re: Работа с PWM
« Ответ #39 : Март 05, 2016, 07:39:21 pm »
По таблице GPIO это PA05
Физически на гребенке между разъемами питания и HDMI - средний пин.
Только забудьте про wiringPi она им рулить не сможет.
« Последнее редактирование: Март 05, 2016, 07:47:27 pm от AlDemin »

megahertz

  • Гость
Re: Работа с PWM
« Ответ #40 : Март 06, 2016, 05:34:03 pm »
что-то не растет кокос...
мой script.fex во вложении, uart выключен..соответственно конвертирую в script.bin, заливаю в /BOOT и загружаюсь
после загрузки вижу только
normal_led  PA1   PA11  PA13  PA15  PA19  PA20  PA3  PA7  PA9  PC1  PC3  PC7   PG6  PG8  PL10
PA0         PA10  PA12  PA14  PA18  PA2   PA21  PA6  PA8  PC0  PC2  PC4  PD14  PG7  PG9  standby_led
пробовал сделать pwm_used = 1 но результата не дало
где ошибку допускаю? можете дать свой script.bin с выключенным uart и уже рабочим pwm?

Оффлайн AlDemin

  • Житель
  • ****
  • Сообщений: 495
  • Лайков: 162
  • Карма: +25/-1
  • OPi, OPi+, OPiOne, OPiZero, OPiPC2, BPi, RPiB.
    • Просмотр профиля
Re: Работа с PWM
« Ответ #41 : Март 06, 2016, 07:16:59 pm »
Кокос в том, что в GPIO вы его не найдете, тк это не просто GPIO выход, а аппаратный ШИМ контроллер,
включается в script.bin:
[pwm0_para]
pwm_used            = 1
pwm_positive        = port:PA05<3><0><default><default>

Управлять можно напрямую двумя 32-х битными регистрами :
по адресам: 0x01C21400 0x01C21404
описание в даташите на Н3 п. 4.10.

Можно через драйвер:
добавить в /etc/modules
pwm-sunxi
Получите файловую структуру в: /sys/device/virtual/sunxi_pwm/sunxi_pwm она же /sys/class/sunxi_pwm/sunxi_pwm
Как через нее управлять контроллером без понятия, не разбирался,
но должно быть что то стандартное, иначе зачем драйвер.

megahertz

  • Гость
Re: Работа с PWM
« Ответ #42 : Март 06, 2016, 08:08:27 pm »
AlDemin, спасибо за пояснения

swg

  • Гость
Re: Работа с PWM
« Ответ #43 : Июнь 14, 2016, 11:20:44 am »
в версии 1.2 Н3 описания  сказано, что версия 1.1 исправляет ошибки описания PWM , допущенные в первой версии

user736

  • Гость
Re: Работа с PWM
« Ответ #44 : Ноябрь 01, 2016, 11:45:29 pm »
Может кому пригодится :)
простой скриптец для работы с аппаратным шим на python
https://github.com/user736/h3_pwm