Перейти к содержанию
    

Krys

Свой
  • Постов

    2 052
  • Зарегистрирован

  • Посещение

Весь контент Krys


  1. Ну почему же, Вы китайцев переоцениваете. Мы тоже умеем не хуже штамповать Г :)) Вы слышали про ультразвуковую стиральную машинку Ретона? Их в нашем городе делают, я даже на предприятие ходил на собеседование, немножко посмотрел их кухню. Те же цели - предельная минимизация цены вообще на всём, экономия на спичках и т.п. Я думаю, это вообще закон рынка - ширпотреб должен быть предельно дешёвый, иначе на рынок не пролезешь. И кому нужна будет твоя "цифра", если рядом лежит такой же прибор, пусть слегка похуже функциональностью, но существенно дешевле?... А если речь идёт о массовых закупках приборов для бюджетных организаций, там применяются аукционы, где слепо выбирается меньшая цена.
  2. эти то команды я знаю, но это всё не то. В оркаде очень удобный инструмент - точно такой же, как действие клавиши backspase при interactive routing - т.е. последовательная отмена разводки сегмент за сегментом. Только в пикаде и АД это работает лишь на момент действия interactive routing, а потом - облом. А в оркаде это действует всегда, вот это и удобно. Лично я был бы полностью удовлетворён пакетом, если бы было именно как в оркаде: в любой момент кликаем на трассу, она "прицепляется" к мышке ("резинка" прицепляется, connection), давим клавишу G (если не ошибаюсь - давно не работал) - каждое нажатие отменяется последний разведённый сегмент, ближайший к первоначальному клику, резинка (неразведённая часть) удлиняется... Если удаление сегментов происходит не в ту сторону - давим клавишу X (если опять же не путаю) - процесс начинается в другую сторону. ... хотя... возможно предложенный Вами инструмент был бы ещё удобнее - не знаю, нужно испытать. Но инструмент, поддержанный в оркаде - однозначно удобен. Возможно, в АД не помешало бы поддержать и оркадовский, и предложенный Вами. Как сейчас можно реализовать аналог отмены разводки определённой цепи между двумя точками: открываем панель PCB, выбираем там переключатель Nets сверху, кликаем на класс All Nets, ищем свою цепь, кликаем её. А ещё предварительно настраиваем параметры маскирования в PCB панели, если они были до этого настроены по-другом. Всё... после клика нам для редактирования доступна только нужная нам цепь, другие мы испортить не сможем :) Теперь просто выделяем прямоугольником нужный нам участок цепи между теми самыми двумя точками, затем давим клавишу Del. Сколько действий? Много! И это всё ради удаления всего нескольких сегментов цепи?! Неееееееет... пока всё же проще взять и вручную поудалять несколько сегментов, без операций с панелью PCB, каждый раз выделяя одним кликом очередной сегмент и давя клавишу Del. А в оркаде этот инструмент очень удобный, т.к. всё делается сразу, без кучи предварительных настроек. Одним кликом одновременно выбирается и цепь, и место, вокруг которого нужно расчистить трассы, а далее - только последовательное нажатие G нужное количество раз... всего 2 действия. Без них вообще не обойтись, так что короче уже не придумаешь. Вот это удобно!
  3. вооооот, тут оркад рулит... особенно если удалить надо не всю разводку, а только несколько сегментов, последовательно идущих, что чаще всего и бывает.
  4. протел то должно кушать, это ж его старый, но родной формат
  5. Предлагаю Вам выложить сюда не только фото и видео, но и исходники: библиотеки, откуда хотите взять, куда хотите засунуть. Мы посмотрим, попробуем у себя, может чего придумаем. Я так предполагаю, что всё же Вы умудрились подключить не те библиотеки (посмотрите список инсталлированных библиотек через меню tools - preferences - system - installed libraries). Либо у Вас на картинке в окошке сверху указана библиотека с точно таким же именем, но находящаяся по другому пути. Либо Вы просто не дали команду на сохранение изменённой PCB библиотеки. Соответственно изменений не наблюдаете. Судя по картинке, я понял, что, возможно даже у него сначала не добавились сами компоненты типа конденсаторы C1... (по какой-либо ошибке, которую мы на картинке не видим), а потом, разумеется, не нашлось от них ног, которые требуется добавлять в цепь. Пугает, что в колонке matched pairs на картинке у него пусто... Как будто вообще нет компонентов, кроме тех двух, что в первых колонках. Обычно же все компоненты, которые АД "скушал нормально", присутствуют в колонке matched pairs.
  6. Хм... да, действительно, про температурную зависимость что-то я как-то подзабыл. Ну будем надеяться, что свет всё же в моём случае будет влиять больше, т.к. мне это на датчик "достаточной, хорошей освещённости". А АЦП у меня просто нет, сразу компаратор. Вся схема - аналоговая.
  7. Они должны присутствовать в списке доступных библиотек - как минимум. А в УГО для этого футпринта должна быть указана либо конкретная библиотека с данным именем файла, либо должен быть установлен переключатель на Any
  8. повеселили :))) 3-4 секунды - это вполне нормально для АД. Бывает и дольше на некоторых операциях тормозит. Работая на АД, к тормозам нужно привыкнуть :) Тем более, что 3-4 секунды - это не тормоза.
  9. Ну примерно так. Но подгонка нужна только с целью предельного или даже запредельного удешевления. Мега - сразу увеличивается цена, чуть ли не в 2 раза... Когда речь идёт о массовом производстве "ширпотреба", то экономят каждую копейку. Кроме того, при данных масштабах цен операция прошивки каждой фигнюшки становится крайне нетехнологичной... Спасибо за подсказку по такой фиче. Я в целом согласен. Но пока уровень цен "цифры" не позволяет на неё перейти так, чтобы всё осталось на той же цене... Могу похвастаться, что схема практически полностью "своя", есть там и несколько "ноу-хау", правда в стиле тех же 80-х: "как на 1 транзисторе сделать приёмник, комбайн и электровоз" :))) Но это борьба за удешевление. Иначе бы только цифра. От исходной схемы остался только усилитель сигнала с пироприёмника на 2х операционниках, выдранный из типовой схемы включения в датащите на пироприёмник :)
  10. Можно, я так делаю для монтажных отверстий. В разумных пределах, если диаметр не очень большой. У Вас какой диаметр требуется? Можно и через Place - Full Circlе, а потом Define Board Shape from Selected Objects
  11. Всем спасибо ещё раз за подсказки! L-32P3C пишет, что Kingbright, но на сайте не находит. Хотя я датащит всё равно в нете нашёл. Зато у Kingbright есть ещё более интересное и для меня решение - KPS-3227SP1C, это именно Ambient Light Sensor, и цена недорогая, и корпус СМД. Буду запрашивать доставаемость. vt935g - дороговат показался, но тоже буду запрашивать оптовые цены... Чувствительность можно при желании загрубить уменьшением балластного резистора. Если есть запас, куда грубить. Обычно балластный резистор имеет номинал в диапазоне мегаомов, так что энергопотребление особо не играет роли. Зато обратное включение даёт бОльший размах напряжения, что потом легче подать на компаратор, без всяких усилителей. А вот при прямом включении фото-эдс меняется в очень малых пределах, необходимо усиливать. Или я неправ?
  12. Если ещё актуально, то по электрической части все модули одинаковые - имеют сигнал PECL. Так что я бы посоветовал купить точно такой же модуль, но под одномодовое волокно, чем перепрокладывать само волокно. По поводу деградации мощности - запросто. Нужно учитывать, что в многомодовом волокне потери меньше. Когда одномодовое положили - потери возросли, деградированный излучатель не справился. А новый - справился.
  13. Если ещё актуально, я как-то в такой теме что-то похожее спрашивал: http://electronix.ru/forum/index.php?showt...ED%E0%EB%EE%E3*
  14. Ну как минимум я хочу к этому приблизиться, насколько возможно и не требует уж очень из кожи вылезать. А в данном случае, я чувствую, что решение есть. А про посыпаться - не соглашусь с Вами. То, что написано на том же Verilog'e, без применения FPGA-specific примитивов, будет работать на любой плисине. Если, конечно, времена допустимые. Но, если у меня все цепи работают на 30 МГц и я хочу добавить ещё одну цепь, которая тоже способна работать на 30 МГц, то с её работой не будет сложностей, если остальные цепи на 30 МГц работают без проблем. Метастабильность подавляется на любой плисине примерно одинаково: 2 D-триггера.
  15. что-то не очень понятно, что хочется... Может, нарисуете, как сейчас, и как Вам нужно?
  16. Покажите PCB, попробуем разобраться
  17. Что-то человек даже не отписался, что у него получилось...
  18. Неееее, так я умею, это меня не устраивает... Мне нужно отменить разводку несколько сегментов цепи с такими условиями: 1. Последовательно один за другим. 2. По одному сегменту за одно нажатие (в оркаде это была клавиша G, если не ошибаюсь). 3. Начальный сегмент удаления от места касания мышкой при выборе нужной цепи. Таким образом, количество удалённых сегментов выбираю я сам по ситуации. Мне не требуется удалять разводку всей цепи (а представьте, если это питание - оно много куда заходит и много где разведено), и не требуется удалять разводку между компонентами. Мне нужно несколько последовательно проходящих сегментов. Цель - расчистить место вокруг определённой точки. Конечно, можно предложить настроить фильтры и сделать выбор типа touching rectangle или touching line, но это всё не то... это долго и неудобно. Так что, как я и писал выше, зачастую проще вообще ничего не настраивать, а удалять вручную, выделяя каждый раз по 1 сегменту и удаляя нажатием Del.
  19. Да, Вы правы, я усложнил свою задачу искусственно. Но это лишь потому, что появился спортивный интерес найти решение для общего случая, а не для частного случая соотношения частот, такого, как у меня: 100 МГц и 30 МГц. В своём случае у меня такая мысль (если не придумаю ничего интереснее, навроде равномерного кода Грея): расположить рядом (чтобы длина связей была не большая) со счётчиком 100 МГц регистр, в который производить запись значений счётчика по сигналу, пришедшему из модуля на другом конце ПЛИС (в котором есть только 30 МГц) и пропущенному через цепь подавления метастабильности (2 D-триггера последовательно). Но такое решение не очень хорошее, т.к. потребителей значений времени много, в разных концах ПЛИС, и на каждый потребуется вводить такой регистр с цепью подавления метастабильности. Вот констрейнить и не хотелось бы, т.к. при переходе на другую плиску это всё может не сработать. Хочется получить идеальное решение, которое бы работало само по себе, без констрейнтов. Ещё раз перечитал Ваше сообщение, и пришла такая идея: А что, если реализовать необходимую мне задачу путём смешивания свдигового регистра и кода Грея? Под младшие биты используется сдвиговый регистр, под старшие - код Грея в обычной форме. Правда, тут получится, что 2 бита могут измениться одновременно: один в части кода Грея, один в сдвиговой части. А это плохо... Или в данном случае это нестрашно? Что-то не могу сообразить сразу навскидку. Идея расчёта следующая. Предположим, что нам нужно принимать изменяющиеся данные на частоте в N раз меньше частоты изменяющихся данных. Учитываем, что код Грея "понижает" частоту изменения в 2 раза. Таким образом, нам нужно получить оставшееся понижение на сдвиговом регистре, т.е. понижение в N/2 раз. Из приведённой выше цитаты получается, что при неизменности N/2 период счёта равен N. А число разрядов сдвигового регистра - log2(N). Да... всё красиво, только надо получить изменение не более 1 разряда в 1 такт... Или не годится вообще такая идея?
  20. Точно! Спасибо за подсказку, я сразу про сдвиговый регистр не догадался. Да, с обычным периодом 2^N. Сдвигового регистра мне было бы мало, точнее он бы отожрал слишком много ресурсов в ПЛИС. У меня N - большое число, может больше 10. Вообще значения точного времени передаются по 64 бита, но, возможно, я такие большие разрядности использовать не стану, обойдусь меньшими. Так что, наверное, подбирать последовательность будет затруднительно. К тому же кодек по произвольной последовательности будет весьма сложен в реализации и также отожрёт много ресурсов ПЛИС (по сравнению, например, с кодеком Грея).
  21. Если не сильно у Вас отниму время - то был бы благодарен за информацию. Давайте я попробую обрисовать задачу, зачем мне это понадобилось. Сразу скажу, что всё реализуется в ПЛИС. Есть счётчик (грубо говоря счётчик времени) с тактовой частотой 100 МГц, значения с его выхода поступают по шине в некий блок, в который заходит тактовая частота 30 МГц, другой нет. В этом блоке на частоте 30 МГц необходимо защёлкнуть значения времени, изменяющиеся с частотой 100 МГц. Поскольку частоты разные - при обычной бесхитростной реализации "в лоб" очень часто будет возникать метастабильность, гонки фронтов и т.п., в результате чего правильные значения времени будут защёлкиваться далеко не всегда. Поэтому невозможно гарантировать безошибочное защёлкивание показаний времени (пусть хотя бы с погрешностью, связанной с изменяющимся взаимным положением фронтов частот 100 МГц и 30 МГц), т.е. могут быть не только погрешности, но и грубые промахи отсчётов, когда, скажем, в результате метастабильности, неправильно защёлкнулся старший разряд. Для подавления метастабильности зачастую используют код Грея, т.к. у него в один момент изменяется только 1 бит, и последовательно сменяющиеся значения могут приобрести ошибку всего на единицу: либо счётчик в момент защёлкивания останется в предыдущем состоянии (без изменений), либо защёлкнется новое значение. Однако применение кода Грея для борьбы с метастабильностью имеет смысл только, когда частоты сигналов приблизительно одинаковые, но фронты не синхронные. В моём же случае частоты существенно разные: 100 МГц и 30 МГц. При использовании кода Грея я смогу получить изменение одного разряда с тактовой частотой в 2 раза ниже, чем 100 МГц, т.е. 50 МГц. А защёлкиваю я эти значения на частоте 30 МГц, т.е. ещё почти в 2 раза медленнее. Таким образом, из-за гонок фронтов, связанных с разностью длин связей отдельных разрядов шины данных, я опять не могу гарантировать отсутствие промахов (грубых ошибок) измерения временных отсчётов. Ладно, если частота защёлкивания 30 МГц уже ближе к 50 МГц, уже можно что-то придумать. Но уже появился спортивный интерес найти универсальное решение, работающее в общем случае, не только, когда частоты близки друг к другу. Вот тут и возникает потребность, как я писал в первом сообщении, в некоем коде Грея, только равномерном, интервал неизменности каждого разряда которого увеличивался бы с увеличением числа бит в коде. Т.е. берём 2-битный код - имеем неизменность по одной линии 2 такта. Берём 4-битный код - неизменность 4 такта. Берём 10-битный код - неизменность 10 тактов по одной линии. Ну может не так линейно, например, для 10 битов неизменность 7 или 8 тактов, но всё равно, чтобы интервал неизменности увеличивался с числом бит кода. Ну и при этом нужно, чтобы свойство кода Грея оставалось: в каждом такте меняется только один бит. Тогда: имея такой код, я получу тактовую частоту изменения сигнала по каждой линии шины данных в несколько раз (пусть в N) ниже исходной тактовой (в обычном коде Грея - всего в 2 раза, что меня не устраивает). В таком случае я смогу защёлкивать значения счётчика на частоте, в N раз меньшей тактовой частоты самого счётчика. Согласны? Спасибо, судя по Вашему примеру - то, что мне нужно. ... правда я пример понял, а как это образуется, какими формулами описывается и какие свойства (правда ли на всём диапазоне счёта будет изменяться не более 1 цифры за раз, правда ли частота повторения каждого разряда во всём диапазоне счёта ниже в несколько раз тактовой частоты исходного счётчика) у такого кода - не понял. Не разжуёте немножко теорию? Видимо, не совсем так. В двоичной системе такое тоже возможно, как показал уважаемый Oldring в этом сообщении.
  22. Спасибо всем за ответы, извините, что долго молчал - уезжал на недельку в отпуск. Судя по ответам пришёл к выводу, что я ничего не понимаю в комбинаторике, а всё, что хоть как-то понимал - полностью выветрилось. Сейчас попробую как-то попытаться понять ваши сообщения.
  23. Я думаю, Вам нужно было без эмоций написать про это в теме "Ошибки работы..." Да я сталкивался. Я согласен, что большинство наших сообщений в теме "Ошибки работы..." остаются без изменений. Я ещё в версии 6.х когда-то писал, что экран захватывает навсегда, как модальное приложение становится, что даже внизу строчка меню не появляется и некоторые наэкранные рюшечки типа часиков. Помогает нажатие кнопки вин.
×
×
  • Создать...