

deni
Участник-
Content Count
41 -
Joined
-
Last visited
Community Reputation
0 ОбычныйAbout deni
-
Rank
Участник
Контакты
-
Сайт
Array
-
ICQ
Array
Информация
-
Город
Array
Recent Profile Visitors
-
USB CDC: как сэкономить на конечных точках?
deni replied to Arlleex's topic in В помощь начинающему
Можно использовать драйвера от FTDI VCP, там как раз по 2 эндпоинта на порт. Можно получить 1, 2 или 4 порта, на 5 эндпоинтах. Состояние линий там передается в первых двух байтах каждой посылки. Но это если не смущает использование их драйверов, так как они запрещают использовать для другого железа. -
Скрипт выбора конкретного файла из всех файлов проекта
deni replied to toshas's topic in Altium Designer, DXP, Protel
Можно попробовать через интерфейс IntLib API Manager Interfaces https://techdocs.altium.com//node/295780 А что хочется сделать в итоге? Так как скрипты это средства автоматизации, то всё равно надо будет сначала открыть эту библиотеку. Для редактирования компонента в библиотеке, скрипт должен выполняться в редакторе библиотеки, причём для схематичного отображения в ISch_Lib, а для посадочного места в IPCB_Library. -
Altium script
deni replied to piton369's topic in Altium Designer, DXP, Protel
Что значит посмотреть поля любого объекта? Если документацию по API, то здесь https://techdocs.altium.com/display/SCRT/Altium+Designer+API+Reference -
Как отредактировать слой пасты на ПАДе?
deni replied to MementoMori's topic in Altium Designer, DXP, Protel
Делал скрипт для разбития на сектора слоя пасты у падов компонентов уже установленных в PCB редакторе. Для запуска скрипт нужно назначить на кнопку на тулбаре. Жмем кнопку, выбираем пад, в окне задаем размеры, и всё готово. Не забываем, что при обновлении из библиотек все изменения исчезнут. PasteSplitter.zip -
USB OTG
deni replied to Art55555's topic in RS232/LPT/USB/PCMCIA/FireWire
1. Устройство не должно потреблять больше 100мА пока хост его не сконфигурирует. Для USB 2.0 не больше 500 мА. Сколько устройство потребляет указать в конфигурационном дескрипторе. 2. Какой нибудь из USB HID class, выбрать из тех про который знает ОС на смартфоне. -
Трасировка печатной платы для HDMI в Altium Designer
deni replied to Hanter36's topic in Altium Designer, DXP, Protel
Изменить стек слоев. Сделать ближе опорный слой от которого считаете диф. пару. -
Для Bulk лучше использовать класс WinUSB. Тогда можно использовать драйвер winusb в Windows и linusb в Linux, и работать уже из пользовательского режима.
-
Вопросы начинающих 2017 г.
deni replied to Владимир's topic in Altium Designer, DXP, Protel
Насколько понимаю заказчику необходимо, чтоб в трафарете для паяльной пасты большие отверстия (как центральный пад корпуса QFN) были разделены на несколько меньших. Штатного инструмента для этого кажется нет, здесь придется или править компонент в либе или использовать скрипт. Когда-то такой делал, если надо могу поискать. Скриптом можно сразу в PCB редакторе разбить без правки библиотеки. -
Хочу писать в 16 линеек WS2812B на макс. скорости.
deni replied to -=TRO=-'s topic in ARM, 32bit
Я думаю не стоит впихивать невпихумое, как правильно здесь написали надо брать что-то другое. В F1 у DMA нет FIFO, и длинные инструкции типа входа в прерывание будут давать слишком большой джиттер. Если хочется именно STM32, на F4 можно попробовать, поместив буфер в отдельный блок ОЗУ. -
Хочу писать в 16 линеек WS2812B на макс. скорости.
deni replied to -=TRO=-'s topic in ARM, 32bit
Здесь можно почитать подробней про DMA в STM32 - AN2548 Using the STM32F101xx and STM32F103xx DMA controller По приоритетам обслуживания CPU и DMA в STM32 одинаковые, и если не будет 100% загрузки шины, то запросы будут выполняться довольно точно. -
Хочу писать в 16 линеек WS2812B на макс. скорости.
deni replied to -=TRO=-'s topic in ARM, 32bit
И чем выдача на шину выигрышние выдачи в порт GPIO через DMA? Он озвучил цену за плату в 2$. И этот светодиод где-то и работает до мегагерца максимум. -
Хочу писать в 16 линеек WS2812B на макс. скорости.
deni replied to -=TRO=-'s topic in ARM, 32bit
Да и с 3 каналами DMA нормальное решение от одного таймера, первый настроить только на выдачу 1, второй по буферу, третий - 0. В STM32 таймер не может управлять целым портом. -
Можно пройти отладчиком во внутрь функции и посмотреть где возникает ошибка и возвращается ERR_VAL.
-
А в чем проблема вызвать из другой задачи netconn_write? Функции netconn сделаны для работы в многозадачной среде.
-
Можно включить в LWIP таймауты, тогда из функции netconn_recv будет выходить через указанное время, даже если ничего не принято. #define LWIP_SO_RCVTIMEO 1 // accept, receive #define LWIP_SO_SNDTIMEO 1 // send Если надо прервать ожидание netconn_recv из другой задачи, во FreeRTOS можно включить опцию #define INCLUDE_xTaskAbortDelay 1 и вызовом xTaskAbortDelay(hTask) разблокировать задачу. И насколько помню в lwip/port/sys_arch.c ожидание из очереди без таймаута там зачем-то обернуто в цикл, хотя документация на FreeRTOS говорить что вызов xQueueReceive с portMAX_DELAY бесконечный. Так что если не убрать цикл, задача опять заблокируется. И есть вариант вообще без надобности не блокировать задачу вызовом netconn_recv, для этого при создании соединение использовать netconn_new_with_proto_and_callback и назначить callback, в котором допустим взводить семафор. Сколько раз был вызван callback c NETCONN_EVT_RCVPLUS, столько раз и надо вызвать netconn_recv. Посмотрите как в LWIP реализованы сокеты, там аналогично сделано.