↧
Что за резисторы?
↧
STM32 рядом с фазыми проводниками.
На плату подается 6 фаз от 3 инверторов. Итого 380в модулированных ШИМ-ом 4кГц (левая часть платы).
В 22.7мм находится STM32, гальванически отвязаный от высоковольтных цепей через оптопары. Питание STM32 от импульсного БП 220в.
1. Будет ли стабильно работать STM32, в условиях помех от высоковольтных цепей?
2. Имеет смысл между STM32 и высоковольтными цепями сформировать полигон подключённый к GND STM32? (показан стрелкой).
3. Посоветуйте, что сделать для нормальной работы STM32.
В 22.7мм находится STM32, гальванически отвязаный от высоковольтных цепей через оптопары. Питание STM32 от импульсного БП 220в.
1. Будет ли стабильно работать STM32, в условиях помех от высоковольтных цепей?
2. Имеет смысл между STM32 и высоковольтными цепями сформировать полигон подключённый к GND STM32? (показан стрелкой).
3. Посоветуйте, что сделать для нормальной работы STM32.

↧
↧
Уменьшение теплоотвода на полигон
Для уменьшения теплоотвода при пайке на полигон, делают так:![]()
Как называются такие мостики, и как их активировать в Altium Designer для контактной площадки и переходного отверстия?

