Jump to content

    

deni

Участник
  • Content Count

    41
  • Joined

  • Last visited

Community Reputation

0 Обычный

About deni

  • Rank
    Участник

Контакты

  • Сайт
    Array
  • ICQ
    Array

Информация

  • Город
    Array

Recent Profile Visitors

1719 profile views
  1. Можно использовать драйвера от FTDI VCP, там как раз по 2 эндпоинта на порт. Можно получить 1, 2 или 4 порта, на 5 эндпоинтах. Состояние линий там передается в первых двух байтах каждой посылки. Но это если не смущает использование их драйверов, так как они запрещают использовать для другого железа.
  2. Можно попробовать через интерфейс IntLib API Manager Interfaces https://techdocs.altium.com//node/295780 А что хочется сделать в итоге? Так как скрипты это средства автоматизации, то всё равно надо будет сначала открыть эту библиотеку. Для редактирования компонента в библиотеке, скрипт должен выполняться в редакторе библиотеки, причём для схематичного отображения в ISch_Lib, а для посадочного места в IPCB_Library.
  3. Что значит посмотреть поля любого объекта? Если документацию по API, то здесь https://techdocs.altium.com/display/SCRT/Altium+Designer+API+Reference
  4. Делал скрипт для разбития на сектора слоя пасты у падов компонентов уже установленных в PCB редакторе. Для запуска скрипт нужно назначить на кнопку на тулбаре. Жмем кнопку, выбираем пад, в окне задаем размеры, и всё готово. Не забываем, что при обновлении из библиотек все изменения исчезнут. PasteSplitter.zip
  5. 1. Устройство не должно потреблять больше 100мА пока хост его не сконфигурирует. Для USB 2.0 не больше 500 мА. Сколько устройство потребляет указать в конфигурационном дескрипторе. 2. Какой нибудь из USB HID class, выбрать из тех про который знает ОС на смартфоне.
  6. Изменить стек слоев. Сделать ближе опорный слой от которого считаете диф. пару.
  7. STM32F407 и USB с BULK

    Для Bulk лучше использовать класс WinUSB. Тогда можно использовать драйвер winusb в Windows и linusb в Linux, и работать уже из пользовательского режима.
  8. Насколько понимаю заказчику необходимо, чтоб в трафарете для паяльной пасты большие отверстия (как центральный пад корпуса QFN) были разделены на несколько меньших. Штатного инструмента для этого кажется нет, здесь придется или править компонент в либе или использовать скрипт. Когда-то такой делал, если надо могу поискать. Скриптом можно сразу в PCB редакторе разбить без правки библиотеки.
  9. Я думаю не стоит впихивать невпихумое, как правильно здесь написали надо брать что-то другое. В F1 у DMA нет FIFO, и длинные инструкции типа входа в прерывание будут давать слишком большой джиттер. Если хочется именно STM32, на F4 можно попробовать, поместив буфер в отдельный блок ОЗУ.
  10. Здесь можно почитать подробней про DMA в STM32 - AN2548 Using the STM32F101xx and STM32F103xx DMA controller По приоритетам обслуживания CPU и DMA в STM32 одинаковые, и если не будет 100% загрузки шины, то запросы будут выполняться довольно точно.
  11. И чем выдача на шину выигрышние выдачи в порт GPIO через DMA? Он озвучил цену за плату в 2$. И этот светодиод где-то и работает до мегагерца максимум.
  12. Да и с 3 каналами DMA нормальное решение от одного таймера, первый настроить только на выдачу 1, второй по буферу, третий - 0. В STM32 таймер не может управлять целым портом.
  13. Lwip: netconn TCP app

    Можно пройти отладчиком во внутрь функции и посмотреть где возникает ошибка и возвращается ERR_VAL.
  14. Lwip: netconn TCP app

    А в чем проблема вызвать из другой задачи netconn_write? Функции netconn сделаны для работы в многозадачной среде.
  15. Lwip: netconn TCP app

    Можно включить в 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 реализованы сокеты, там аналогично сделано.