Jump to content

    

Сергей Борщ

Модераторы
  • Content Count

    9158
  • Joined

Everything posted by Сергей Борщ


  1. Да, Q905 отошел. Особых требований к нему в этой схеме нет, подойдет любой PNP 20 В 3А, вот только поиск в чип-дипе ничего подобного не показывает. Я бы ставил P-канальный полевой транзистор (IRLML2244, AO3401A в чипе-дипе), увеличив R904 раз в 20, или, как писал выше, удалил Q905, R906 и запаял перемычки на место R9A1, R9A2.
  2. Ооо как я отстал. Надо будет обновиться.
  3. В PCAD можно было при упаковке УГО в посадочное место несколько выводов УГО объединить в один вывод посадочного места, указав им тип CMNx. Он при рисовании схемы тогда при подключении такого вывода автоматически подключал эту же цепь к этому же выводу в остальных элементах этого корпуса. Очень удобно, например, у сдвоенных мультиплексоров с общими адресными входами (555КП2) рисовать эти адресные входы на обоих элементах, делая элементы одинаковыми и взаимозаменяемыми при разводке.
  4. Жаль. Да и другие нужные строки оно выкидывает. Будем использовать питон. Мне кажется, вы не поняли А вот для скрипта из сообщения xvr ваш совет очень пригодился, большое спасибо. Задача решена, землекопов - полтора.
  5. Мне так удобно и да, в техописание с таким подходом я заглядываю существенно реже, работа идет быстрее: Это красивее и проще для понимания, чем рисовать один большой УГО со списком всех возможных функций каждой ноги и потом вспоминать, какая именно из функций этой ноги используется. Или рисовать УГО только с номерами GPIO и потом еще дольше ломать голову, но уже с дополнительным заглядыванием в документацию.
  6. Это велосипед с квадратными колесами, как и большинство других решений в Kicad. Со временем они закономерно должны изобрести формат PCAD-ASCII. Апофеозом была такая фраза в их roadmap, недавно кто-то до нее все-таки дочитал и ее убрали: Мне кажется, вы не поняли - в NET.TXT находится строка "\(net.*(\n *\(node.*)(\n *\(node.*)+", было бы совсем красиво засунуть ее в командную строку запуска pcregrep. Так, отбой - эта конструкция вырезает из файла и все остальные строки, не имеющие отношения к "(net"
  7. С питоном понял, есть пища для размышлений, спасибо. Vladivolt, о, шикарно. А без net.txt можно? Потому что это экземпляры вывода из разных элементов одного компонента - первый из элемента GPIO и таймеров, второй - из CAN1.
  8. Скорее всего вы правы насчет износа. С другой стороны... 20 лет назад мне коллега рассказывал, как он ездил в коммандировку в Германию, у него был с собой ноутбук, кажется HP, промышленного исполнения - металлический обрезиненный корпус, увесистый, все дела, на нем стоять можно было. И когда они залезли на верхотуру на объекте, немец посмотрел на это чудо, достал свой - обычный, легкий, более мощный, и сказал, что за те деньги, что стоит коллегин HP, он сможет за время жизни этого HP четыре раза поменять свой на более свежий и каждый раз более мощный, который, в случае чего, не так жалко и уронить с этой высоты. Стоимость этих трубок настолько мизерна по сравнению с металлической "гусиной шеей", что... ну дальше вы поняли.
  9. Я понимаю, что вопрос прозвучит как поиск халявы. На самом деле так оно и есть. Честно признаюсь: я совершенно не имею понятия о регулярных выражениях и различных линуксовых утилитах обработки текста. Знаю только, что они есть. Задача разовая и тратить время на глубокое изучение очень не хочется. Если для кого-то ее решение будет делом пяти минут и разминкой мозга - буду признателен. Сама задача: есть файл списка цепей Kicad. Нужно из него удалить те цепи, которые подключены только к одному выводу. Пример (полный файл в приложении): (net (code "133") (name "Net-(DD1-Pad71)") (node (ref "DD1") (pin "71") (pinfunction "T1_ETR/PA12"))) (net (code "134") (name "Net-(DD1-Pad71)_1") (node (ref "DD1") (pin "71") (pinfunction "TX/PA12"))) (net (code "135") (name "Net-(DD1-Pad72)") (node (ref "DD1") (pin "72") (pinfunction "JTMS-SWDIO/PA13")) (node (ref "XS14") (pin "1") (pinfunction "1"))) (net (code "136") (name "Net-(DD1-Pad76)") (node (ref "DD1") (pin "76") (pinfunction "JTCLK-SWCLK/PA14")) (node (ref "XS14") (pin "2") (pinfunction "2"))) Как видно, цепи 133 и 134 описывают две разные никуда не идущие цепи, подключенные к одному и тому же выводу. Надо их удалить. Т.е. если вслед за строкой, начинающейся с "(net" идет только одна строка, начинающаяся с "(node", то обе эти строки надо удалить. Не обращайте внимания, что обе цепи одного вывода тут идут подряд, обычно такие цепи разбросаны по файлу случайным образом. Концовка у файла такая: (net (code "215") (name "~SD_EN") (node (ref "DD1") (pin "77") (pinfunction "T2_1_ETR/JTDI/PA15")) (node (ref "R43") (pin "2") (pinfunction "2")) (node (ref "VT1") (pin "1") (pinfunction "G"))))) и ее тоже желательно корректно обрабатывать, т.е. если удаляется последняя строка файла, то на ее место надо воткнуть строку с двумя закрывающими скобками. Текущая версия Kikad проглатывает отсутствие закрывающих скобок в конце файла, но кто знает, что придет в голову этим пчелам разработчикам в будущем. Хочется простенький shell-скрипт, который можно натравливать на файл списка цепей. В принципе, достаточно только корректной команды запуска утилиты обработки текста (awk, sed, что там есть еще в линухе), в скрипт я и сам оберну. Если кому интересны подробности, как такая ошибка генератора вылезает - у меня УГО многих компонентов состоит из нескольких элементов (units). Например, УГО контроллера имеет один элемент с портами ввода-вывода и по одному элементу на каждый узел периферии (USART1, USART2, ADC и т.п.). Естественно, один и тот же вывод встречается в нескольких элементах, но подключен только в одном из них. Французский гений автора Kicad присваивает новую цепь каждому экземпляру такого вывода, а при загрузке списка цепей в плату использует первую попавшуюся цепь для данного вывода. В результате соединение выводов посадочных мест на плате зависит от взаимного расположения таких элементов на листе схемы: повезет - будет как задумано, не повезет - у вывода будет никуда не подключенная цепь. В комментарии к сообщению об ошибке в ответ на вроде бы очевидное предложение не генерить цепи для неподключенных на схеме выводов французский гений написал, что это нужно для визуального контроля правильности упаковки произвольного УГО в произвольный корпус. Ошибка висит в состоянии "подтверждено" более двух лет, мне начинает надоедать удалать такие "висящие" цепи вручную текстовым редактором после каждой генерации списка цепей. Когда-то я делал собственный патч для пропускания таких "висящих" цепей при генерации, но они в очередной раз перепахали код генератора и теперь в нем сам черт ногу сломит, а старый патч, разумеется, уже не накладывается. netlist.zip
  10. Разве можно записать 0xFF без стирания? Или эти карты стираются нулями?
  11. А как же "Цэ Эуропа"? :) На chipmaker.ua можно найти кучу станочного народу из Киева, с кем можно договориться пощупать. А вообще, стоимость отдельно таких трубок настолько низкая, что можно одну и заказать "пощупать". Ищите на Али "шланг подачи СОЖ"
  12. А что в этот момент на коллекторе Q904? Возможно, причина в нем или в R905. Разработчиками предусмотрен вариант исполнения этой схемы без узла Q905-Q904, в этом случае в схему должны быть устанавлены R9A1, R9A2. P.S. схемотехническое решение, мягко говоря, странное - городить снаружи на россыпи функционал входа INHIBIT (нога 2) IC901. Очень напоминает тот мой случай с дросселем (моя телепатия не так уж и слаба, как я думал?). Вариант с R9A1, R9A2 более "прямой". Кстати, как простейший вариант ремонта - выпаяйте Q905, R906, установите перемычки на место R9A1, R9A2. Когда этот транзистор работает, на ногу 1 поступает 5 В. А уже из него Q901 делает 3.3 В. Т.е. правильнее говорить "когда этот транзистор не работает - нет нужного напряжения на ноге 1 IC901 (должно быть 5 В)." Отсутствие 3.3 В на ноге 5 - уже следствие отсутствия 5 В на ноге 1.
  13. У меня есть. Будете в Риге - дам пощупать. Довольно жесткое сочленение сегментов, сегменты пластиковые. Внутри проволоки нет вообще, там сквозной канал - это трубки подачи СОЖ для станков, о них упоминалось в первых сообщениях ветки.
  14. Как организовано разделение карты между потоками? Не работал с SD, но не может получиться так, что при одновременном обращении двух потоков одна команда вклинивается в другую и превращает ее из команды чтения в команду стирания?
  15. Давным-давно я в одно свое устройство ставил огромный дроссель. Он ни к чему не был подключен, стоял чисто для весу (начальство потребовало, чтобы устройство было большим и увесистым, иначе покупатель не понимает, за что тут деньги отдавать). Если у вас такой же вариант - то эта деталь не важна. С этого надо начинать. Навыки телепатии у участников этого форума есть, но не такого уровня, чтобы без схемы определить что у вас за устройство, какую функцию выполняет в нем указанная деталь и насколько эта функция важна для вас.
  16. class systick { ... public: inline void handler(); }; systick SysTick; extern "C" void SysTick_Handler() { SysTick.handler(); } Или я опять вопроса не понял?
  17. 7805 тоже не любит напряжение на выходе больше, чем на входе: Может и у вашей микросхемы такая же особенность. Что мешает написать в техподдержку производителю? P.S. ноутбучные аккумуляторы тоже впадают в невосстановимую защиту при замыкании провода блока питания во время зарядки - они видят КЗ у себя на клеммах через открытые полевики зарядника, но это совсем другая история.
  18. Верно. А эта "библиотека" ждет флаг STOP только после приема указанного числа байтов. Это еще один аргумент отказаться от нее и написать свою функцию, которая будет ожидать этот флаг одновременно с ожиданием флага прихода нового байта.
  19. Что должно произойти физически на шине, чтобы ведомый понял: байтов больше нет?
  20. Virtualbox ставится за 15 минут вместе со скачиванием. Еще 15 минут туда ставится линух со скачанного образа установочного диска (из них 14 минут процесс идет сам по себе). Имеете практически полноценный комп с линухом в отдельном окне. В виртуальную машину пробрасывается либо "железный" последовательный порт компа, либо USB и воткнутый в него переходник USB-RS232. Экспериментируйте по самое "не хочу". В любой момент можно делать снимки работающей системы, чтобы при необходимости в любой момент откатиться к любому из них.
  21. А по какому признаку вы любыми другими замечательными функциями поняли бы, что вам перестали посылать байты?
  22. Они там набраны из сегментов, цена на али копейки, можно поискать длинный или попытаться самому соединить несколько. Может с нагревом кипятком что и получится. Можно. Вот только метровый сразу не нашелся.
  23. Телепат из вас, мягко говоря, хреновый. 4912 байт занимает USB CDC + загрузчик c шифрованием AES. Тот же загрузчик с UART вместо USB CDC занимает 2840. Вычтите сами? Вы видели мои исходники, чтобы утверждать, что там есть лишние проверки? Да еще и куча. Да потому что в десяти файлах по 100 строк тупо проще ориентироваться, чем гонять туда-сюда простыню на 1000 строк. Ждем, когда же наконец заработает ваша и посчитаем строки там. Я не злопамятный, но иногда память у меня хорошая.