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

=AK=

Свой
  • Постов

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

  • Посещение

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

    5

Весь контент =AK=


  1. Analog Devices AN-501 От кристалла. Значительная часть джиттера возникает за счет пологих фронтов на выходах и плавающего порога срабатывания по входам. Земля и питание внутри больших кристалллов сильно болтаются, поэтому пороги срабатывания FPGA плавают. А еще джиттера добавляет crosstalk. И т.д.
  2. Почему же? В принципе это возможно. Любая PLL работает как jitter cleaner. Она фильтрует джиттер с частотами выше, чем частота фильтра в петле обратной связи PLL. Если у входного клока безумно большой и высокочастотный джиттер, то Циклоновская PLL может его почистить. Помнится, Альтера не гарантирует, что джиттер на выходе Циклона будет меньше чем 150 пс. Сравните типичные цифры джиттера, которую добавляет логика разного типа: ------------------------------------------------ тип jitter, ps rms ------------------------------------------------ FPGA 33 to 50 74LS00 5 74HCT00 2.2 74ACT00 1 MC100EL16 (PECL) 0.7 NBSG16 (ECL) 0.2
  3. В предыдущем сообщении ув. [email protected] дал номер этого госта. По номеру он гуглится с полпинка. Для совсем ленивых даю ссылку: http://www.complexdoc.ru/pdf/ГОСТ 23752-79/gost_23752-79.pdf
  4. Бодовая скорость сама по себе не так уж важна. Важнее насколько быстро Атмега будет успевать класть очередной байт в буфер I2C, а также важен хэндшейк, который приостановит FX2 в те моменты, когда очередной байт еще не готов. Не знаю как устроен блок I2C в Атмеге, но думаю, что вряд ли он использует ПДП или напрямую маппится на двухпортовую память, это маловероятно. Скорей всего вы подгружаете байты в его буфер программно, или в поллинге, или - что более вероятно - в прерывании. В любом случае другие процедуры обработки прерываний могут тормозить перекачку на неизвестно какое время. Легче всего проблема решается если Атмега будет придерживать I2C пока очередной байт не готов. Альтернативно можно постараться обеспечить высший приоритет прерывaнию I2C в Атмеге, чтобы эта процедура обработки могла прерывать другие прерывания. Или отрубить Атмеге все прерывания кроме I2C, пока FX2 не загрузится.
  5. Еще один очевидный вариант - хэндшейк. Настоящий EEPROM выдает все байты без задержек. А Атмега, симулирующая EEPROM, наверняка неспособна обеспечить выдачу массива со скоростью 400 кбит/сек. Сколько-то первых байт, сидящих в буфере, она выдаст без задержки, а потом начнет тормозить. И вовсе не факт, что FX2 согласится ждать пока Атмега тормозит. Надо посмотреть доку, будет ли FX2 ждать, если Атмега начнет тормозить I2C, задерживая SCL. А также посмотреть, задерживает ли Атмега выдачу SCL, пока подкачивает данные в свои I2C буфера.
  6. Тогда вопрос в том, насколько хорошо она "притворяется" EEPROM-ом. Например, пока Атмега стартует и настраивает свой I2C порт, FX2 уже успевает посмотреть, есть ли EEPROM, не обнаруживает ее и работает с PID VID ро умолчанию. Чтобы избежать этого, Атмега до поры должна держать FX2 в ресете.
  7. Это когда гонятся за скоростью. Помнится, такой Форт для РС по имени SPF4 (со встроенным оптимизатором) "уделывал" по бенчмаркам С-шные программы.
  8. Непонятно про какую прошивку вы говорите. Если речь о фирмваре CY768013A, то совсем непонятно, каким образом вы ее пытаетесь грузить из Атмеги в CY768013A. Как известно, фирмварь в CY768013A при подаче питания или после сброса может грузиться двумя способами: - если в I2C EEPROM, пристегнутом к CY768013A , есть специальные метки, описанные в доке на CY768013A, то проц всасывает фирмварь из I2C EEPROM - если меток нет, то проц всасывает фирмварь через USB, а из I2C EEPROM берет только дескрипторы USB, и то, если они там есть. А если I2C EEPROM вообще нет, то CY768013A по умолчанию использует дескрипторы Сайпреса, зашитые в кремень CY768013A. Каким боком сюда Атмега приткнулась - ума не приложу.
  9. Форт - компактность и вседозволенность. Форт компактен в нескольких смыслах. Во-первых, скомпилированный байт-код типично в 3-10 раз компактнее, чем скомпилированная С программа, за счет того, что в коде почти отсутствуют адреса (команды стековой машины 0-адресные), а также за счет великолепной факторизации кода, сопровождающейся нулевыми издержками при передаче параметров в функции и из них. Во-вторых, исходник Форта раза в 2-3 компактнее исходника на любом другом языке за счет отсутствия любых синтаксических "рюшечек" (скобок, двоеточий и т.п.), а также за счет возможности использования любых символов для определения слова (например, в Форте команда "переслать вершину стека данных в стек возвратов" пишется двумя символами >R ). Исходники Форта лаконичны, в этом их достоинство и недостаток одновременно. Вседозволенность у него выше, чем в С, потому что Форт-система в принципе обозрима и модифицируема. Программист может знать ее полностью, поскольку она компактна, а потому он может перекраивать ее под задачу по своему усмотрению. У С-шного программиста этой свободы нет, границы заданы тем, что умеет конкретный компилятор.
  10. FPGA - USB 2.0

    Совершенно верно. И для загрузки фирмваря в саму FX2LP тоже никаких загрузочных микрух не используем. Все грузится из РС по USB.
  11. Это подспорье в написании внутреннего интерпретатора Форта, он будет работать немного быстрее. А на использование языка никак не влияет. Не пугайте людей. Это тоже нужно только для ускорения работы внутреннего интерпретатора, что в подавляющем большинстве случаев нафиг никому не надо. Критичные по времени куски кода можно написать на С или на ассемблере, тогда нужда в аппаратных ухищрениях полностью исчезает. Совсем не обязательно иметь встроенный Форт. Виртуальная форт-машина встает практически на любой микроконтроллер. Посмотрите http://c-fvm.sourceforge.net/index.php Внутренний интерпретатор Форта занимает всего пару килобайт, и это не предел, можно и поменьше ужать. Зато отлаженный Форт-код занимает в несколько раз меньше места, чем эквивалентный С код, поэтому "потраченные" килобайты вернутся с лихвой. Программы пишутся/отлаживаются в кросс-системе, на PC. Вся система написана на С, поэтому скрестить ее с С-шным кодом проблем не вызовет.
  12. FPGA - USB 2.0

    Passive serial по терминологии Альтеры. Используем два варианта: - Когда ставим 56-ногий FX2, в котором нет последовательных портов, то делаем простейший бит-банг через порт. Скорость загрузки получается порядка 700 кбит/сек - Когда ставим многоножечный проц, то грузим через последовательный порт с бодовой скоростью 4 Мбит/сек. Реальная скорость получается ниже раза в 3, т.е. всего лишь раза в два больше, чем с бит-бангом. Одна из причин задержек состоит в том, что проц на лету меняет порядок следования битов в каждом байте, ведь UART выводит данные младшим битом вперед. Напрямую, через bulk pipe.
  13. FPGA - USB 2.0

    Мы работаем на связке FPGA+CY7C68013A. Даже этот сравнительно простой вариант "поднять" не так уж просто, придется попыхтеть. Зато кайф в том, что все грузится по USB: после подключения фирмварь грузится в CY7C68013A, а потом через CY7C68013A код грузится в FPGA. А на варианты с реализацией USB в самом FPGA (USB PHY ессно внешний) мы забили, поскольку сочли их нереалистичными - там работы в разы больше.
  14. В 80-е годы в "Радио" была статья Лонгинова, в которой описывался музыкальный эффект "флэнжер" на базе аналоговой линии задержки. Использовались многокаскадные LC-фильтры, для регулировки времени задержки согласованно изменялась индуктивность катушек, для чего через их обмотки подмагничивания пропускался постоянный ток. Это 100% аналоговая техника. Однако если ПЗС линии задержки считать аналоговыми (а у них только время дискретное), то проще делать на них. Например, на 528БР1, она шумит меньше чем 528БР2.
  15. Например, Dow Corning 3140. Купить можно в Farnell. Прозрачная однокомпонентная заливка, при затвердевании (сутки) получается типа твердой резины. Платы под заливкой поддаются ремонту, резину можно расковырять отверткой, перепаять деталь и залить снова. Очень удобно, что она густая. Если просто лить на детали сверху, она образует "подушку" толщиной порядка миллиметра. И никакой формы не надо. А по поверхности высокое и правда шьет как нефиг делать. Надо заливать, надо делать прорези, надо делать "круглые" пайки в виде шариков, чтоб заусенцев не было. Кроме грязи, есть еще такой поганый эффект как коронный разряд. Если напряжение достаточно большое, то у всех проводящих "иголок" (острых выводов и т.п.) получается настолько высокая напряженность поля, что начинает ионизироваться воздух. Эти иончики создают проводящий "канал", длина которого почти неограничена. Ток у короны небольшой, но она постепенно "разъедает" все подряд, образуя проводящий канал на поверхности.
  16. Может ли кто-нибудь поделиться опытом создания устройств, которые бы работали через USB test and measurement class driver? Может, какой-нибудь ДевКит существует для быстрого освоения специфики и разработки таких устройств?
  17. Емкость вторички практически не зависит от того, какой используется умножитель. Следовательно, частота резонанса тоже не зависит. Частота зависит в основном от того, как намотан высоковольтный транс.
  18. Показывал unconnected на цепи, которые были соединены. Реально цепь +3.3 была разбита на 3 островка, но DRC хаотически показывал на этой цепи 58 ошибок. Не заметить такое невозможно. DRC вываливает кучу ошибок. Лезешь проверять первую ошибку из списка, долго на нee пялишься, пока не понимаешь, что там все ОК. Лезешь проверять вторую ошибку - та же история. Где-то на 5-й ложной ошибке желание дальше проверять этот мусор заканчивается.
  19. Когда-то давно делал 50 кВ 100 Вт квазирезонансный. Задающий на TL494, выходной каскад на полевиках, от 24 В. Квазирезонанс напрямую на пуш-пулле делать неудобно, поскольку приходится полностью надеяться на паразитные параметры: частоту резонанса задают индуктивность рассеяния транса и емкость вторички. Чтобы выйти из положения, удобнее всего последовательно с первичкой включать дроссель. Его индуктивность складывается с индуктивностью рассеяния транса, в результате частоту резонанса можно в некоторых пределах настраивать, подбирая индуктивность дросселя. У меня использовалась громоздкая, но удобная в настройке и надежная в работе схема: пуш-пулл работал на низковольтный транс, который "разгонял" напряжение примерно до 100В. Между вторичкой этого транса и первичкой высoковольтного транса включался дроссель. Сначала сделал частоту TL494 фиксированной, она один раз настраивалась в резонанс потенциометром. Оказалось, что при длительной работе, когда все нагревается, система постепенно выходит из резонанса, причем похоже, что в основном за счет изменения проницаемости феррита сердечника дросселя от температуры. Пришлось добавлять приблуду типа фазового детектора, который сравнивал фазы напряжения и тока и "подкручивал" частоту в нужном направлении. В TL494 частота задается двумя пинами, к одному подключен кондер, к другому - резистор на землю. Вот в этот пин через сравнительно высокоомный резистор можно вдувать небольшой ток, в результате чего меняется частота.
  20. В Winter 09 появился новый баг в DRC. При проверке DRC может вываливать огромное кол-во "ошибок", которых нет. В моем случае DRC Winter 09 показывал 58 ошибок там, где DRC Summer 08 видел только одну. Тексуппорт Альтиума о проблеме извещен. Слава богу, что Winter 09 и Summer 08 спокойно уживаются вместе. Так что Summer 08 лучше не сносить, а держать про запас для сравнения.
  21. 100 мм по поверхности ПП, залитой силиконовой резиной, у меня за несколько лет "проело" напряжение всего 20 кВ. У той резины адгезия к ПП была плохая, но от пыли и грязи поверхность она защищала на сто процентов. Для изоляции 100 кВ по поверхности на открытом воздухе можно "на глазок" оценить длину поверхности изоляторов на ЛЭП, это, наверное, метр или даже больше.
  22. Приведите осциллограммы сигналов на приемном и передающем концах, или внятно опишите, что у вас там "вставляется" в середину пакета. Правильная формулировка вопроса - это половина ответа. Kстати, по-английски "инженер" пишется "engineer", a не "ingeneer".
  23. Может, вы посылаете чанк размером, меньше чем оговоренный в конфиге? Скажем, если оговорены чанки по 64 байта, а вы послали меньше, то это будет признаком окончания сессии. Вообще же чип работает ОК, но с докой, помнится, у нас тоже были какие-то похожие на ваши непонятки. В свое время помучались, методом проб и ошибок подобрали нужный режим, зашили в софт и давным-давно забыли, в чем была заморочка.
  24. Я думаю, никак не уменьшится. Изолятору все равно, что 50 Гц, что 25 кГц. Металлу тем более все равно. Окружающим может быть не все равно: если в 25-килогерцовом будет много гармоник, то излучать будет, как "глушилка". Особенно если длина провода окажется в каком-то "удачном" соотношении с длиной волны како-нибудь гармоники, в результате чего провод окажется хорошо настроенной антенной.
  25. Когда-то давно я делал DC/DC, который работал при постоянном напряжении между первичкой и вторичкой 60 кВ, в составе промышленной рентгеновской установки. Самое сложное - обеспечить нужное пробивное напряжение изоляции. Если напруга меньше 30 кВ, то больших проблем не возникает, а при напругах более 30 кВ возникает очень гнусная корона, которая не сразу, но довольно быстро "проедает" изоляцию, особенно по поверхности. Пробить сантиметров 10...20 по поверхности - плевое дело. Надежный и проверенный путй - заключить транс в заземленный металлический яшик приличного размера (со сторонами порядка 15 см) и залить трансформаторным маслом. В ренгеновской установке, к которой я прикручивал свою приблуду, БП был сделан Сименсом именно так. Я же сделал транс на П-образном замкнутом ферритовом сердечнике от ТВ строчника. Вторичка была намотана "бескаркасно" и проклеена, чтобы не рассыпалась. Потом она изолировалась многими слоями двухкомпонентной (как эпоксидка) силиконовой резины Dow-Corning: - держишь катушку за длинные выводы и макаешь в кювету с резиной - потом феном несколько минут сушишь очередной слой - потом опять макаешь, и т.д. Пробивное напряжение у такой резины 60 кВ/мм. Собственно, у многих пластиков пробивное находится в диапазоне 50...80 кВ/мм. На всякий случай напоминаю, что пробивное от толщины зависит как корень квадратный, т.е. 2 мм изоляции 60 кВ/мм будет держать 84 кВ, а 3 мм - 104 кВ. Когда я "маканием" и сушкой нарастил изоляцию до нужной толщины, то дал резине окончательно застыть 24 часа, после чего собрал БП в коробке из оргстекла и залил все полностью той же силиконовой резиной. На этом этапе фокус в том, чтобы удалить из заливки воздух. Для этого свежезалитый блок (пока резина жидкая) помещается в камеру на полчаса, из камеры откачивается воздух (прикольно смотреть, как резина пузырится). Потом блоку надо дать застыть 24 часа при нормальном давлении.
×
×
  • Создать...