Как называются такие мостики, и как их активировать в Altium Designer для контактной площадки и переходного отверстия?
↧
Непонятки с USB-CDC
Пытаюсь реализовать USB-CDC на STM32F042. Завел, как и положено, помимо нулевой еще три контрольных точки: 0x81, 0x83 и 0x02. Прием данных на 0x83 идет превосходно, а вот отправка — никак. Кроме того, непонятно: а) зачем нужна EP1, если она вообще никакого участия в работе не принимает, б) как работать с "vendor"запросами (ни на какую точку не приходят прерывания от них!)?
В качестве копируемого устройства выбрал PL2303, который везде работает и точно поддерживает аппаратное управление потоком. При подключении dmesg ругается лишь на "vendor"запросы:
И действительно, в коде модуля ядра есть:
В обработчике каждой точки я поставил диагностический асинхронный вывод (через DMA) на UART (понятно, что скорости UART не хватает, но все-таки, ни разу не проскочило ни одного запроса на EP1, а с EP0 хост общается лишь на стадии конфигурирования. Дальше при отправке данных вижу постоянные ругательства:
Но не вижу запросов на EP0!!! (в самом ее начале стоит диагностический выхлоп, так что, если бы что-то и было, то наверняка хоть раз да проскочило)
Обработчик EP2 и EP3 такой:
На чтение /dev/ttyUSB1 dmesg ругается, что "vendor"запросы не проходят (это и понятно), на запись все ОК, но почему-то самый первый раз отправляемый в /dev/ttyUSB1 текст читается дважды!
При чтении тоже загадки какие-то: иногда текст считывается целиком (пишу в устройство при помощи `echo "..."> /dev/ttyUSB1`), а иногда кусками и дважды!
В качестве копируемого устройства выбрал PL2303, который везде работает и точно поддерживает аппаратное управление потоком. При подключении dmesg ругается лишь на "vendor"запросы:
[4667079.284993] usb 1-2: USB disconnect, device number 80 [4667079.685834] usb 1-2: new full-speed USB device number 82 using xhci_hcd [4667079.812097] usb 1-2: config index 0 descriptor too short (expected 53, got 39) [4667079.813425] usb 1-2: New USB device found, idVendor=067b, idProduct=2303 [4667079.813426] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0 [4667079.813951] pl2303 1-2:1.0: pl2303 converter detected [4667079.814076] pl2303 1-2:1.0: pl2303_vendor_read - failed to read [8484]: -71 [4667079.814168] pl2303 1-2:1.0: pl2303_vendor_write - failed to write [0404]: -71 [4667079.814262] pl2303 1-2:1.0: pl2303_vendor_read - failed to read [8484]: -71 [4667079.814354] pl2303 1-2:1.0: pl2303_vendor_read - failed to read [8383]: -71 [4667079.814448] pl2303 1-2:1.0: pl2303_vendor_read - failed to read [8484]: -71 [4667079.814542] pl2303 1-2:1.0: pl2303_vendor_write - failed to write [0404]: -71 [4667079.814637] pl2303 1-2:1.0: pl2303_vendor_read - failed to read [8484]: -71 [4667079.814733] pl2303 1-2:1.0: pl2303_vendor_read - failed to read [8383]: -71 [4667079.814860] pl2303 1-2:1.0: pl2303_vendor_write - failed to write [0000]: -71 [4667079.814944] pl2303 1-2:1.0: pl2303_vendor_write - failed to write [0001]: -71 [4667079.815027] pl2303 1-2:1.0: pl2303_vendor_write - failed to write [0002]: -71 [4667079.815073] usb 1-2: pl2303 converter now attached to ttyUSB1
И действительно, в коде модуля ядра есть:
... pl2303_vendor_read(serial, 0x8484, buf); pl2303_vendor_write(serial, 0x0404, 0); pl2303_vendor_read(serial, 0x8484, buf); ...
В обработчике каждой точки я поставил диагностический асинхронный вывод (через DMA) на UART (понятно, что скорости UART не хватает, но все-таки, ни разу не проскочило ни одного запроса на EP1, а с EP0 хост общается лишь на стадии конфигурирования. Дальше при отправке данных вижу постоянные ругательства:
[4667301.263763] pl2303 ttyUSB1: usb_serial_generic_read_bulk_callback - urb stopped: -32 [4667304.808223] pl2303 ttyUSB1: pl2303_set_control_lines - failed: -71 [4667313.021714] pl2303 ttyUSB1: pl2303_set_control_lines - failed: -71 [4667313.021946] pl2303 ttyUSB1: error sending break = -71
Но не вижу запросов на EP0!!! (в самом ее начале стоит диагностический выхлоп, так что, если бы что-то и было, то наверняка хоть раз да проскочило)
Обработчик EP2 и EP3 такой:
static uint16_t EP2_Handler(ep_t ep){ if (ep.rx_flag){ MSG("read "); printu(ep.rx_cnt); newline(); if(ep.rx_cnt > 2){ len = ep.rx_cnt; rcvflag = 1; EP_Read(2, buffer); }else{ uint8_t buf[2]; EP_Read(2, buf); } ep.status = SET_VALID_RX(ep.status); } else if (ep.tx_flag){ MSG("write\n"); ep.status = SET_STALL_TX(ep.status); } return ep.status; }
На чтение /dev/ttyUSB1 dmesg ругается, что "vendor"запросы не проходят (это и понятно), на запись все ОК, но почему-то самый первый раз отправляемый в /dev/ttyUSB1 текст читается дважды!
При чтении тоже загадки какие-то: иногда текст считывается целиком (пишу в устройство при помощи `echo "..."> /dev/ttyUSB1`), а иногда кусками и дважды!
↧
Обмоточный провод в Москве
Доброго! Ищу оффлайн магазин "малых форм", нужны обмоточные провода, отрезками, скажем, по 10-20 м. Особенно интересуют литцендраты, и в диэлектрической (шелковой или подобной) обмотке, т.к. некоторая номенклатура просто лакированных есть у меня. К сожалению, из найденного в интернете - либо катушки в сотни метров по 500+ руб, либо "нет в наличии, не заказано, когда будет-не знаем", либо по 50 руб за метр ЛЭШО 0.05мм х 10 (не очень гуманно). У китайцев литцендрат заказал всего по 5+/- руб за метр, на отрез, но, блииииин, доставка десятки дней! (Да и поиск на Али часто не выводит нужное). Все это время чинимое лижит кишочками наружу, пылиться, теряется, забывается, как было собрано. И на отрез у китайцев не все есть, тоже любят бобинами по 100+ метров продавать. Спасибо.
↧
↧
Паяльник Lukey 852D+FAN
Помогите, пожалуйста, с паяльником для Lukey 852D+FAN. В один прекрасный момент у нее сдох нагреватель. Взамен был куплен новый паяльник. На вид 1 в 1 как и комплектный, но вот паяет он намного хуже. Жало (взято со старого паяльника) примерзает. Термопара врет градусов на 60. Не могу понять почему такая разница, ведь в теплоемкости играет роль жало, а нагреватель тут причем? Плохо отдает тепло на жало?
Вобщем был куплен отдельно нагреватель. Но при попытке его поставить, оказалось, что он длиннее миллиметров на 5.
Подскажите, где можно купить «оригинальный» паяльник или нагреватель (Украина). Или по каким косвенным признакам определить его «оригинальность» в интернет магазине?
↧
Поиск работы Санкт-Петербург
Дорогие коллеги, моя хорошая подруга Наталья сейчас в поиске работы. Мы вместе работали в одном стартапе. После того, как она пришла, у нас стал полный порядок по складу электронных компонентов - полный учёт ВСЕХ компонентов (были пересчитаны все SMD компоненты, а это почти 400 позиций!!!), точная выдача, абсолютный порядок на складе. Так же вовремя шли заказы. Сразу решились все проблемы с учётом времени сотрудников, учёт отработанных часов и т.п. Решено было чудовищное количество бумажной волокиты. Когда у нас возник цейтнот по пайке, то достаточно быстро освоила пайку и помогала в монтаже и пусконаладке оборудования. Так же смогла быстро обучать других девочек и руководить ими.
Она помогала урегулировать все конфликтные ситуации между сотрудниками и руководством. В общем, пришла просто девочкой секретарём, а стала буквально правой рукой директора фирмы. Да и просто стержнем и душой нашей фирмы. Каждый сотрудник души не чаял в ней. Когда фирма развалилась, то люди когда уходили, говорили что с удовольствием взяли бы её к себе, если бы могли выплачивать ЗП. Очень ответственный, крайне трудолюбивый сотрудник, а главное легко обучаемый. Лично я таких больше никогда не встречал, настоящая находка в любую компанию.
Если требуется какие-то отзывы от сотрудников с прошлой работы, все готовы дать исключительно положительные.
Краткая характеристика с предыдущего места.
Помощник руководителя проекта
Так же владеет вёрсткой сайтов
Желаемая должность:
Поскольку личные данные я разглашать на весь интернет не хочу, то дам её почту для связи bazhena30 собака gmail.com . Либо пишите свои адреса тут, я ей передам.
Очень хотелось бы, чтобы такой замечательный человек и ответственный сотрудник нашёл таки работу.
З.Ы. Да, я понимаю что использую административный ресурс. Но мы посовещались и я решил, что можно тут давать объявления о работе.
Она помогала урегулировать все конфликтные ситуации между сотрудниками и руководством. В общем, пришла просто девочкой секретарём, а стала буквально правой рукой директора фирмы. Да и просто стержнем и душой нашей фирмы. Каждый сотрудник души не чаял в ней. Когда фирма развалилась, то люди когда уходили, говорили что с удовольствием взяли бы её к себе, если бы могли выплачивать ЗП. Очень ответственный, крайне трудолюбивый сотрудник, а главное легко обучаемый. Лично я таких больше никогда не встречал, настоящая находка в любую компанию.
Если требуется какие-то отзывы от сотрудников с прошлой работы, все готовы дать исключительно положительные.
Краткая характеристика с предыдущего места.
Помощник руководителя проекта
- Приёмка, учёт и выдача электронных компонентов;
- Делопроизводство;
- Приёмка товаров;
- Контроль расходов, необходимых на офисные нужды. Обеспечение работников канцелярскими
- товарами, расходными материалами;
- Подсчет количества отработанных часов сотрудниками офиса и передача информации в
- бухгалтерию для начисления зарплаты;
- Обеспечение переговоров, совещаний, презентаций и других мероприятий необходимыми
- материалами и документами;
- Ведение деловой переписки с клиентами и партнёрами, рассылка необходимых материалов;
- Помощь работникам в разрешении возникающих проблем и конфликтов;
- Ведение отчётности по доставке ТМЦ, контроль курьеров;
- Выполнение различных поручений руководителя;
- Опыт простейшей пайки.
Так же владеет вёрсткой сайтов
- Сборка сайтов на WordPress
- Разработка сайта с нуля
- Верстка Pixel Perfect
Желаемая должность:
Помощник руководителя проекта
Административный персонал
Административный персонал
- Управляющий офисом(Оffice manager)
- Делопроизводство
- АХО
Поскольку личные данные я разглашать на весь интернет не хочу, то дам её почту для связи bazhena30 собака gmail.com . Либо пишите свои адреса тут, я ей передам.
Очень хотелось бы, чтобы такой замечательный человек и ответственный сотрудник нашёл таки работу.
З.Ы. Да, я понимаю что использую административный ресурс. Но мы посовещались и я решил, что можно тут давать объявления о работе.
↧
Снова вопросы по USB CDC
Итак, "методом тыка"предыдущийвопрос частично решен: STM32F042 "притворяется" PL2303 и ядро не ругается. Запись/чтение работают тоже без ругани в dmesg. Однако, осталось непонятным:
а) откуда брать информацию при смене режима работы порта (SET_LINE_CODING), т.к. ни до, ни после этого запроса ничего похожего на настройки не приходит;
б) зачем нужна конечная точка EP1, если хост ее вообще не использует?
а) откуда брать информацию при смене режима работы порта (SET_LINE_CODING), т.к. ни до, ни после этого запроса ничего похожего на настройки не приходит;
б) зачем нужна конечная точка EP1, если хост ее вообще не использует?
↧
Обработка не очень больших данных
Добрый вечер. Нужен хороший совет.
Есть задача - отслеживать стабильность датчиков в ходе технологических операций. Определяется ряд контрольных параметров: ноль, диапазон, нелинейность, гистерезис и т.п. Их надо запомнить и построить графики с ограничениями (годен брак), нарисовать тренд (по нему судим стабильный прибор или нет) и все это хранить в базе данных (csv или sql файлы) для дополнительного анализа и отчетов, возможно даже автоматических :)
Конечно можно написать какую-то прогу на питоне или скрипт в libreoffice, но наверняка это будет некачественное повторение уже кем-то сделанного и лежащего где-то на гитхабе.
Поэтому вопрос, может ли кто посоветовать готовый пример или free софт для решения подобной задачи. Также буду благодарен за книжку букварь по несложному анализу данных на питоне.
Есть задача - отслеживать стабильность датчиков в ходе технологических операций. Определяется ряд контрольных параметров: ноль, диапазон, нелинейность, гистерезис и т.п. Их надо запомнить и построить графики с ограничениями (годен брак), нарисовать тренд (по нему судим стабильный прибор или нет) и все это хранить в базе данных (csv или sql файлы) для дополнительного анализа и отчетов, возможно даже автоматических :)
Конечно можно написать какую-то прогу на питоне или скрипт в libreoffice, но наверняка это будет некачественное повторение уже кем-то сделанного и лежащего где-то на гитхабе.
Поэтому вопрос, может ли кто посоветовать готовый пример или free софт для решения подобной задачи. Также буду благодарен за книжку букварь по несложному анализу данных на питоне.
↧
↧
Батареек псто
Ребята, где купить хорошие батарейки? Чтобы долго не садились.
В данном случае - CR2032 для кухонных весов. Родная прослужила почти год, на ней написано японскими иероглифами. С тех пор поменял не одну батарейку, в том числе знаменитых марок и в хороших местах - служат месяц-другой и кирдык. То ли подделки, то ли некачественные.
В данном случае - CR2032 для кухонных весов. Родная прослужила почти год, на ней написано японскими иероглифами. С тех пор поменял не одну батарейку, в том числе знаменитых марок и в хороших местах - служат месяц-другой и кирдык. То ли подделки, то ли некачественные.
↧
Вопросы про Xilinx Zynq / Vivado
Добрый день.
Скажите, пожалуйста
1) Можно ли использовать ПЛИС-часть в Zynq отдельно, без процессора, в бесплатном WebPack? (лицензия на SDSOC стоит 2000$)
2) Можно ли использовать в WebPack ядра DSP48? (лицензия на System Generator стоит 4250$)
3) Можно ли использовать входы HDMI без встроенного процессора (HPS) и без дополнительных лицензий в обычном WebPack?
4) Использовал ли кто-то отладчик ILA в WebPack и есть ли у него ограничения из-за бесплатной версии?
5) Стоит ли вообще связываться с Zynq, имея только бесплатный Vivado WebPack?
Спасибо.
Скажите, пожалуйста
1) Можно ли использовать ПЛИС-часть в Zynq отдельно, без процессора, в бесплатном WebPack? (лицензия на SDSOC стоит 2000$)
2) Можно ли использовать в WebPack ядра DSP48? (лицензия на System Generator стоит 4250$)
3) Можно ли использовать входы HDMI без встроенного процессора (HPS) и без дополнительных лицензий в обычном WebPack?
4) Использовал ли кто-то отладчик ILA в WebPack и есть ли у него ограничения из-за бесплатной версии?
5) Стоит ли вообще связываться с Zynq, имея только бесплатный Vivado WebPack?
Спасибо.
↧
выбор "кварца" (также выбор fpga, adc)
где-почем-какой "генератор"для тактовки ЦАПа взять?
как правильно оценить необходимую точность?
АЦП будет оцифровывать этак на 50-54МГц, значит генератор желательно взять тупо на эту же частоту. а вот с точностью/стабильностью вопросы есть.
с АЦП данные будут сливаться максимум 10с (порядка 500М отсчетов, а скорее таки 1-3с), в данных есть синусоиды с частотой порядка, например, 2-20МГц, плюс несколько более слабых синусоид, отличающиеся по частоте на несколько ppm. прочее железо дает стабильность-равномерность порядка 0.2ppm в лучшем случае.
как я понимаю, для хорошего обнаружения этих добавок и незагрязнения сигнала нужно (в том числе) чтоб генератор за время измерения не убегал более чем на те же самые 0.2ppm, не дергал фазу, итп. убегание между измерениями не важно, ибо измерение всегда в присутствии эталона, относительно которого смотрим более слабые "примеси".
собственно вопрос, где-какой брать "кварцевый генератор"? нужно ли тупо ориентироваться на "0.2 ppm"в описании, или нужно внимательно смотреть иные параметры? какого порядка цены на такие генераторы?
ps: и за компанию. посоветуйте или недорогую плату от альтеры (уже есть программатор), или плату от иных производителей С ПРОГРАММАТОРОМ. примерно единственное требование - 16 или более мегаБАЙТ памяти, подключенной к fpga.
pps: ага, очередной подход к снаряду "ЯМР-протонный-спектрограф на столе с Ne-Fe-B магнитами и небольшими компенсационными катушками"
ppps: также интересны недорогие "макетные платки"с АЦП не менее 12 бит и быстрее примерно 54М семплов/с.
как правильно оценить необходимую точность?
АЦП будет оцифровывать этак на 50-54МГц, значит генератор желательно взять тупо на эту же частоту. а вот с точностью/стабильностью вопросы есть.
с АЦП данные будут сливаться максимум 10с (порядка 500М отсчетов, а скорее таки 1-3с), в данных есть синусоиды с частотой порядка, например, 2-20МГц, плюс несколько более слабых синусоид, отличающиеся по частоте на несколько ppm. прочее железо дает стабильность-равномерность порядка 0.2ppm в лучшем случае.
как я понимаю, для хорошего обнаружения этих добавок и незагрязнения сигнала нужно (в том числе) чтоб генератор за время измерения не убегал более чем на те же самые 0.2ppm, не дергал фазу, итп. убегание между измерениями не важно, ибо измерение всегда в присутствии эталона, относительно которого смотрим более слабые "примеси".
собственно вопрос, где-какой брать "кварцевый генератор"? нужно ли тупо ориентироваться на "0.2 ppm"в описании, или нужно внимательно смотреть иные параметры? какого порядка цены на такие генераторы?
ps: и за компанию. посоветуйте или недорогую плату от альтеры (уже есть программатор), или плату от иных производителей С ПРОГРАММАТОРОМ. примерно единственное требование - 16 или более мегаБАЙТ памяти, подключенной к fpga.
pps: ага, очередной подход к снаряду "ЯМР-протонный-спектрограф на столе с Ne-Fe-B магнитами и небольшими компенсационными катушками"
ppps: также интересны недорогие "макетные платки"с АЦП не менее 12 бит и быстрее примерно 54М семплов/с.
↧
Управление графическим дисплеем с контроллером ST7920 при помощи SPI: странная проблема
Даташит гласит, что период тактового сигнала должен быть не менее 400 нс при питании 4.5В и не менее 600 нс при питании 3.3В.
Однако, эксперимент показал, что модуль ЖКИ работает корректно только если снизить частоту клока SPI ниже примерно 60 кГц (то есть, период от 17 мкс и выше). Модуль питается от 5В, интерфейс от STM32F030 без преобразования уровней (т.к. это, по-идее, не требуется - логические уровни все в нужных пределах).
Собсно, проблема в том, что аппаратный SPI не позволяет снизить частоту SPI до такой величины, даже на самом большом делителе (:256) при штатной частоте ядра (48 МГц) получается в десять раз больше чем может прожевать дисплей. Выяснилось написанием софтового SPI, с которым всё внезапно заработало (но это корявое решение, чего бы мне не хотелось).
Как так вышло, что теория так сильно расходится с практикой? Это дисплей дефективный (там вроде есть тактовый генератор - мож, наши узкоглазые друзья какой неправильный номинал поставили) или я чего-то не понимаю? Или китайские наносекунды отличаются от общепринятых?
Ещё настораживает то, что по документации контроллер может работать от напряжения даже 2.7В, но от 3.3 вольт он не завёлся.
Решено: виноваты настройки SPI (см. в комментах). Но от 3.3В всё равно не работает...
Однако, эксперимент показал, что модуль ЖКИ работает корректно только если снизить частоту клока SPI ниже примерно 60 кГц (то есть, период от 17 мкс и выше). Модуль питается от 5В, интерфейс от STM32F030 без преобразования уровней (т.к. это, по-идее, не требуется - логические уровни все в нужных пределах).
Собсно, проблема в том, что аппаратный SPI не позволяет снизить частоту SPI до такой величины, даже на самом большом делителе (:256) при штатной частоте ядра (48 МГц) получается в десять раз больше чем может прожевать дисплей. Выяснилось написанием софтового SPI, с которым всё внезапно заработало (но это корявое решение, чего бы мне не хотелось).
Как так вышло, что теория так сильно расходится с практикой? Это дисплей дефективный (там вроде есть тактовый генератор - мож, наши узкоглазые друзья какой неправильный номинал поставили) или я чего-то не понимаю? Или китайские наносекунды отличаются от общепринятых?
Ещё настораживает то, что по документации контроллер может работать от напряжения даже 2.7В, но от 3.3 вольт он не завёлся.
Решено: виноваты настройки SPI (см. в комментах). Но от 3.3В всё равно не работает...
↧
↧
stm32f4, выдача пачки импульсов
что-то я туплю.
есть проектик, пока что макет на stm32f4discovery. потом будет тот же камень ,но с более вменяемым обвязом. точнее, пачка похожих проектиков.
и вот понадобилось мне странное - выдать заданное количество импульсов заданной длительности с заданными интервалами.
точнее, импульсы можно тупо по 1мкс фиксированно, их число влезает в 15 бит а число заведомо влезает в 30 бит.
на данный момент плотно подсел на opencm3, что в комплекте с "-flto всегда и везде, и в либах и в проекте"даёт хороший запас и по производительности и по памяти.
а сегодня-и-впятницу внезапно застрял. протратил уже 17ч рабочего времени на вроде бы ерунду. явно где-то совсем детская ошибка (типа обращения к незатактованной гпио ножке).
но, вдруг кто уже делал такое - поделитесь кодом под "opencm"или с прямой работой с регистрами, но только не в ублюдочной парадигме заполнения простыней-структур и передаче их библиотечным суперфункциям.
нужно вроде бы несложное -- выдать пачку "тактирующих"импульсов, тупо одинаковых, на 1-4 ноги. импульс, например, 1мкс, пауза - например от 1 до 8к мкс, число импульсов в пачке задается менее чем 30-битным, а скорее даже менее чем 15 битным числом.
хотелось бы рабочий пример, ибо есть легкое подозрение что и железо у меня чуток битое.
есть проектик, пока что макет на stm32f4discovery. потом будет тот же камень ,но с более вменяемым обвязом. точнее, пачка похожих проектиков.
и вот понадобилось мне странное - выдать заданное количество импульсов заданной длительности с заданными интервалами.
точнее, импульсы можно тупо по 1мкс фиксированно, их число влезает в 15 бит а число заведомо влезает в 30 бит.
на данный момент плотно подсел на opencm3, что в комплекте с "-flto всегда и везде, и в либах и в проекте"даёт хороший запас и по производительности и по памяти.
а сегодня-и-впятницу внезапно застрял. протратил уже 17ч рабочего времени на вроде бы ерунду. явно где-то совсем детская ошибка (типа обращения к незатактованной гпио ножке).
но, вдруг кто уже делал такое - поделитесь кодом под "opencm"или с прямой работой с регистрами, но только не в ублюдочной парадигме заполнения простыней-структур и передаче их библиотечным суперфункциям.
нужно вроде бы несложное -- выдать пачку "тактирующих"импульсов, тупо одинаковых, на 1-4 ноги. импульс, например, 1мкс, пауза - например от 1 до 8к мкс, число импульсов в пачке задается менее чем 30-битным, а скорее даже менее чем 15 битным числом.
хотелось бы рабочий пример, ибо есть легкое подозрение что и железо у меня чуток битое.
↧
Платформонезависимое управление фотокамерой по USB
Здравствуйте!
Потребовалось разработать устройство, которое бы управляла фотокамерой через встроенный в неё USB-порт. Необходимо, чтобы это устройство по определённому сценарию управляло затвором и вспышкой фотокамеры, причём работало с любой фотокамерой (под платформонезависимостью понимаю независимость от модели фотокамеры). Подскажите, насколько стандартизированны команды USB-порта камеры (одинаковы ли для разных камер команды "снять"и "включить/выключить фотовспышку"), какую аппаратную платформу лучше выбрать для реализации данного функционала (Arduino, Raspberry PI, или отдельный микроконтроллер ATMega), и вообще - в какую сторону копать, я полный новичок в этом деле, а очень надо его сделать.
Потребовалось разработать устройство, которое бы управляла фотокамерой через встроенный в неё USB-порт. Необходимо, чтобы это устройство по определённому сценарию управляло затвором и вспышкой фотокамеры, причём работало с любой фотокамерой (под платформонезависимостью понимаю независимость от модели фотокамеры). Подскажите, насколько стандартизированны команды USB-порта камеры (одинаковы ли для разных камер команды "снять"и "включить/выключить фотовспышку"), какую аппаратную платформу лучше выбрать для реализации данного функционала (Arduino, Raspberry PI, или отдельный микроконтроллер ATMega), и вообще - в какую сторону копать, я полный новичок в этом деле, а очень надо его сделать.
↧
величина емкости на входе импульсного БП
А подскажите, как выбирается величина емкости на входе импульсных БП?
Эмпирически рекомендуют ставить не меньше 1мкФ на 1Вт и напряжение 1,5-2 сетевого.
А если поставить с запасом, например 2-3 мкФ на 1Вт, что будет?
Не станет ли БП более долгоживущим, а то задолбали блоки питания, которые теряют нагрузочную способность через год-два.
Эмпирически рекомендуют ставить не меньше 1мкФ на 1Вт и напряжение 1,5-2 сетевого.
А если поставить с запасом, например 2-3 мкФ на 1Вт, что будет?
Не станет ли БП более долгоживущим, а то задолбали блоки питания, которые теряют нагрузочную способность через год-два.
↧
Подскажите, как называется разъем, пины к нему и ответная часть?
Подскажите, как называется разъем, пины к нему и ответная часть?
![]()
![]()
![]()
![]()
![]()






