Перейти к публикации

Рекомендованные сообщения

Опубликовано:

@WG_Magners По светодиодам такие предложения:

1. Сделать возможность запоминать несколько наборов с величинами PWM и возможность переключать их в зависимости от разных событий (нажатий кнопок)

2. Есть ли возможность зажигать светодиоды из конфигуратора с целью уточнения номера каждого светодиода.

3. Сделать, что бы на вкладке LED показывалось, какой светодиод в данный момент горит (например так же сделать подсветку строки как для логических кнопок). Это так же для отладки настроек светодиодов.

4. Сдвиговые регистры 74HC595 ожидаются?

Опубликовано:

@WG_Magners  А еще вопрос: Можно ли сделать возможность принудительно скрывать кнопки от ОС, скажем галочку где то ставить?

 

Пример: хочу сделать управление закрылками со светодиодной индикацией. Делаю из трех физ. кнопок - 3 логических обычных кнопки - их передаю в ОС для управления закрылками. Из тех же физ. кнопок делаю еще 3 лог. радиокнопки - ими управляю только светодиодами и в ОС их состояние в ОС передавать не хочу.

 

Тогда при назначении на лог. кнопку физ. кнопки можно было бы эту галку по умолчанию ставить, с возможностью снятия. А для кнопок которые должны быть скрыты от ОС галочка с этого поля автоматом снималась и поле делалось неактивным. (Тогда в конфигураторе будет однозначно ясно, какие кнопки виды ОС, а какие нет).

 

 

Опубликовано:
13 минут назад, Johnet сказал:

@WG_Magners  А еще вопрос: Можно ли сделать возможность принудительно скрывать кнопки от ОС, скажем галочку где то ставить?

 

Пример: хочу сделать управление закрылками со светодиодной индикацией. Делаю из трех физ. кнопок - 3 логических обычных кнопки - их передаю в ОС для управления закрылками. Из тех же физ. кнопок делаю еще 3 лог. радиокнопки - ими управляю только светодиодами и в ОС их состояние в ОС передавать не хочу.

 

Тогда при назначении на лог. кнопку физ. кнопки можно было бы эту галку по умолчанию ставить, с возможностью снятия. А для кнопок которые должны быть скрыты от ОС галочка с этого поля автоматом снималась и поле делалось неактивным. (Тогда в конфигураторе будет однозначно ясно, какие кнопки виды ОС, а какие нет).

 

 

Хорошая фича, возьму на заметку

Опубликовано:
Только что, WG_Magners сказал:

Хорошая фича, возьму на заметку

А выше предложения ответь, пожалуйста...

Опубликовано:
12 минут назад, Johnet сказал:

А выше предложения ответь, пожалуйста...

Сорян, не увидел с телефона

 

37 минут назад, Johnet сказал:

@WG_Magners

1. Сделать возможность запоминать несколько наборов с величинами PWM и возможность переключать их в зависимости от разных событий (нажатий кнопок)

2. Есть ли возможность зажигать светодиоды из конфигуратора с целью уточнения номера каждого светодиода.

3. Сделать, что бы на вкладке LED показывалось, какой светодиод в данный момент горит (например так же сделать подсветку строки как для логических кнопок). Это так же для отладки настроек светодиодов.

4. Сдвиговые регистры 74HC595 ожидаются?

1. Скорее будет возможность привязки к логической оси. Максимальное количество осей планируется увеличить до 10 . Из них только 8 можно будет вывести в ОС, а две дополнительные можно использовать вот под такие вещи или под оси в кнопки.

2. Сходу это нельзя сделать. Возможно в новой версии будут большие изменения по части USB, тогда можно попробовать под шумок впихнуть отправку состояний светодиодов. А пока что проверка через нажатие кнопок

3. Да, это в принципе можно. Добавлю, и если ничего не сломается оставлю

4. Ожидаются

  • Нравится 1
Опубликовано: (изменено)
4 часа назад, WG_Magners сказал:

1. Скорее будет возможность привязки к логической оси. Максимальное количество осей планируется увеличить до 10 . Из них только 8 можно будет вывести в ОС, а две дополнительные можно использовать вот под такие вещи или под оси в кнопки.

 

Я проводил эксперементы с большим количеством осей.

 

Можно делать более 8, если описывать их как слайдер. Линуксу так вообще всёравно, видит сколько насуеш, до исчерпания 64байт. Винда вот капризная.

 

