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

Gorby

Свой
  • Постов

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

  • Посещение

  • Победитель дней

    4

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


  1. Про кельвины... Как сейчас помню, стенд в кабинете физики: 1 Кельвин = 1 градус Цельсия (для РАЗНОСТИ температур) К = С+273 (для температуры) Неплохо бы вспомнить, что температура - характеристика состояния тела, определяемая средней кинетической энергией микрочастиц. А абсолютная температура, Т – температура, выраженная по шкале Кельвина. Шкала была введена в 1848 г. английским физиком У. Томсоном (лордом Кельвином). Для вашего случая: 185 кельвинов на ватт эквивалентны 185 же градусов на Вт 185 град\ватт * 2 ватта = 370 градусов Цельсия Причем это только ПРЕВЫШЕНИЕ температуры относительно окружающей среды. Добавим и его при нормальных условиях: 370+25=395 град Цельсия. Надо срочно что-то менять. Либо радиатор ставить, либо импульсный стабилизатор. Ну, общая тенденция сейчас - именно импульсники и никаких радиаторов. Экономия, однако. Кремний намного дешевле алюминия :)
  2. Извольте: Клод Шеннон "Построение надежной системы из ненадежных элементов". Речь шла об электромеханических реле. "Другой задачей, которой он (Шеннон) занимался совместно с Е.Ф. Муром (E.F. Moore), было повышение надежности релейных цепей путем ведения избыточного числа элементов (каждый из которых ненадежен). Эта задача, опять же, сводится к передаче информации по зашумленному каналу. "
  3. Уверен, что моделирует :) Только выглядит это по-другому. И с иной целью. Например IBIS-модели именно это и делают. А нужна эта информация прежде всего при трассировке платы - да Вы лучше меня это знаете. Другое дело, что к допотопной технике прилагалась карта режимов по пост\переменн. токам, еще и осциллограммки. Это сильно облегчало ремонт. Но с другой стороны, не на каждом же элементе схемы. Ну и разумеется, никто режимы эти не высчитывал. А мерял на образцовом изделии. Может и автору топика пойти этим же путем? Пробежаться мультиметром по выводам и нарисовать Карту. Пользы от нее... Точно так же как говорить о напряжении и токе на частотах выше 1ГГц.
  4. Лучше напишите что Вы делали и как. Тогда можно поконкретнее говорить. Пробовал проект с PICOBLAZE под XilinxISE 8.2.3, где использовались примитивы из UNISIM : KCPSM3, fdce, MUX5. При использовании синтезатора XST все прошло на ура, при использовании Leonardo получаю следующие сообщения: "D:/PROEKTS/sample_data_controller/kcpsm3.vhd",line 326: Error, 'FDR' is not a component. "D:/PROEKTS/sample_data_controller/kcpsm3.vhd",line 332: Error, 'LUT4' is not a component. "D:/PROEKTS/sample_data_controller/kcpsm3.vhd",line 342: Error, 'FDR' is not a component. "D:/PROEKTS/sample_data_controller/kcpsm3.vhd",line 348: Error, 'FD' is not a component. ......................................................................... "D:/PROEKTS/sample_data_controller/kcpsm3.vhd",line 503: Error, 'LUT4' is not a component. "D:/PROEKTS/sample_data_controller/kcpsm3.vhd",line 513: -- Sorry, too many errors Process "Synthesize - Leonardo Spectrum" failed имею ввиду, что в KCPSM3 используются примитивы из UNISIM. java script:emoticon(':cranky:', 'smid_11') :cranky: Ну вот все и прояснилось. Сделайте как Макс сказал выше. Но зачем Леонардо? Особенно если XST работает?
  5. Вы неправильно ставите вопрос. Зачем козе баян? Зачем заставлять Леонардо что-то понимать из ISE? Пошагово: Вы решили синтезировать в стороннем синтезаторе (а чем Вам родной XST не угодил?). Пусть это будет Леонардо. Вы в нем выбрали (точно выбрали?), что синтезировать будете для Ксилинкса. Написали исходники на VHDL. Синтезировали. Получили нетлист (EDIF), который затем скормили Place&Route утилите. В конце концов получили прошивку. И где же тут место для какой-либо "примитивы из ISE , в частности из библиотеки UNISIM " ? Другое дело, если Вы хотите использовать например Корегенератор или спецовые несинтезируемые штуки (типа двунаправленных пинов ДДР). Тогда их надо указывать как "черные ящики" - это для синтеза. А маппер потом с ними разберется. И никаких проблем. Лучше напишите что Вы делали и как. Тогда можно поконкретнее говорить.
  6. Я бы поступил по другому, R10 вместо VCC соеденил с землей, между контролером и базой ограничительный резистор (сотни Ом) (класика). Ээээ, позвольте не согласиться насчет классики. Классика как раз у автора поста и у меня (чуть подправленная). Классикой в эмбедерстве считается 51-й Интел. А вот у него как раз и были дохлые выходы, которые только ноль выдавать умели, а единицу выдавали внутренней подтяжкой 10-50 кОм. Вот именно для него и была схема с внешней подтяжкой. Хотя ваше решение как раз и есть самое правильное в данной ситуации - в нем ножка проца максимално развязана от транзистора и реле. Я бы поставил (забил место) резистор между "Zero"&"VCC", также паралельно диодам оптопар в оратном направлении диоды (при этом мощность резисторов R9, R7 по 0,5Вт), потом можно и не впаивать, тем более у вас плата отладочная. А так, похоже на правду :) . Обратные диоды параллельно светодиодам оптронов впаивать ОБЯЗАТЕЛЬНО. Иначе при обратной полярности к закрытому светодиоду приложится 310 вольт. Мгновенно не вспыхнет - резистор ограничит, но постепенная деградация гарантирована.
  7. Я бы поставил параллельно катушкам реле диоды в обратном направлении (катод - к +12, анод - к коллектору транзистора). Диод общего назначения, что-то типа 1N4001. Также во избежание нежелательных эффектов со стороны реле через эмиттер-база транзисторов на выход микропроцессора, я бы включил последовательно в базы по резистору 33-56 Ом. И стремно как-то выглядит гальваническое соединение всего устройства с сетью 220 вольт. В этом случае я бы поставил оптосимистор (MOC какой-то от Моторолы), а за ним - мощный симистор ну скажем MAC9D. У вас на управляющий электрод симистора только минус подается (через микропроцессор). Насколько я помню, у симистора четырехквадрантное управление. Вы уверены, что он вообще включаться будет? Пробовали ли на макете только тиристор, лампочку и батарейку в качестве управителя? Ну и напоследок - все высказанное - мое сугубо личное мнение. Можете не прислушиваться. Но как разработчик (пусть даже и начинающий), вы должны в первую очередь объяснить себе самому то или иное техническое решение, и уметь аргументированно защитить его. Удачи.
  8. Эээ нескромный вопрос: а откуда в interpolator_timesim.sdf (который сгенерился в ходе разводки кристалла) взялось упоминание об INSTANCE '/UUT' ? Почему-то меня не удивляет, что его там не оказалось. (UUT - принято так именовать только в тест-бенче верхнего уровня). Задумайтесь над этим.
  9. Да нормальная книга. И полно прикладных сведений в ней. Но похоже, автор топика новичек в теме, поэтому ему все непонятно. А отечественные телефонные линии и станции - еща та штука для изучения. А почему никто не озвучил, что номинальное напряжение на свободной линии в этих супер-пупер SLICах 48 вольт? И шо они греются как дурные. А с родных АТС идет 60? И звонковое напряжение тоже довольно сильно отличается. Кто-то там про милливатты на импедансе звонка говорил... Так как транзистор выбирать, который занимает линию? Нет, чтоб сказать - переменка до 120 вольт. Путаете человека...
  10. Конденсаторы ставят для обеспечения устойчивой генерации. А номиналы как правило указываются в даташите на кварц и аппнотах на МК. Если нужно чуть-чуть сместить частоту, небольшой конденсатор (десятки пикофарад) ставят последовательно с кварцем. Но это ухудшает его стабильность и в общем случае делать этого не стоит.
  11. ПИД регулятор вам знаком - это оно! Немного поиграть с коэффициентами и будет счастье, после освоения методики. Если подробне могу выслать курс лекций по ПИД, но по-моему в сети этого полно. Кстати можно применить fuzzy logic будет продвинуто, может это будет для вас проще но этот вариант только с контроллером. Начнем от печки: ПИД регулятор предполагает выдачу управляющего воздействия, величина которого сложным образом зависит от разности текущей температуры и идеальной (заданной). Тогда очевидно, что полноценного ПИДа с релейной нагрузкой не получится - в силу ее релейности. Изобретайте свой велосипед. Подсказка - для нагревателя можно пользоваться скважностью (например, за период в 1 минуту он может быть включен на время от 1 секунды до 1 минуты). Далее реализуете простой пропорциональный регулятор и испытываете его. С вероятностью 0.9 он вас устроит. Я если нет, то к тому времени у вас будет поболее опыта и исходных данных для усовершенствования модели. Так что начинайте. Удачи. P.S. ПИД в чистом виде вам не подойдет - у вас система не стационарная (дверь в -20 то открыта, то закрыта). Вот если вы на дверь концевик поставите и учтете ее состояние в софте регулятора - тогда другое дело.
  12. Значит я чего то не понимаю... Вот например Gorby предложил термостат... Его калбасит пару дней и фиг с ним. Прошло 3-и дня например и температура стала в норму. Но вот я не догоняю если эта единственная дверь на улицу где -20, а в помещении должно быть +15 то при её открытии что нужно делать? А что сделает этот термостат? Или нужно ещё как-то его обучать? Просветите плиз… Делать ничего не нужно. Термостат сам справится. Он самообучается. Правда, должны соблюдаться некоторые условия: -мощность нагревателя должна быть в несколько раз больше максимального расхода тепла. - дверь должна быть относительно малого размера (например если это дверь ангара - во всю боковую стену, то задача не решаема принципиально) -тепловая инерция помещения в разы больше чем потеря тепла через открытую дверь. Непонятна только цель ваших изысканий. В жилом помещении температуру с точностью 1-2 градуса можно поддержать только в точке крепления термостата к стене. А в специализированных помещениях (биолаборатория?), где надо обеспечить постоянную температуру, никаких дверей в -20 нет в помине. А есть шлюз и тамбур. И то и другое с отдельным подогревом. Догоняете? ;)
  13. В любом хозмаге покупаете термостат Chronoterm IV фирмы Honeywell. Цепляете к дальней от двери стене на уровне 1.5 м от пола. Устанавливаете желаемую температуру. Замыканием выходных контактов он включает нагреватель (любого типа, чаще всего газовый котел, релейного типа - включен\отключен). Есть еще одна пара - для включения вентиляции. Далее начинается самое интересное - пару дней комнату лихорадит - то жарко, то холодно. Это называется тренировка. В ходе тренировки термостат определяет характеристики вашей комнаты и нагревательного прибора (расход тепла, тепловую инерцию и много чего еще). И далее все работает само и очень плавно. Вся Европа пользуется и не жужжит. Но только того, вы уверены про точность ОДИН градус по всей комнате? Возле радиаторов например поболее будет. И не на один градус. С вашими требованиями - только в полу надо размещать нагреватель. И кафелем накрывать.
  14. Фактически, вы руками доделали некоторую часть работы. Которую запросто мог за вас сделать Кореген. Более того, вам пришлось разбираться с тонкостями использования тех примитивов - причем обременительными тонкостями, типа зануления старших адресов если используется не вся память и построение дешифраторов, если требуется бОльшая. И зачем?! Когда есть кореген, одним движением пальца делающий все это. Насчет переносимости, разных синтезаторов и проч. Сдается мне, что проблему сильно преувеличивают. Не знаю, кто как, но я только один раз кардинально менял окружение. С Леонардо Спектрум для Atmel FPSLIC прыгнул на Spartan2 и XST (ISE). Разумеется, блоки памяти потребовали кардинальной переделки. Которая заключалась всего лишь в генерации оных в Корегене. Затем перешел на Спартан 3, так ничего и не поменялось. Сгенерировал то же самое в Корегене. А теперь пожалуйста ответьте, как часто вам, уважаемые коллеги, пришлось переходить (в ходе разработки ОДНОГО изделия) на кардинально другие FPGA и кардинально другие синтезаторы? Ото ж... А на рихтовку своих исходников с целью сделать их универсальными вы потратите очень много времени с непредсказуемым результатом. (речь идет об аппаратно-специфических вещах, память, DDR регистры и проч.). Моя идеология проста: делаем на plain VHDL все, что можно. По возможности без атрибутов и прочих бубенцов. Все специфическое включаем в блэк-боксы, их генерируем в целевой среде. Констрейны и прочие весьма зависимые прибамбасы (распиновка, типы выводов и тд) делаем исключительно в целевой среде. И не паримся. При переходе на что-то другое у нас остается везде компилируемый чистый VHDL, блэк-боксы создаем по-новой - тут уж никуда не деться. А констрейны, пинауты и иже с ними в новой среде все равно придется вбивать по-новой. Каламбурчик.
  15. Офигеть!!! У меня на фабрике готовятся к монтажу несколько сотен плат и на каждой - три Спартана. И я еще не знаю, попадают ли мои чипы по датакодам в дохлые. Блиииин! P.S. Узнал. Все мои чипы попадают прямо в средину битого интервала :w00t: Хорошо, хоть не запаяны.
  16. А что мешало вывести клок для этих двух на разные пины первой микросхемы и развести их как точка-точка? Только боязнь появления скоса между ними? Да ничего не мешало. Но этот сигнал идет также на обратную связь для DCM. И получится, что один выход привязан по фазе, а второй - нет. Разбаланс нагрузки (один обратку тянет, а второй - нет). Ну и тянуть до ведомых чипов по-любому два провода. А самое главное, плата-то уже изготовлена, пришлось выходить из ситуации подручными средствами (бросать клок двумя одинаковыми проводками на тестовые пятачки, благо они были предусмотрены и шли на Global Clock Input на каждом ведомом чипе).
  17. Извините, что врываюсь... Почему-то никто ни слова не произнес про COREGEN. Это ж самый верный способ получить требуемую память. Прекрасно конфигурируется и заведомо работает. А в Симплифае вставляется как блэк-бокс. Правда, непереносимо. Так и BRAM сама по себе непереносима.
  18. И я свои пять копеек. С каких пор хорошим тоном является делание громоздких операций в прерывании? Нельзя было установкой флага обойтись? А остальное делать в main. А вызов printf() из прерывания - вообще песня. А delay_ms(10) в прерывании? Считаю, что в данной задаче никакой обоснованной необходимости в прерывании не было. Нужен тик таймера - запустите таймер и анализируйте поллом в main. Тем более что ничего другого не делается.
  19. Извините за оффтоп, но действительно, в году 82-83 (а может и раньше, точно не помню), в Радио была серия статей про компьютер на 580 процессоре. Или точнее сказать "как можно сделать компьютер". Подтверждаю! За пару лет до РК-86 в Радио был описан компьютер Микро-80. Но не как полноценный компьютер, а как набор блоков для построения такового.
  20. Красивые картинки. Но хочу предупредить об одной штуке, которая часто не принимается во внимание. При такого рода измерениях очень важно понимать, что и где меряется. То есть надо пользоваться активным щупом с как можно более короткими проводками до источника сигнала и не забывать, что осциллограф показывает РАЗНОСТЬ потенциалов между земляным щупом и сигнальным. Уж простите, что напоминаю общеизвестные вещи. Но почему-то мало кто знает (или почти все забывают), что исследуемая схема связана с оциллографом не только посредством земляного провода щупа, но и через питающую сеть. (если устройство питается от сети, особенно от импульсного БП). Причем связана конкретно. На высоких частотах (о коих и речь), это приводит к тому, что вы увидите на экране совсем не то, что есть на самом деле. То есть не забывайте, что параллельно земляному проводу щупа включено нечто, по чему часто текут довольно большие импульсные токи, отголоски которых вы практически всегда видите на экране скопа. И которых на самом деле в исследуемом сигнале нет. Как бороться? А никак. Можно поработать на время измерений от аккумулятора. Или использовать трансформаторный (50Гц) блок питания для девайса, полностью развязанный от сети (без того высоковольтного керамического конденсатора малой емкости между массой устройства и нулем розетки.)
  21. За код супервизора спасибо, пощупаю. А вот по второму вопросу вы не правы. Хайперлинкс у меня тоже есть. А еще у меня есть осциллограф Tek TDS5104B. И очень хорошо видна форма сигналов. Я ж не все сказал. У меня один Ксилинкс на основе клока от генератора с помощью DLL генерирует выходной клок для еще ДВУХ Ксилинксов, которые должны работать абсолютно синхронно. Вот поэтому и была Звезда, точнее вилка с короткой ручкой и двумя зубцами. а разводчик сделал последовательно. Да и фиг бы с ним, пол наносекунды разницы там погоды не делало. Но из-за ступеньки на средине фронта того ксилинкса что оказался посредине его DLL после 10-30 секунд работы входил в ступор.
  22. Перенос EFSL на IAR

    Интересно. Выкладывайте. Как раз есть под рукой EB40A c AT91R40008 и слот для карточки. А IAR вы какой пользовали? Я запустил последний, 4.40а. После рихтовки стартапа и линкерного файла работает на "ура".
  23. http://www.xilinx.com/xlnx/xil_sw_updates_...update=mxe_libs Ээээ... Будьте готовы, что DCMы не сильно корректно моделируются. Приметивный вопрос: может вам все-таки не с DCM начинать пробывать писать программы на VHDL, а то у этого языка ОПИСАНИЯ АППАРАТНЫХ СРЕДСТВ компеляция слишком строга?
  24. Читал в апнотах у Ксилинкса, что потребяемый стартовый ток достаточно сильно зависит от окружающей температуры. Причем чем ниже температура, тем этот ток больше. В разы. То есть есть смыл обвешивать кристалл как керамическими конденсаторами, так и простыми алюминиевыми электролитами. Это еще не весь ужас. Вот DCM по какой-либо причине вышел из синхронизации - и трындец, его надо ресетить. А если вы ресет не предусмотрели, то дизайн остановился. А предусмотреть ресет непросто. Нужен отдельный дополнительный клок. И что-то типа супервизора. У меня DCM останавливался в произвольный момент времени по причине плохой формы опорного клока - там ступенька посредине фронта была. Это разводчик в штангу дал. Ему было сказано Звездой развести клок на два чипа, а он их последовательно daisy chain сделал. Вот отражение и портило фронт тому чипу, что посредине.
  25. Все когда-то начинали. Не лезьте сразу в дебри - рискуете остаться там надолго. Сделайте что-то простое, но стабильно работающее. Прогоните его в пост-лейаут симуляции (это тоже большой кусок знаний для вас). Помотрите на дизайн изнутри. Насчет баланса однозначного ответа нет. Надеюсь, Вы уже знаете, что скорость дизайна определяется как скоростью срабатывания аппаратных средств (LUT, триггер, схема переноса), так и задержками на проводниках, их соединяющих. Причем триггеры всегда работают быстро, а например логика - далеко не всегда, зависит от количества входов (больше входов - больше уровней логики, ибо нет элементов 32_И-НЕ, их строят из 4-х входовых). Также существенный вклад в задержки вносят соединительные линии. Вы как ни-будь посмотрите отчет о статических таймингах, особенно если где-то чего по времянке не влезло. Там очень подробно показывают, что, где и как. В некоторых синтезаторах есть галочки - оптимизировать по скорости или по размеру логики. Не верьте. Просто попробуйте то и то и выберите более вам подходящее. Не раз сталкивался, что дизайн, синтезированный с оптимизацией по скорости, работает медленнее, чем он же, но по размеру. Что весьма логично - меньше размер - меньшие задержки на соединениях. Хотя бывает по-разному. Наличие длинных цепочек (и как следствие, низкая скорость) - целиком на вашей совести как разработчика. Если вы закрутили процесс, в котором за один такт делаете н-дцать операций с одним и тем же счетчиком, то чему вы удивляетесь? Пишите простые процессы. Они и работать будут быстро. Не используйте архисложных логических операций. А если все-таки надо, делите их на части, пропуская промежуточные результаты через триггеры. У меня например в Спартане-3 28-битный синхронный загружаемый счетчик работает на частоте более 125 МГц и еще запас есть. А у вас несколько бит и вы жалуетесь на низкое быстродействие. И еще. Не надо добиваться максимального быстродействия от схемы. Если сильно задрать требуемую частоту, разводчик иногда начинает выдавать чудеса глупости. Установите в констрейнах частоту, на 10-20 процентов превышающую максимальную рабочую частоту вашего изделия. Удачи.
×
×
  • Создать...