Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить

Raspberry pi 3b

Пт дек 24, 2021 07:52:04

День добрый, помогите разобраться с проблеммой, на малине сделал цикл чтобы на гпио 12 выдавался импульс 50мс потом ожидание 50мс, импульсы выдаются, но в какой то момент бывают неровными, что вижу на осциллографе, вопрос как сделать чтобы импульсы были ровными, из идей пока только использовать хардварный шим, но как им выдавать определенное колличество периодов?
Изображение

Re: Raspberry pi 3b

Пт дек 24, 2021 09:59:25

Генерируем произвольные последовательности на выводах платы Raspberry Pi
https://habr.com/ru/company/dataart/blog/330536/

Re: Raspberry pi 3b

Вс дек 26, 2021 22:22:34

Генерируем произвольные последовательности на выводах платы Raspberry Pi
https://habr.com/ru/company/dataart/blog/330536/

Спасибо за ссылку, многое объясняет, но почему то там отсутствует сам код по которому ведутся объяснения

Re: Raspberry pi 3b

Пн дек 27, 2021 09:17:08

В этой статье я расскажу, как написать обычное user space-приложение на Python для современного ARM-процессора с ОС Linux для генерирования сложных последовательностей импульсов на выводах платы. Суть идеи — использовать DMA-модуль процессора для копирования из предварительно подготовленного буфера в памяти в GPIO с высокой точностью по времени.

ссылка на код есть в видео на ютубе, продублирую:
https://github.com/Nikolay-Kha/PyCNC

Re: Raspberry pi 3b

Пн дек 27, 2021 09:35:48

Варианта два: либо попробовать заморочиться с RT-патчами (таки линукс - не рилтайм, стоит это помнить!), либо для рилтайма поставить еще микроконтроллер хоть самый простецкий.
использовать DMA-модуль процессора для копирования из предварительно подготовленного буфера в памяти в GPIO с высокой точностью по времени

Это как микроскопом орехи колоть! Да и замучаешься буфер готовить: скажем, нужно, чтобы шаговик при делении шага 1:128 сделал 5000 шагов. Для этого нужно отправить больше миллиона импульсов на драйвер. Готовить такой буфер для DMA? Ну, нифига ж себе…
Ответить