В винде делал композитное устройство, банально добавляя дополнительные репортИД. Это она видит без проблем. На первый взгляд. А потом, после перезагрузки или перевтыкания, может вставить виртуальные джои в систему не в том порядке что в прошлый раз, т.е. сначала второй а потом первый, даже те игры которые не по старому читают, всёравно ломались. Почему она так поступает, не разбирался. Может и мой косяк гдето в коде, я там много чего руками поправил, чтобы в халовских екзамплах сделать отправку нескольких репортИД.

 

 

Зачем весь этот бред с названием осей в дескрипторах, вот бы узнать. Почему нельзя объявить оси просто разрядностью и количеством, вот бы узнать дважды...

Изменено пользователем l3VGV
  • Спасибо! 1
Опубликовано:
4 часа назад, l3VGV сказал:

Можно делать более 8, если описывать их как слайдер.

отлично

Опубликовано: (изменено)
4 часа назад, =M=PiloT сказал:

отлично

Я тоже проводил такие эксперименты - больше двух слайдеров ни-ни.

Линукс не в счёт, 99 процентов юзеров на винде

Изменено пользователем WG_Magners
Опубликовано:

Ну 2 оси для разных функций не пропадут, а 8ми для прямого назначения оси скорее всего хватит.

Опубликовано:

Скажите пожалуйста, что такое припаяно по бокам от тле и внизу? Буду заказывать тле, но этого нет в комплекте. Где это найти и что это? 

Screenshot_20200505_154819_org.telegram.messenger.jpg

Опубликовано: (изменено)
32 минуты назад, Alex3232 сказал:

Скажите пожалуйста, что такое припаяно по бокам от тле и внизу? Буду заказывать тле, но этого нет в комплекте. Где это найти и что это? 

Вверху блокирующий конденсатор, обычно от 0.1 до 1 мкФ. Нужен чтобы отфильтровать шумы по питанию датчика.

Внизу подтягивающий резистор, вероятно на линии MOSI (DATA). Обычно используют значения около 1 до 10кОм, на этой плате стоит 3.9кОм

Изменено пользователем WG_Magners
Опубликовано:
Только что, WG_Magners сказал:

Вверху блокирующий конденсатор, обычно от 0.1 до 1 мкФ. Нужен чтобы отфильтровать шумы по питанию датчика.

Внизу подтягивающий резистор, вероятно на линии MOSI (DATA). Обычно используют значения около 1 до 10кОм, на этой плате стоит 3.9кОм

Можете пожалуйста ссылку скинуть, алиэкспресс желательно, просто там не всегда корректно названия даны, а я не знаю, как искать

11 минут назад, WG_Magners сказал:

Вверху блокирующий конденсатор, обычно от 0.1 до 1 мкФ. Нужен чтобы отфильтровать шумы по питанию датчика.

Внизу подтягивающий резистор, вероятно на линии MOSI (DATA). Обычно используют значения около 1 до 10кОм, на этой плате стоит 3.9кОмlockquote виджет

И нужно ли это вообще для РУСа беж твиста? 

Опубликовано: (изменено)

 

15 минут назад, Alex3232 сказал:

Можете пожалуйста ссылку скинуть, алиэкспресс желательно, просто там не всегда корректно названия даны, а я не знаю, как искать

 

На плате, кстати, подписано какие номиналы компонентов надо использовать.

Платы будут такие же? Это важно для понимания типоразмера компонентов

Изменено пользователем WG_Magners
Опубликовано:
5 минут назад, WG_Magners сказал:

 

 

На плате, кстати, подписано какие номиналы компонентов надо использовать.

Платы будут такие же? Это важно для понимания типоразмера компонентов

Будут такие (верхняя и вторая такая внизу справа на шильде) 

IMG_20200502_190742_541.jpg

Опубликовано:
19 минут назад, Alex3232 сказал:

И нужно ли это вообще для РУСа беж твиста?

Да, нужно. Это необходимая обвязка, с которой гарантируется работоспособность. 

Кстати, TLE которые? 5010 или 5011?

Опубликовано:
Только что, WG_Magners сказал:

Да, нужно. Это необходимая обвязка, с которой гарантируется работоспособность. 

Кстати, TLE которые? 5010 или 5011?

5010

Опубликовано:
Только что, Alex3232 сказал:

5010

У 5010 с фриджоем гарантирована работа только с питанием датчика 5В и с использованием преобразователя логических уровней 3.3-5В для линий данных. Пару страниц назад было обсуждение.

