‮Сдвиг по фазе (kincajou) wrote,
‮Сдвиг по фазе
kincajou

Categories:

worklog: Следующая перемена блюд!


Было так:


Потом так:


Потом эдак:

(про "клювик" припоя на трёхвыводном элементе я уже знаю, щас уберу.. закоротку между двумя выводами ПЛИС тоже уже убрал)

Стало так:


Будет ещё круче, потому что я только начал.

Собираю поэтапно, проверяя всякие там напряжения и сопротивления. Например, на выходе импульсника, где должно быть 1.2В, сейчас реально 1.18В при минимально допустимом (по паспорту ПЛИС, но она может и ещё меньше, где-то до вольта.. только зачем?) 1.14В. Шина Vccaux запитана от обычного LM1117-ADJ (что было под рукой, то и поставил) на 2.5В - потребление невелико, кушать лишнее оно не будет. Обычные 3.3В берутся от управляющей платы, там резервы ещё очень даже есть.

Тактовый генератор - термокомпенсированный, российского производства (спизд нашёл!), ГК-250. От его крутоты будет зависеть точность и стабильность всех прочих частот в системе. Для синхронизации с внешними узлами там будет стоять LVDS-буфер (как оказалось, у меня их не оказалось: ресиверы купил, а трансмиттеры забыл). Генератор запитан от отдельного линейного регулятора REG101 для пущей развязки от бросков и шатаний.

Когда-нибудь ПЛИС будет грузиться по SPI (сейчас пока только с JTAG), но т.к. вывод для клока загрузки - не gpio, а dedicated, понадобилось поставить отдельную схемку, коммутирующую этот сигнал между двумя выводами (можно было, конечно, просто их соединить, но как-то неаккуратетнько). Плюс ещё преобразование уровня 3.3В -> 2.5В. Тоже можно было обойтись, но лучше я поставлю чип за 20 рублей, чем потом буду думать, как бороться с неизвестными помехами.

Попутно выяснил загадочное: оказывается, если вывод PROG_B сидит "в нуле" всё время (а я его зачем-то привязал именно к "земле", хотя надо было подумать заранее!), то - сюрприз!!! - порт JTAG не работает. К счастью, этим выводом может управлять микроконтроллер (и он будет это делать в будущем, когда я реализую загрузку из флешки), поэтому проблема решилась очень просто.

Но потом выяснилось ещё более загадочное.
Чтобы проверить тактовый сигнал и светодиод, я набросал простейший VHDL-код, тупой счётчик-делитель частоты. На входе - такт, на выходе - светодиод, деление на десять миллионов (итого 2 герца, ибо генератор на 20МГц). Ага, не тут-то было: на выходе появилась частота 7.36 мегагерца или что-то около того, немного плавающая во времени. Начал искать причину - и нашёл! Оказалось, я в счётчике забыл прописать условие, собственно, по которому у него должен быть инкремент. Это только в Си и прочих языках программирования вы просто пишете цикл и всё, в HDL всё не так: вам нужен СИГНАЛ, и только с ним вы будете работать. А я этот сигнал забыл подключить. Что именно делал (и что делИл) этот счётчик, я не знаю, но компилятор невозмутимо нагородил какой-то схематик с кучей вентилей, оно скушало почти 100 мА и как-то даже работало!

P.S. в ПЛИС заливаю прошивку, кстати, при помощи того китайского поддельного "Platform Cable USB", имитирующего внешний вид и функционал фирменного... при цене в 10 раз меньше.
Tags: радио
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 7 comments