Jump to content

    

shamrel

Свой
  • Content Count

    157
  • Joined

  • Last visited

Everything posted by shamrel


  1. Приветствую! Может быть вопрос для профи покажется странным, но меня замучили сомнения. Делаем преобразователь USB-Etherrnet на чипе LAN7850. Чип имеет поддержку 10BASE-T/100BASE-TX/1000BASE-T. Мне Gbit не нужен мне нужно всего 100М. Соответственно я использую трансформатор на две диф.пары (типа HX1341NL), после трансформатор завожу их на ножки 1, 2, 3, 6 разъема RJ45. Остается два вопроса: 1. Должен ли я на неиспользуемые две диф.линии ставить какие-то терминаторы или просто можно их оставить висеть в воздухе? 2. Что делать с выводами 4, 5, 7, 8 разъема RJ45?
  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. Спасибо. Номинал резистора будет зависеть от коэффициента усиления PGA. Значит, придется городить систему коммутации ... Проще использовать внешние ОУ. Испытываю колоссальный психологический дискомфорт от того, что не понимаю, как вообще можно использовать этот PGA.
  4. Приветствую. Закладываю в новый проект STM32F303. Требуется производить измерения напряжение как постоянное, так и сигнала небольшой частоты (звуковой спектр). Не могу понять, можно ли использовать встроенные в чип операционные усилители для изменения чувствительности АЦП. Вроде как выход каждого ОУ подключен к соответствующему ADC, вроде как у ОУ есть режим PGA, в котором регулируется коэффициент усиления. (картинка из RM0316) Вот только непонятно, как в этой схеме регулируется средний уровень (смещение) при изменения коэффициента усиления. Усилитель-то униполярный.
  5. spark, дайте посмотреть pdf, которая создана в примере из видео.
  6. Этим и занимаюсь. Аппаратно плата не сложная. Ценность ее в прошивке. Прошивать, будем сами. Советуете вначале попробовать отдельно купить компоненты, заказать платы, а монтировать в России? Да, начать хотим с относительно простой платы на 4-х слоях. И партию, так сказать, пробную, штук 30 -- не более. Отчего же нет смысла? Если есть положительный опыт работы с китайской компанией Х, то почему бы не порекомендовать ее? И людям сделаете доброе дело, и мне направление укажите. Kabdim, не подскажите качественных посредников? И да, чтобы на 30 штук обратили внимание, говорите как есть, что это установочная партия. Из моего опыта, люди идут на встречу.
  7. Приветствую. Последний раз тема поднималась достаточно давно, потому создал новую. Собственно возникла необходимость изготовления печатного узла в Поднебесной. Хотелось бы выполнить в одном месте сразу производство PCB, комплектацию и монтаж. Можете посоветовать фирму? Какие могут возникнуть проблемы с таможней? Какие документы нужны для ввоза? Пока речь идет об установочной партии в 30 штук.
  8. Приветствую! Поделитесь опытом. Нужен малогабаритный генератор для тактирования PHY LAN8710A в режиме RMII. Частота 50МГц, промышленный температурный диапазон. Судя по рекомендациям, точность нужна не хуже 50ppm. С какими генераторами был положительный опыт (желательно во всем диапазоне температур)?
  9. Подскажите, какая нужна документация и как отразить это в спецификации (СП) на изделие, если для изделия используется покупной корпус, одну его часть дорабатываем -- вырезы и покраска, остальное оставляем как есть. Покупной корпус состоит из нескольких деталей: собственно корпус (алюминиевый профиль, который нужно доработать), боковины, прокладки и болты для прикручивания боковин к профилю. Вопросы: 1. В СП на изделие корпус указывается, как Сборочная единица? Проблема в том, что корпус состоит из нескольких деталей, и для понимания процесса монтажа, следует каждой детали присвоить позицию. Это же покупное изделие и должно быть отражено в разделе "Прочие изделия". 2. Есть чертеж доработки профиля корпуса, там показаны все вырезы. Чертеж нужно оформлять как деталь? А где указывается, что в качестве заготовки был взять профиль из покупного изделия? По идее, в графе 3 основной надписи пишется заготовка, но это часть покупного изделия и у него нет децимального кода. И если это деталь, то в итоговой спецификацию нужно включить эту деталь и присвоить ей позицию? P.S.: ГОСТ 2.109, а особенно раздел 1.3 читал. Много думал.
  10. Неплохой вариант, думал о нем. Из минусов: резистор и конденсатор высоковольтные, а значит габаритные. Корме-то будет "утечка" при проверки развязки. Или это не страшно? USB нужен High Speed, а этот чип (и адум от AD) на Full Speed. Потому развязать USB нельзя. А разве для устройств при низковольтном питании делается защитное заземление? Тем более, если ACDC, который внешний и делает 24В для питания контроллера (и других узлов) гальванически развязан от сети переменного тока, а следовательно нейтраль после развязки изолирована от общего защитного заземления. Неужели нужно корпус моего контроллера кидать на физическую землю? Я не асушник, чего-то мне это тяжело. Как подключается? Неужели так: Или так: По мне так и так плохо. Может вообще в таких случаях металлический корпус не уместен?
  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. Это был пример аппаратно зависимого синтеза. Алтера не рекомендует использовать одновременно асинхронный и синхронный сброс, это написано в хендбуке. Вопрос в другом. В идеале хочется делать код, который по минимуму зависит от платформы, а на практике получается, что для того, что бы все улеглось в кристалл оптимальным (по плотности и/или быстродействию) образом, требуется учитывать архитектуру. Причем реализации будут так нехило отличаться (сравниваю Stratix и Cyclone). Я удивлен? Нет, я не удивлен. Просто просил помощи с литературой, где были бы эти особенности доступно описаны. Хендбуки прочитаны, и на ПЛИС и на Квартус. Рекомендованные дизайны изучены. Вопросов осталось много. Как бы эти непонятки реализации текущего проекта не мешают, но хочется разобраться. Поэтому, в свободное время экспериментирую, составляю конспект.
  13. В общем, мыши -- странный народец. Хендбук читал и думал ... много. С архитектурой ячеек знаком. В том-то и дело, что проблема возникла не на сферическом триггере в вакуме, а с многоразрядными регистрами. Какой смысл квартусу "убивать" 16 ть LUT, если их можно заменить одной LAB-Wire ?
  14. 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; Что я делаю не так?
  15. Я бы не стал доверять темплейтам, как-то раз захотел взять оттуда знаковый сумматор, а там флаг переноса объявлен как unsigned, и без приведения суммируется со знаковыми операндами. А мы ведь знаем, что в Verilog, если хотя бы один аргумент выражения беззнаковый, то и результат будет беззнаковым, и сумматор в итоге неверно распространял знаковый разряд. Обида прошла, но осадочек остался. Кроме того, Template не всегда учитывают архитектуру: им все равно, 4-х входовый LUT у ПЛИС, или 6-ти ... А разница существенна. Плюс, в некоторых архитектурах в LE включены выделенные полные сумматоры, а в некоторых нет. Так на стратикс можно одновременно складывать три вектора, а вот в циклоне, лучше конвейер сделать, если, конечно, важно быстродействие. Так что, я бы рекомендовал, рассматривать Template как шпаргалку по синтаксису, но никак не однозначный пример архитектурно зависимого кода.
  16. Приветствую! Нужна литература. Видимо с английским у меня все плохо: не могу грамотно сформулировать вопрос гуглу. Потому прошу подсказать литературу. 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 отличается.
  17. Раз уж пошла такая канитель, то смею рекомендовать свою статью по теме: Конечный автомат. Verilog Как раз для начинающих, как раз на пальцах.
  18. kereokerekeke, я бы вам посоветовал захотеть разобраться с темой. Нужно заставить себя интересоваться, а потом все пойдет как по маслу. Возьмите на кафедре отладку с ПЛИС, если ее нет или не дают, то приобретите хоть самую дешевую. Найдите в сети уроки по ПЛИС, прочитайте публикации уважаемого Иосифа Каршенбойма. Почитайте публикации по FPGA на Хабре, изучите соответствующий блог на easyelectronics. В сети очень много статей для начинающих на русском языке. И в конце концов, подпишитесь на соответствующий раздел нашего форума. Просмотрите темы, найдете массу полезных ссылок, сформируете ощущение предметной области. К сожалению, мне в своей инженерной практики приходилось часто менять направление, приходилось глубоко изучать СВЧ, программирование микроконтроллеров, включая различные RTOS, разводить на профессиональном уровне печатные платы, программировать под Linux. Теперь вот ПЛИС. И каждый раз было безумно трудно признать свою некомпетентность в новом вопросе и заставит себя изучать что-то практически с нуля.
  19. Добавьте в ПЛИС дополнительную линию: флаг готовности. Появилась единица -- данные готовы. Или можно организовать чтение флага по SPI.
  20. Используйте Pin Planner, там все будет.
  21. Тем более. Особенно, если придется переносить в другой проект. Рекомендую сразу при объявлении портов модуля верхнего уровня указывать к каким ногам должны подсоединяться сигналы. Например, в 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 // Светодиоды
  22. Мои пять копеек: Пишем "демку" на Verilog Да простят меня за самопиар.
  23. Помог, но лучше не стало. Есть оказывается путь. Есть, но быть его не должно! На RTL нет, а в Technology Map есть. Пот холодный пробивает, волосы на спине дыбом встают, аж сидеть неудобно! Это оказывается я настолько Verilog не знаю ... или вообще не понимаю, как работает компилятор. Упрощенно иерархия модулей выглядит так: mod_A mod_A_inst ( ... .data_o(mod_A_out) // других выходов нет ); mod_B mod_B_inst ( ... .signal_i(mod_A_out), // вход модуля .data_o(mod_B_out) // других выходов нет ); mod_C mod_C_inst ( ... .signal_i(mod_A_out), // вход модуля .data_o(mod_C_out) // других выходов нет ); Как выглядит RTL, я показал в предыдущем посте, а вот так выглядит Technology Map: _______ | MOD B |data_o _______ +-->| |----> Pin Out | MOD A | | | reg_B |reg_B | |----+ |_______|----+ | | | _______ | | | | MOD C | | | +-->| |----> Other Moduls |_______| | reg_C | |_______| Причем, reg_B не дублирует вход, да, туда записываются данные, но с преобразованием. В модуля А на выходе стоит регистр. Это получается в модуль С вообще че попало подается. Как дальше жить?
  24. Приветствую! Есть модуль А, с него выходит сигнал (14 бит), сигнал идет на модуль B, который имеет единственный выход (14 бит), подключенный непосредственно к выводам. Также сигнал идет на модуль C. Выходы модуля С расходятся по другим модулям. Схема полностью синхронна, один домен. При анализе выдает слаки. Для меня странно это: From Node: reg_B, To Node: reg_C. При этом. связи между регистрами reg_B (находится в модуле B) и reg_C (в модуле С) нет. Зачем анализатор это оценивает? Где он нашел этот путь? Естественно, просмотр RTL и Technology Map не дает результата, нет такого пути. _______ | MOD B | _______ +-->| |----> Pin Out (dacM_code_A_o) | MOD A | | | reg_B | | |----+ |_______| | | | _______ | | | | MOD C | | | +-->| |----> Other Moduls |_______| | reg_C | |_______| И на всякий случай, содержимое sdc: 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.: Я понимаю. что пока вопрос рассчитан на телепатов, подскажите, какими сведениями дополнить?