↧
↧
STM32 Character match
Здравствуйте. М/К STM32F030, хочу настроить прерывание Character match в USART, что бы останавливать прием по конкретному символу. В итоге, прерывание срабатывает только тогда, когда контрольный символ идет первым в последовательности и только после перезагрузки м/к. Подскажите, я, может, не правильно понимаю суть этого прерывания?
Настраиваю как-то так:
Настраиваю как-то так:
USART1 -> CR2 |= 0x41000000; //'A' USART1 -> CR1 |= USART_CR1_CMIE | USART_CR1_TE | USART_CR1_RE; USART1 -> CR2 |= USART_CR2_STOP_1; USART1 -> CR3 |= USART_CR3_DMAT | USART_CR3_DMAR; USART1 -> CR1 |= USART_CR1_UE;
↧
STM32, подсчет частоты импульсов.
Покритикуйте решение задачи: подсчет частоты импульсов:
Вход импульсов запускает прерывание, в котором инкрементируется переменная count
Таймер 14 настраивается на прерывания в 1сек, и в этом прерывании переменная count копируется в результирующую переменную countout , после чего переменная count обнуляется:
main.c
/* USER CODE BEGIN PV */
/* Private variables —-------------------------------------------------------*/
/* инициализация переменных */
uint8_t count = 0;
uint8_t countout = 0;
/* USER CODE BEGIN 2 */
/* Запуск таймера 14 в режиме прерываний */
HAL_TIM_Base_Start_IT(&htim14);
while (1)
{
/* передача countout в UART2 порт */
/* пауза в 1сек */
HAL_UART_Transmit (&huart2, &countout, 1, 1000);
HAL_Delay(1000);
stm32f4xx_it.c
/* USER CODE BEGIN 0 */
/* Создание внешних переменных */
extern uint8_t count;
extern uint8_t countout;
/* USER CODE BEGIN EXTI15_10_IRQn 0 */
/* инкремент счетчика пульсаций по прерыванию, при нажатии кнопки pin С13 */
count+=1;
/* USER CODE BEGIN TIM8_TRG_COM_TIM14_IRQn 0 */
/* Прерывание по таймеру 14 */
/* Запоминаем количество импульсов, и сбрасываем временный счетчик */
countout=count;
count=0;
Вход импульсов запускает прерывание, в котором инкрементируется переменная count
Таймер 14 настраивается на прерывания в 1сек, и в этом прерывании переменная count копируется в результирующую переменную countout , после чего переменная count обнуляется:
main.c
/* USER CODE BEGIN PV */
/* Private variables —-------------------------------------------------------*/
/* инициализация переменных */
uint8_t count = 0;
uint8_t countout = 0;
/* USER CODE BEGIN 2 */
/* Запуск таймера 14 в режиме прерываний */
HAL_TIM_Base_Start_IT(&htim14);
while (1)
{
/* передача countout в UART2 порт */
/* пауза в 1сек */
HAL_UART_Transmit (&huart2, &countout, 1, 1000);
HAL_Delay(1000);
stm32f4xx_it.c
/* USER CODE BEGIN 0 */
/* Создание внешних переменных */
extern uint8_t count;
extern uint8_t countout;
/* USER CODE BEGIN EXTI15_10_IRQn 0 */
/* инкремент счетчика пульсаций по прерыванию, при нажатии кнопки pin С13 */
count+=1;
/* USER CODE BEGIN TIM8_TRG_COM_TIM14_IRQn 0 */
/* Прерывание по таймеру 14 */
/* Запоминаем количество импульсов, и сбрасываем временный счетчик */
countout=count;
count=0;
↧
Прожарка чипов
Привет All,
есть у кого опыт восстановления работоспособности чипов, только не современных, компьютерных, а более старых. Типа заглох какой-нить выход у процессора или как они по-советски назывались - микроконтроллеры (?) - пожарил полчасика в духовке и о чуда - вдруг заработал. Потерял все ссылки на описания подобных процедур.
есть у кого опыт восстановления работоспособности чипов, только не современных, компьютерных, а более старых. Типа заглох какой-нить выход у процессора или как они по-советски назывались - микроконтроллеры (?) - пожарил полчасика в духовке и о чуда - вдруг заработал. Потерял все ссылки на описания подобных процедур.
↧