Jump to content

    

shamrel

Свой
  • Content Count

    159
  • Joined

  • Last visited

Everything posted by shamrel


  1. Благодарю! А что делать с двумя "лишними" диф.парами идущими от PHY?
  2. Приветствую! Имеется иерархическая многоканальная схема. Есть каналы различного типа. Используется схема нумерации $Component_$ChannelPrefix$ChannelIndex, в результате получаются десигнаторы вида R1_V1, R1_V2, R1_V3 -- для канала типа "V", и R2_A1, R2_A2, R2_A3 -- для каналов типа "А". Все верно и соответствует заданному шаблону. В результате в проекте не существу в чистом виде ни R1, ни R2. Возникает желание сделать независимую нумерацию внутри каждого канала, это бы не создало повторяющихся десигнаторов, но сделало бы схему наглядной. Как сделать независимы "Local Index" для каждого листа, что бы в результате в каждом канале нумерация компонентов начиналась бы с единицы? Что бы в проекте получились R1_V1, R1_V2, R1_V3 ... R1_A1, R1_A2 и т.д. P.S.: Altium 15.1.14
  3. Приветствую! Лаборатории запущены уже много лет, по ним занимаются студенты заочной формы. Когда стенды свободны они доступны всем желающим. Сейчас запущены следующие лаборатории: 1. По электронике. Реальное железо, подключены ЦАП и АЦП. Простенькие лабораторные работы по исследованию диодов, транзисторов, полевых транзисторов. Клиентская программа на LabVIEW. 2. Лаборатория по изучению микроконтроллеров. Плата с контроллером MCS51. На него направлена веб-камера. Можно удаленно через вебинтерфейс загрузить в него hex и посмотреть, что будет. 3. Лаборатория с ПЛИС. Похоже на предыдущую, только плата с FPGA Cyclone I. Можно прошить и подрыгать ножками. Для совсем начинающих. Сейчас все это дело собирается модернизироваться, хотелось бы получить отзывы и советы.
  4. Приветствую. Закладываю в новый проект STM32F303. Требуется производить измерения напряжение как постоянное, так и сигнала небольшой частоты (звуковой спектр). Не могу понять, можно ли использовать встроенные в чип операционные усилители для изменения чувствительности АЦП. Вроде как выход каждого ОУ подключен к соответствующему ADC, вроде как у ОУ есть режим PGA, в котором регулируется коэффициент усиления. [attachment=107616:pga.png] (картинка из RM0316) Вот только непонятно, как в этой схеме регулируется средний уровень (смещение) при изменения коэффициента усиления. Усилитель-то униполярный.
  5. STM32F303 АЦП через OPAMP в режиме PGA

    Цитата(1113 @ Jun 19 2017, 01:51) на схеме видно, что делитель обратной связи упирается в землю, следовательно опорный уровень равен 0 и не меняется. однако из рисунка 134 следует, что к средней точке делителя можно иметь доступ через вывод VM1, также под рисунком указаны номиналы интегрального делителя. имхо подсоединив снаружи процессора резистор между питанием и выводом VM1 можно регулировать смещение всего каскада по постоянному напряжению. только учтите, что этот ваш внешний резистор будет параллельно включен нижнему резистору делителя и уменьшит его сопротивление, увеличив коэффициент усиления каскада на ОУ Спасибо. Номинал резистора будет зависеть от коэффициента усиления PGA. Значит, придется городить систему коммутации ... Проще использовать внешние ОУ. Испытываю колоссальный психологический дискомфорт от того, что не понимаю, как вообще можно использовать этот PGA.
  6. Приветствую. Последний раз тема поднималась достаточно давно, потому создал новую. Собственно возникла необходимость изготовления печатного узла в Поднебесной. Хотелось бы выполнить в одном месте сразу производство PCB, комплектацию и монтаж. Можете посоветовать фирму? Какие могут возникнуть проблемы с таможней? Какие документы нужны для ввоза? Пока речь идет об установочной партии в 30 штук.
  7. spark, дайте посмотреть pdf, которая создана в примере из видео.
  8. Цитата(Aner @ Oct 26 2016, 21:44) Какое то время потратить оч советую вам на изучение этого вопроса в инете. Этим и занимаюсь. Цитата(Aner @ Oct 26 2016, 21:44) Еще нужно понимать, насколько вы можете отдавать все три составляющих, чтобы они не начали сами производить устр-во без вас. Аппаратно плата не сложная. Ценность ее в прошивке. Прошивать, будем сами. Цитата(Aner @ Oct 26 2016, 21:44) Из моей практики ваш вопрос распадается на три: 1. Пр-во плат 2. Закупка комплектующих 3. Сборочное пр-во. Если плата не сложна технологически, тогда проще. Если есть сложности то вам и отвечать за кривоту, несоответствие и тд. Советуете вначале попробовать отдельно купить компоненты, заказать платы, а монтировать в России? Да, начать хотим с относительно простой платы на 4-х слоях. И партию, так сказать, пробную, штук 30 -- не более. Цитата(Aner @ Oct 26 2016, 21:44) Посоветовать фирму нет большого смысла. Шишки о косяки нужно набивать самому, и кусать свои локти, иначе чужие будут большие и больнее. А тонкостей и вопросов в этих трех разных этапах оч много. Отчего же нет смысла? Если есть положительный опыт работы с китайской компанией Х, то почему бы не порекомендовать ее? И людям сделаете доброе дело, и мне направление укажите. Kabdim, не подскажите качественных посредников? И да, чтобы на 30 штук обратили внимание, говорите как есть, что это установочная партия. Из моего опыта, люди идут на встречу.
  9. Приветствую! Поделитесь опытом. Нужен малогабаритный генератор для тактирования PHY LAN8710A в режиме RMII. Частота 50МГц, промышленный температурный диапазон. Судя по рекомендациям, точность нужна не хуже 50ppm. С какими генераторами был положительный опыт (желательно во всем диапазоне температур)?
  10. Подскажите, какая нужна документация и как отразить это в спецификации (СП) на изделие, если для изделия используется покупной корпус, одну его часть дорабатываем -- вырезы и покраска, остальное оставляем как есть. Покупной корпус состоит из нескольких деталей: собственно корпус (алюминиевый профиль, который нужно доработать), боковины, прокладки и болты для прикручивания боковин к профилю. Вопросы: 1. В СП на изделие корпус указывается, как Сборочная единица? Проблема в том, что корпус состоит из нескольких деталей, и для понимания процесса монтажа, следует каждой детали присвоить позицию. Это же покупное изделие и должно быть отражено в разделе "Прочие изделия". 2. Есть чертеж доработки профиля корпуса, там показаны все вырезы. Чертеж нужно оформлять как деталь? А где указывается, что в качестве заготовки был взять профиль из покупного изделия? По идее, в графе 3 основной надписи пишется заготовка, но это часть покупного изделия и у него нет децимального кода. И если это деталь, то в итоговой спецификацию нужно включить эту деталь и присвоить ей позицию? P.S.: ГОСТ 2.109, а особенно раздел 1.3 читал. Много думал.
  11. Приветствую! КБ, в котором я работаю поручили делать пром.компутер на DIN рейку, в этом проекте я ведущий электронщик, схемотехника и PCB на мне. По ТЗ требуется: 1. питание 24В с гальванической развязкой 3кВ; 2. развязанный на 3кВ RS-485; 3. развязанный Ethernet на 1.5кВ; 4. USB (host) без развязки; 5. у прибора металлический корпус и требуется заземление этого корпуса. 6. ... и куча других требований, которые вопросов не вызывают. У меня проблема с логикой развязки. В приложении картинка с примерной топологией заземления, то как я понял задание. Но остается неясность: 1. При монтировании систем АСУ для питания используется преобразователь на 24В с гальванической развязкой? У него есть выход защитного заземления? Этот вывод куда подключается? 2. У моего прибора корпус изолирован от остальных цепей (прочность хочу заложить 3кВ), на него должно быть подано защитное заземление? Монтер не соединит его с минусом от 24В? Или его и шасси (смотри рисунок), соединить с минусом питания внутри корпуса? 3. По ТЗ для USB гальваника не нужна, да и сложно это сделать для USB2.0 на High-speed. Получается, что шасси разъема будет касаться металлического корпуса. Стандарт USB Не требует, что бы корпус разъема был отвязан от сигнальной земли, у почти всех флешек они соединены. В результате, при подключении некоторых USB приборов, корпус контроллера будет соединен с сигнальной землей и вся гальваника летит к чертям. Как быть? Как оно принято в отрасли?
  12. Цитата(vladec @ Sep 8 2016, 14:58) Корпус USB разъема соедините с землей через параллельные резистор в несколько МОм и конденсатор. Неплохой вариант, думал о нем. Из минусов: резистор и конденсатор высоковольтные, а значит габаритные. Корме-то будет "утечка" при проверки развязки. Или это не страшно? Цитата(quarter @ Sep 8 2016, 15:09) заземление металлического корпуса - всегда защитное. человека от удара током защищать. USB развяжите тоже. взять хоть LTM2884 USB нужен High Speed, а этот чип (и адум от AD) на Full Speed. Потому развязать USB нельзя. А разве для устройств при низковольтном питании делается защитное заземление? Тем более, если ACDC, который внешний и делает 24В для питания контроллера (и других узлов) гальванически развязан от сети переменного тока, а следовательно нейтраль после развязки изолирована от общего защитного заземления. Неужели нужно корпус моего контроллера кидать на физическую землю? Я не асушник, чего-то мне это тяжело. Как подключается? Неужели так: Или так: По мне так и так плохо. Может вообще в таких случаях металлический корпус не уместен?
  13. Приветствую! Нужна литература. Видимо с английским у меня все плохо: не могу грамотно сформулировать вопрос гуглу. Потому прошу подсказать литературу. Device Handbook и "Recommended HDL Coding Styles" уже прочитаны. Хочется большего. Суть вопроса. В силу аппаратных особенностей ПЛИС (структура LE, LUT, LAB) некоторые конструкции синтезируются оптимальным образом, достигается максимальное быстродействие и плотность упаковки, а какие-то нет. Например, если в триггере логического элемента есть асинхронный сброс, то конструкция: Кодalways @ (posedge reset or posedge clk)         if(reset)             q <= 0;         else             q <= x; Займет один LAB, но если добавить еще и асинхронную установку, то схема займет уже 4 LE: Кодalways @ (posedge reset or posedge set or posedge clk)         if(reset)             q <= 0;         else if (set)             q <= 1;         ekse                 q <= x; А вот если set убрать из списка чувствительности, то опять 1 LE. Или как лучше оформить выражение, что бы был задействован вход ENA триггера, а не обратная связь? И много подобны вопросов. Оно мне понятно почему и как, но где об этом почитать подробнее? Кое-что есть в "Advanced Synthesis Cookbook", но это для Stratix. Уж очень он от Cyclone отличается.
  14. Цитата(myq @ Mar 30 2016, 16:05) А что за use case такой, где надо иметь и асинхронный сброс и асинхронную установку? Вообще есть рекомендации по написанию синтезируемого кода. Могу ошибаться, с Альтерой давно не работал, но Xilinx явно не рекомендует больше одного сброса/установки на триггер. Всё, что больше одного, имитируется с помощью увеличения LUT/FF Usage. Это был пример аппаратно зависимого синтеза. Алтера не рекомендует использовать одновременно асинхронный и синхронный сброс, это написано в хендбуке. Вопрос в другом. В идеале хочется делать код, который по минимуму зависит от платформы, а на практике получается, что для того, что бы все улеглось в кристалл оптимальным (по плотности и/или быстродействию) образом, требуется учитывать архитектуру. Причем реализации будут так нехило отличаться (сравниваю Stratix и Cyclone). Я удивлен? Нет, я не удивлен. Просто просил помощи с литературой, где были бы эти особенности доступно описаны. Хендбуки прочитаны, и на ПЛИС и на Квартус. Рекомендованные дизайны изучены. Вопросов осталось много. Как бы эти непонятки реализации текущего проекта не мешают, но хочется разобраться. Поэтому, в свободное время экспериментирую, составляю конспект.
  15. Цитата(des00 @ Mar 29 2016, 05:51) Ндя. мыши плакали, кололись....... (с) Сразу сказал вам, читайте хендбук и немного подумайте. В хендбуке черным по белому написано с какими кубиками вы работаете. Например для сыклона 3 Смысл квартусу "убивать" 15 ть LE (т.к. их регистры после этого уже нельзя использовать), ради одного вашего триггера, если он может спокойно реализовать то, что вам надо, на люте? В общем, мыши -- странный народец. Хендбук читал и думал ... много. С архитектурой ячеек знаком. В том-то и дело, что проблема возникла не на сферическом триггере в вакуме, а с многоразрядными регистрами. Какой смысл квартусу "убивать" 16 ть LUT, если их можно заменить одной LAB-Wire ?
  16. blackfin, спасибо за участие, но как раз про каналы асинхронного сброса мне известно из "Recommended HDL Coding Styles" (по сути часть той же книжки, что вы предложили). Вот сейчас мучает вопрос. В LAB есть так называемые LAB-Wide сигналы, так сказать широковещательные сигналы в пределах одного LAB. Среди них сигнал синхронной загрузки, сигнал синхронной очистки сигнал разрешения и другие (всего их 8). Когда делаешь HDL описания триггера (или регистра) и используешь эти сигналы у компилятора два пути, он может для создания этого функционала использовать LUT, а может непосредственно LAB-Wide. В книжке написано, что для того, что бы были задействованы именно LAB-Wide нужно делать описание с учетом приоритетов этих сигналов (имеется ввиду цепочка if (aclr).. else if(ena)...else if ... ), но у меня никак не получается задействовать эти сигналы и высвободить LUT. Код    always @(posedge clk or posedge aclr)     if (aclr)         q <= 1'b0;     else if(ena)         if (sclr)             q <= 0;         else             q <= d; Что я делаю не так?
  17. Цитата(Bad0512 @ Mar 28 2016, 06:13) Ваш случай может происходить, например, из-за неоптимального (с точки зрения архитектуры) приоритета между set и reset. С этой точки зрения полезно поглядеть темплейты - там все эти тонкости учтены. Я бы не стал доверять темплейтам, как-то раз захотел взять оттуда знаковый сумматор, а там флаг переноса объявлен как unsigned, и без приведения суммируется со знаковыми операндами. А мы ведь знаем, что в Verilog, если хотя бы один аргумент выражения беззнаковый, то и результат будет беззнаковым, и сумматор в итоге неверно распространял знаковый разряд. Обида прошла, но осадочек остался. Кроме того, Template не всегда учитывают архитектуру: им все равно, 4-х входовый LUT у ПЛИС, или 6-ти ... А разница существенна. Плюс, в некоторых архитектурах в LE включены выделенные полные сумматоры, а в некоторых нет. Так на стратикс можно одновременно складывать три вектора, а вот в циклоне, лучше конвейер сделать, если, конечно, важно быстродействие. Так что, я бы рекомендовал, рассматривать Template как шпаргалку по синтаксису, но никак не однозначный пример архитектурно зависимого кода.
  18. Цитата(Jackov @ Mar 25 2016, 19:35) На HDL-языках автоматы немного не так создаются, но для общего развития, думаю, полезно будет. Раз уж пошла такая канитель, то смею рекомендовать свою статью по теме: Конечный автомат. Verilog Как раз для начинающих, как раз на пальцах.
  19. kereokerekeke, я бы вам посоветовал захотеть разобраться с темой. Нужно заставить себя интересоваться, а потом все пойдет как по маслу. Возьмите на кафедре отладку с ПЛИС, если ее нет или не дают, то приобретите хоть самую дешевую. Найдите в сети уроки по ПЛИС, прочитайте публикации уважаемого Иосифа Каршенбойма. Почитайте публикации по FPGA на Хабре, изучите соответствующий блог на easyelectronics. В сети очень много статей для начинающих на русском языке. И в конце концов, подпишитесь на соответствующий раздел нашего форума. Просмотрите темы, найдете массу полезных ссылок, сформируете ощущение предметной области. К сожалению, мне в своей инженерной практики приходилось часто менять направление, приходилось глубоко изучать СВЧ, программирование микроконтроллеров, включая различные RTOS, разводить на профессиональном уровне печатные платы, программировать под Linux. Теперь вот ПЛИС. И каждый раз было безумно трудно признать свою некомпетентность в новом вопросе и заставит себя изучать что-то практически с нуля.
  20. SPI

    Добавьте в ПЛИС дополнительную линию: флаг готовности. Появилась единица -- данные готовы. Или можно организовать чтение флага по SPI.
  21. Цитата(addi II @ Mar 17 2016, 18:03) странно, в литературе в нете в некоторых источниках в выпадающем списке уже должны быть пины Используйте Pin Planner, там все будет.
  22. Цитата(addi II @ Mar 17 2016, 16:08) а если там ножек за тыщу???? Тем более. Особенно, если придется переносить в другой проект. Рекомендую сразу при объявлении портов модуля верхнего уровня указывать к каким ногам должны подсоединяться сигналы. Например, в Quartus есть специальная директива для этого. Выглядит это примерно так: Код(* chip_pin = "53, 54, 55, 58, 59, 60, 64, 65" *)     input            [7:0]        sb_i, // Тумблеры (* chip_pin = "11, 10, 8, 7, 6, 3, 2, 1" *)     output            [7:0]        led_o // Светодиоды
  23. Мои пять копеек: Пишем "демку" на Verilog Да простят меня за самопиар.
  24. Приветствую! Есть модуль А, с него выходит сигнал (14 бит), сигнал идет на модуль B, который имеет единственный выход (14 бит), подключенный непосредственно к выводам. Также сигнал идет на модуль C. Выходы модуля С расходятся по другим модулям. Схема полностью синхронна, один домен. При анализе выдает слаки. Для меня странно это: From Node: reg_B, To Node: reg_C. При этом. связи между регистрами reg_B (находится в модуле и reg_C (в модуле С) нет. Зачем анализатор это оценивает? Где он нашел этот путь? Естественно, просмотр RTL и Technology Map не дает результата, нет такого пути. CODE _______ | MOD B | _______ +-->| |----> Pin Out (dacM_code_A_o) | MOD A | | | reg_B | | |----+ |_______| | | | _______ | | | | MOD C | | | +-->| |----> Other Moduls |_______| | reg_C | |_______| И на всякий случай, содержимое sdc: CODE set_time_format -unit ns -decimal_places 3 derive_clock_uncertainty create_clock -period 50MHz -name {clk_50MHz_i} [get_ports {clk_50MHz_i}] derive_pll_clocks set clk_125MHz pll_50MHz_inst|altpll_component|auto_generated|pll1|clk[0] create_generated_clock -name {clk_ext} -invert -source $clk_125MHz [get_ports {dacM_clk_o}] set_output_delay -clock [get_clocks {clk_ext}] -max 0.2 [get_ports {dacM_code_A_o[*]}] set_output_delay -clock [get_clocks {clk_ext}] -min -1.5 [get_ports {dacM_code_A_o[*]}] P.S.: Я понимаю. что пока вопрос рассчитан на телепатов, подскажите, какими сведениями дополнить?