На фото на платах посадочные места (места куда паяют компоненты) разные по размеру и их разное количество. Я не могу по этому фото сказать что там куда. 

На верхней плате вроде резисторы/конденсаторы типоразмера 1206, на правой похоже на 0603

 

Я думаю здесь есть люди, которые шарят именно по этим платам. Нужно дождаться их ответа)

  • Поддерживаю! 1
Опубликовано:
4 часа назад, Alex3232 сказал:

Будут такие (верхняя и вторая такая внизу справа на шильде) 

Нижняя (большая) плата, если я не ошибаюсь, от другого проекта (MMJoy2).  У двух плат посередине жотелось бы увидеть обратную сторону. 

 

Опубликовано: (изменено)

Если можно, интересующие вас платы обе стороны крупнее и в более высоком качестве. Так ничего не видно.

Изменено пользователем Johnet
Опубликовано: (изменено)
2 часа назад, Johnet сказал:

Если можно, интересующие вас платы обе стороны крупнее и в более высоком качестве. Так ничего не видно.

Не в этой теме задаются такие вопросы.

Скрытый текст

Это платы датчиков TLE5010, сдвиговых регистров на один чип и Shield из проекта MMJOY2, крайних двух ревизий.

 

Изменено пользователем Vumpel18
  • Спасибо! 1
Опубликовано: (изменено)
11 минут назад, Vumpel18 сказал:

Не в этой теме задаются такие вопросы.

Раз уж здесь задали эти вопросы, не подскажите конденсаторы на плате TLE нарисованы: 3 шт. 2 шт. - 0,1 и 1 мкФ - фильтр питания? А третий куда, сколько и для чего? Резистор 10К? Он линию MISO подтягивает?

 

Почему бы и в этой теме TLE не обсудить?

Изменено пользователем Johnet
Опубликовано:
14 минут назад, Johnet сказал:

Раз уж здесь задали эти вопросы, не подскажите конденсаторы на плате TLE нарисованы: 3 шт. 2 шт. - 0,1 и 1 мкФ - фильтр питания? А третий куда, сколько и для чего? Резистор 10К? Он линию MISO подтягивает?

 

Почему бы и в этой теме TLE не обсудить?

У меня на своих платах стоят резисторы 1к. Вот крупно номиналы на платах из проекта MMJoy2 

Буфер обмена02.jpg

  • Нравится 1
Опубликовано:
5 минут назад, =SOVA=Teiger сказал:

У меня на своих платах стоят резисторы 1к.

Да, да, я в номинале ошибся... Вопрос в том, что на знакомых мне платах (и на вашей тоже) подтягиваюся линии CS и MISO. На датчике выше изображен один резистор какую линию он подтягивает? Т.е. вторую можно не подтягивать?

Опубликовано:
1 минуту назад, Johnet сказал:

Да, да, я в номинале ошибся... Вопрос в том, что на знакомых мне платах (и на вашей тоже) подтягиваюся линии CS и MISO. На датчике выше изображен один резистор какую линию он подтягивает? Т.е. вторую можно не подтягивать?

CS подтягивать не обязательно

  • Спасибо! 1
Опубликовано:
8 часов назад, Alex3232 сказал:

Будут такие (верхняя и вторая такая внизу справа на шильде) 

IMG_20200502_190742_541.jpg

Это плата проекта MMJoy2. Вопрос лучше задать сюда 

 

  • Поддерживаю! 1
Опубликовано: (изменено)

Возвращаясь к вопросу @Alex3232, наличие конденсаторов с номиналами 0.1мкФ и 1мкФ + резисторов с номиналами 4.7кОм и 100 Ом перекроют все потребности для любых плат TLE. Типоразмер нужно смотреть для конкретной платы, но при желании 0603 можно запаять почти куда угодно

 

Изменено пользователем WG_Magners
Опубликовано:
22.04.2020 в 23:26, l3VGV сказал:

А нет желания сделать всё скрытно через контрол ендпоинт?

 

23.04.2020 в 00:59, WG_Magners сказал:

Я не знаю как мне со стороны ББ это организовывать.

 

 

Посвятил данному вопросу некоторое время.

 

Стандартный HID драйвер не имеет функции подобной WinUsb_ControlTransfer.

 

Как говорится, никогда такого небыло и вот опять. Никак не ожидал подобной подставы.

 

Т.е. в начале работы он сам выполняет все стандартные действия, а если нужно чтото ещё - пройдите в лес. Или libusb.

 

 

