Jump to content

    

deni

Участник
  • Content Count

    40
  • Joined

  • Last visited

Community Reputation

0 Обычный

About deni

  • Rank
    Участник

Контакты

  • Сайт
    http://
  • ICQ
    0

Информация

  • Город
    Москва

Recent Profile Visitors

1512 profile views
  1. Можно попробовать через интерфейс IntLib API Manager Interfaces https://techdocs.altium.com//node/295780 А что хочется сделать в итоге? Так как скрипты это средства автоматизации, то всё равно надо будет сначала открыть эту библиотеку. Для редактирования компонента в библиотеке, скрипт должен выполняться в редакторе библиотеки, причём для схематичного отображения в ISch_Lib, а для посадочного места в IPCB_Library.
  2. Altium script

    Что значит посмотреть поля любого объекта? Если документацию по API, то здесь https://techdocs.altium.com/display/SCRT/Altium+Designer+API+Reference
  3. Делал скрипт для разбития на сектора слоя пасты у падов компонентов уже установленных в PCB редакторе. Для запуска скрипт нужно назначить на кнопку на тулбаре. Жмем кнопку, выбираем пад, в окне задаем размеры, и всё готово. Не забываем, что при обновлении из библиотек все изменения исчезнут. PasteSplitter.zip
  4. USB OTG

    1. Устройство не должно потреблять больше 100мА пока хост его не сконфигурирует. Для USB 2.0 не больше 500 мА. Сколько устройство потребляет указать в конфигурационном дескрипторе. 2. Какой нибудь из USB HID class, выбрать из тех про который знает ОС на смартфоне.
  5. Изменить стек слоев. Сделать ближе опорный слой от которого считаете диф. пару.
  6. STM32F407 и USB с BULK

    Для Bulk лучше использовать класс WinUSB. Тогда можно использовать драйвер winusb в Windows и linusb в Linux, и работать уже из пользовательского режима.
  7. Цитата(Димон Безпарольный @ Jan 10 2018, 17:59) Как разделить слой пасты на 4 части? Такое вообще возможно? Заказчик просит разделить слой пасты на 4 части оставив сам PAD нетронутым. Насколько понимаю заказчику необходимо, чтоб в трафарете для паяльной пасты большие отверстия (как центральный пад корпуса QFN) были разделены на несколько меньших. Штатного инструмента для этого кажется нет, здесь придется или править компонент в либе или использовать скрипт. Когда-то такой делал, если надо могу поискать. Скриптом можно сразу в PCB редакторе разбить без правки библиотеки.
  8. Цитата(-=TRO=- @ Dec 14 2017, 00:09) jcxz, в принципе я был готов, что под задачу понадобится более мощный МК, но первую урезанную по характеристикам тренировочную версию буду ваять на том что есть. К тому же, попытки впихнуть не впиховываемое, в рамках конкретной задачи, сильно мотивирует к углубленному изучению, что для начинающего самое оно. Я думаю не стоит впихивать невпихумое, как правильно здесь написали надо брать что-то другое. В F1 у DMA нет FIFO, и длинные инструкции типа входа в прерывание будут давать слишком большой джиттер. Если хочется именно STM32, на F4 можно попробовать, поместив буфер в отдельный блок ОЗУ.
  9. Здесь можно почитать подробней про DMA в STM32 - AN2548 Using the STM32F101xx and STM32F103xx DMA controller По приоритетам обслуживания CPU и DMA в STM32 одинаковые, и если не будет 100% загрузки шины, то запросы будут выполняться довольно точно.
  10. Цитата(jcxz @ Dec 13 2017, 21:05) Можно взять другой МК, имеющий внешнюю 16-разрядную шину и выдавать на неё при помощи DMA требуемый поток. А если в этом МК ещё и стоит хороший контроллер DMA, умеющий передачи "свЯзным списком", то его вообще можно запрограммировать так, чтобы он брал скажем два первых 16-битных слова с фиксированного адреса, а третье слово - из вашего кольцевого буфера. И чем выдача на шину выигрышние выдачи в порт GPIO через DMA? Цитата(jcxz @ Dec 13 2017, 21:05) Автор не озвучил частоту выдачи. Он озвучил цену за плату в 2$. И этот светодиод где-то и работает до мегагерца максимум.
  11. Да и с 3 каналами DMA нормальное решение от одного таймера, первый настроить только на выдачу 1, второй по буферу, третий - 0. В STM32 таймер не может управлять целым портом.
  12. Lwip: netconn TCP app

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

    ЦитатаКак это можно сделать? С уважением, Ефанов Сергей А в чем проблема вызвать из другой задачи netconn_write? Функции netconn сделаны для работы в многозадачной среде.
  14. 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 реализованы сокеты, там аналогично сделано.
  15. stm32f407 проблемы с usb

    Если программа терминал не закрыла порт после отключения устройства, то при новом подключении порт будет занят и драйвер не сможет его использовать. Это характерно для драйвера usbser.sys в Windows, причем порт в диспетчере устройств будет отображаться как исправный.