Досадно, вопрос повышения совместимости(некоторые хосты видя неожиданное в дескрипторе - просто не цепляют устройство) - отложен.

 

 

  • Спасибо! 1
Опубликовано: (изменено)

Обратил внимание на функцию CustomHID_StringSerial, всегда возвращает одно и тоже.

Видимо было сгенерировано в древнем кубе. Современный делает корркетно, с учетом уникального кода кристала.

 

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

Винда также обещала что в случае если есть уникальные серийники, то гуид устройства будет сохранятся при перетыкании в другие порты.

 

__ALIGN_BEGIN uint8_t USBD_StringSerial[USB_SIZ_STRING_SERIAL] __ALIGN_END = {
  USB_SIZ_STRING_SERIAL,
  USB_DESC_TYPE_STRING,
};

#define UID_BASE              0x1FFFF7E8UL    /*!< Unique device ID register base address */
#define         DEVICE_ID1          (UID_BASE)
#define         DEVICE_ID2          (UID_BASE + 0x4)
#define         DEVICE_ID3          (UID_BASE + 0x8)

static void Get_SerialNum(void)
{
  uint32_t deviceserial0, deviceserial1, deviceserial2;

  deviceserial0 = *(uint32_t *) DEVICE_ID1;
  deviceserial1 = *(uint32_t *) DEVICE_ID2;
  deviceserial2 = *(uint32_t *) DEVICE_ID3;

  deviceserial0 += deviceserial2;

  if (deviceserial0 != 0)
  {
    IntToUnicode(deviceserial0, &USBD_StringSerial[2], 8);
    IntToUnicode(deviceserial1, &USBD_StringSerial[18], 4);
  }
}

 

Изменено пользователем l3VGV
Опубликовано:
45 минут назад, l3VGV сказал:

всегда возвращает одно и тоже.

Спасибо, проверю. 

Точно помню, что серийник генерировался корректно исходя из серийника камня. Возможно оптимизатор что-то съел

  • Нравится 1
Опубликовано:

Ага, отбой. Всё нормально, я посмотрел не туда :) поискал не слишком внимательно, и не нашел что функция то есть void Get_SerialNum(void) в usb_hw.c. И даже работает также. Только лежит не там где у меня в новой версии. А для смущения меня у них прямо в дескриптор сунут фиксированный текст

Опубликовано: (изменено)

@WG_Magners Помоги! Цепляю к трем сдвиговым регистрам 74HC165 - 4 энкодера. Стоит назначить хотя бы один энкодер (два контакта). Все физ кнопки начинают синхронно промаргивать, вплоть до сработки кнопок. Прошивка и конфигуратор 1.5.1b4.

От сработки лог. кнопок спасает увеличение времени дребезга до 100 мс.

Если при не назначено ни одного энкодере ничего не моргает, даже при времени дребезга 50 мс.

Отбой. Похоже что то с платой сдвиговых регистров.

Изменено пользователем Johnet
Опубликовано:
1 час назад, Johnet сказал:

@WG_Magners Помоги! Цепляю к трем сдвиговым регистрам 74HC165 - 4 энкодера. Стоит назначить хотя бы один энкодер (два контакта). Все физ кнопки начинают синхронно промаргивать, вплоть до сработки кнопок. Прошивка и конфигуратор 1.5.1b4.

От сработки лог. кнопок спасает увеличение времени дребезга до 100 мс.

Если при не назначено ни одного энкодере ничего не моргает, даже при времени дребезга 50 мс.

Отбой. Похоже что то с платой сдвиговых регистров.

Такое ещё может происходить если регистры к 5В подключить

  • Спасибо! 1
Опубликовано:

Не... У одного регистра питание отвалилось... Все хорошо, Спасибо...

Опубликовано: (изменено)

Делюсь опытом.

 

Провел поверхостные експеременты, для своего проекта, с подключением 8 тле5010. Если их подключить не последовательно(как это обычно принято), а параллельно, т.е. каждой выделить свою линию данных и общий CS, а потом опрашивать просто ногодрыгом. То затраты по тактам CPU на такой подход плюс минус как через HAL без дма/прерываний на опрос 1го датчика, но с вычиткой сразу всех 8ми.

 

Т.е. сначала ставим пины на выход, выводим туда 00, 80. Переключаем пины на вход, и сохраняем всё что есть в порту. Я для ускорения всё делал на PB, и просто сохранял IDR | 0xFFFF в массив из uint16_t data[40](для гибкости конфигурации, можно и все порты посохранять...).

А потом уже оттуда побитово доставать. 

 

По пинам затраты теже вместо 8 селектов - 8 данных, вместо 1 данных - 1 общий селект. По скорости выйгрыш налицо. По надежности, GPIO пока не подводило, в отличии от. И на i2c и на spi всё какойто косяк/особенность но есть.

 

Ещё один важный момент. Подтяжка до 5В теперь тянет реально до 5В, а не +600мВ от диода(хотя и их вполне хватает). 

 

 

17.05.2020 в 23:00, l3VGV сказал:

отбой

 

8 часов назад, Johnet сказал:

Отбой

 

неделя ложных тревог.

Изменено пользователем l3VGV
  • Нравится 2
Опубликовано:
9 часов назад, l3VGV сказал:

Если их подключить не последовательно(как это обычно принято), а параллельно, т.е. каждой выделить свою линию данных и общий CS, а потом опрашивать просто ногодрыгом.

Интересный подход. Тут выходит что затраты одинаковые что для 1 датчика, что для 8ми. 

Если б уже не перелез на более быстрый DMA без HAL, с которым особо нет проблем, то можно было бы попробовать такое внедрить. Правда с унификацией проблемы - например есть ещё датчики MLX90393 и внешние АЦП, тоже на SPI. Им для такого подхода будет нужно в два раза больше пинов данных, т.к. full-duplex

Опубликовано:
6 часов назад, WG_Magners сказал:

Тут выходит что

 

эксперемент получился скорее исследовательский, чем практически значимый.

 

Там где важна скорость опроса - не нужно 8 тле на спи(пусть это рус или педали, хотя туда есть и лучше варианты). Там где нужно 8 тле - не нужна высокая скорость опроса(руды, квадранты и прочие вспомогательные оси).

 

Но вот заскочило в голову, и оказалось проще попробовать чем забыть.

 

 

6 часов назад, WG_Magners сказал:

с унификацией

было покончено приказом по домашней лаборатории. Чтот проблем и возни в разы больше чем пользы.

 

 

 

6 часов назад, WG_Magners сказал:

проблемы

 

Если угорать по скорости, то нужно сразу посмотреть и на всеми любимый atan2(в среднем 2500тактов, что более чем сравнимо со временем опроса тле - 4800тактов на средней/безопасной скорости, путем нехитрых вычислений становится видно, что 8 датчиков едва влезут в килогерцовый цикл).

Я конечно не упустил случая. И сделал свой, с интами и сдвигами. Ну, чтобы вот подал ему на вход инты с тле, а на выходе от инт_мин до инт_макс. Получилось быстро, но не так точно как мечталось. Но опятьже, см пункт 1, там где важна точность и скорость, датчиков 2 и можно оставить флоатовый атан, а там где датчиков много, там скорость не важна  и точность не критична, можно и кордиком обойтись.

Опубликовано:
6 часов назад, l3VGV сказал:

скорость не важна  и точность не критична, можно и кордиком обойтись

Где скорость не важна там и atan2 вполне хорошо себя будет чувствовать. 

Тоже пробовал делать интовый, но мне не понравился результат. В итоге решил не мудрить и оставить во float-e.

Опубликовано:
17 часов назад, WG_Magners сказал:

Тоже пробовал делать интовый, но мне не понравился результат.

 

Я оставил эти бренные потуги. И взял готовое. По случаю запилил уютный бложик на гитхабе

https://github.com/l3VGV/fxpt_atan2

 

22.05.2020 в 08:52, WG_Magners сказал:

Интересный подход. Тут выходит что затраты одинаковые что для 1 датчика, что для 8ми. 

 

Творческая мысль пошла дальше. Если уж мы всёравно поштучно клоки выписываем, то отчегобы не совместить опрос 5010 и сразу в один из пинов не погрузить данные со сдвиговых регистров? Когда их 6 - выгода опять существенная.

 

Таким образом

22.05.2020 в 08:52, WG_Magners сказал:

 с унификацией

в очередной раз успешно расправились..

Опубликовано: (изменено)

Скажите, так вот можно соединить два контроллера?

111.thumb.jpg.3a98c1e56b0433c907c9a67d70a9e1ed.jpg

Задача с контроллера №2 передать состояние кнопки, что бы зажечь на контроллере №1 светодиод?

Два контроллера т.к. это два разных устройства.

Изменено пользователем Johnet

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
×
×
  • Создать...