Свежие обсуждения
Микроконтроллеры

Тестер для проверки мониторов

1 6

Здесь кто-то давал ссылку на проект - Deogen - Tiny monitor tester - генератор цветных полос для проверки мониторов на мк ATTiny2313.

Так как мониторы ремонтирую постоянно, то есть необходимость в подобном устройстве. Тем более его собрать - дело 5-и минут
И прошивка есть.

Собрал, прошил...
Осциллограф показывает, что вроде бы всё работает - есть сигналы RGB и синхронизации, но монитор ни чего не показывает.
Потому что частоты всех сигналов занижены.
Например, импульсы кадровой синхронизации вместо 60Гц имеют частоту около 7,69Гц.
Соответственно частота строчных синхроимпульсов 4КГц.

То есть, похоже на то, что частота кварцевого генератора не та или он вообще не работает.
По схеме стоит кварц на 20МГц, но выходная частота синхроимпульсов меняется слабо при подстановке кварцев на частоты от 10МГц до 27МГц.

В проекте не указано "слово конфигурации", а я сам в AVR-ах ни бум-бум...

Может кто подскажет, как эти фузы выставить правильно?

Кстати, программирую мк прогой Uniprof.
Вот таблица теперешнего состояния всех фузов.

 

Поставь "галочку" CKDIV8, похоже все встанет на место (это дает отключение делителя частоты генератора на 8). Попробуй все должно получиться.
(галочку поставить именно в этой программе (похоже это Uniprof), в другой программе может быть совсем наоборот.(инверсная расстановка галочек например в той же "лошади" PonyProg)

 

Lastic, Вы, конечно же, правы! Спасибо.

Стал сам читать даташит и нашёл, что CKDIV8 делит частоту на 8. В моём случае как раз и было деление на 60Гц/7,69Гц=7,8 раз.
С учётом погрешности измерения частоты осциллографом - как раз 8.

Выключил деление, поставив галочку на CKDIV8, и получил нужные частоты.
Подключил монитор и увидел картинки...

Всё работает.

Теперь ещё одна просьба...
Стоит кварц на 20МГц, а мне он потребуется для другого устройства.
Покупать лень, так как под ногами валяются кварцы на 25МГц.
Подключаю их- всё работает, но частоты не стандартные получаются.

В связи с этим вопрос - что нужно подправить в листинге программы, что бы получить прежние частоты на кварце 25МГц.
По ссылке на генератор есть и готовая прошивка и листинг программы.
Может, какому специалисту по AVR не лень будет глянуть листинг и подсказать, что подправить?

 

DWD: 25МГц.
за пределами спецификации ATTiny2313.

а оно вам надо???

 

как минимум, перестроить константы сравнения таймера, пример -

/* 20MHz / 37880Hz = 527.98 = 0x0210*/

и далее..

ldi acc,0x02
out ICR1H,acc
ldi acc,0x10
out ICR1L,acc

заменяется на ..

/* 25MHz / 37880Hz =659,97 = 0x0294*/

ldi acc,0x02
out ICR1H,acc
ldi acc,0x94
out ICR1L,acc

и так во многих местах, к тому же не факт что Tiny заведется на 25 МHz и будет без косяков работать, а кварц 6 руб стоит.

 

Cheeeper: за пределами спецификации ATTiny2313.
Lastic: ...не факт что Tiny заведется на 25 МHz и будет без косяков работать, а кварц 6 руб стоит.

Мужики, во первых, генератор в космос не полетит, а во вторых - здесь предлагался осциллограф на этом же МК и в нём использован кварц на 27МГц. Утверждалось, что такая частота вытягивается без проблем...

Попробовал - и у меня этот генератор свободно запускается и работает с кварцами на 25МГц и 27МГц.
Кварцы разные подставлял, в том числе и керамические.
Спрашивается, если работает, то почему не использовать?

Я же говорил, что кварцев на 20МГц у меня нашёлся только один, но он мне ещё потребуется. Купить, конечно, не проблема, но зачем покупать одно, выбрасывая другое, когда у меня куча бесхозных кварцев на 25МГц (с сетевых карт и свичей-хабов).
Тем более, что с кварцем на 25МГц генератор работает и так, без изменения прошивки - все картинки есть и режимы по разрешению переключаются.
Только частоты, естественно, изменились:
кадровая вместо 60Гц - стала 75Гц,
строчная, вместо 31.5КГц, 37.9КГц, 48.5КГц и 64КГц
стала соответственно - 39.34КГц, 47.25КГц, 60.54КГц и 79.77КГц (показания самого монитора в меню "Информация").

А так как синтезаторы развёрток монитров автоматически тянут куда большие значения, то в принцие можно даже прошивку не менять...
Кадровая - так вообще получается стандартная - 75Гц.

Хочу ещё попробовать ради спортивного интереса поставить кварц на 33МГц и поиграть напряжением питания, определяя, при каком минимальном напряжении получится максимальная частота.

Ещё меня не устраивают сервисные возможности генератора... точнее, их полное отсутствие.
Ведь даже питание включать-выключать приходится обычным тумблером...
Не уже ли трудно было ввести ещё один режим в переключатель картинок - переводить МК в спящий режим?
Тогда переключатель не потребуется совсем.

Ещё с питанием "проблемы" - используется "Крона" на 9В, напряжение которой садится стабилизатором до 5В.
Да, это просто. Но не красиво...

Короче, хочу попробовать запустить всё хозяйство от одного литиевого элемента (3В...4,2В) без всяких стабилизаторов и попытаться программно включать-выключать генератор.

Даже если не смогу разобраться с прошивкой и ни кто не поможет, то просто соберу на 561ТМ2 и полевичке выключатель питания генератора, управляемый той же кнопкой режима...

Lastic: ...как минимум, перестроить константы сравнения таймера...

Да, Lastic, спасибо.
Вчера вечером посмотрел листинг и увидел, где стоят константы частот и как они вычисляются.

Правда вижу пока, что меняются только константы строчной развёртки и длительности импульса.
Частота кодровой прописана где-то в другом месте...

Будет время - попробую изменить эти константы под другой кварц...
Ага, щас... А чем скомпилировать? Это что, ещё и прогу специальную ставить?..

 

DWD: Хочу ещё попробовать ради спортивного интереса поставить кварц на 33МГц...

Попробовал - работает как положено!
Кварцы разные подставлял в пределах 32МГц, 32.42МГц, 33.86МГц, 39МГц.
Запускается с пол пинка при питании 5В.

Правда при этом монитор не показывает кртинку. Пишет, что частота "Вне диапазона".
По замерам, строчная не высокая - 50...150КГц, а вот кадровая - 100...130Гц и именно её монитор не берёт.
А сам МК вырабатывает все сигналы, соответстсвующие повышенной частоте.

Ещё парочка экспериментов с напряжением питания.
Здесь будут проблемы при желании уменьшить напряжение...

С кварцем 20МГц МК запускается при напряжении питания не менее 4В.
С кварцем на 25МГц - не менее 4.5В.

Хотя при плавном снижении напряжения с кварцем на 25МГц МК продолжает работать влоть до 3,5В. Но с нуля запускаться уже не хочет...

Так что, мой экземпляр МК ATTiny2313 запросто работает с кварцами вплоть до 39МГц при питании 5В.

P.S.
Не смог найти кварц на 50МГц. что бы проверить...

 

DWD А чем скомпилировать? Это что, ещё и прогу специальную ставить?..
AVR Studio Вам в помощь. При таком желании, должно получиться!
МК обязан устойчиво запускаться на частотах указанных в спецификации во всем !!! диапазоне температур указанных в той же спецификации.

 

Про AVR Studio слышал. Оказывается, когда-то даже скачал ( была мысль начать знакомство, но...).
Тут что-то бы по-проще - открыл в текстовом редакторе, подправил и сохранил в HEX.
Ладно, путь известен по PIC-ам, разберусь при желании.

Что касается устойчивого запуска, то при +18 градусах запускается устойчиво и работает без сбоев от напряжения 5В+-0.1В.
Наверно при более высоких температурах должно быть лучше?

Не знаю, как на счёт более сложных алгоритмов программы, но, думаю, для простейших, типа этого генератора, надёжность более чем достаточна.

Меня другое беспокоит - не запускается от литиевого элемента. По даташиту, с кварцем 20МГц минимальное напряжение питания 4.5В. Реальное - 4В.
Значит, либо два элемента последовательно со стабилизатором, либо от одного с преобразователем...

Вопрос:
По даташиту, с кварцем 10МГц МК работает при напряжении от 2,7В. Как раз подойдёт один литиевый элемент (2.75В...4.2В).
Как будет работать программа, при уменьшении частоты кварцеаого генератора до 10МГц?
Естественно, с корректировкой коэффициентов частот развёрток.
Будет ли МК успевать отрабатывать программу?

 

МК может работать и в статическом режиме (частота внешнего тактового генератора 0), но при этом не будет сигнала для монитора на выходе, минимальная частота определяется возможностью программного формирования на выходе необходимого сигнала.
Частоты кадровой развертки мне кажется прячутся здесь

//628 lines = 0x0274h
ldi DEO_u8CounterPQRSH,0x02
ldi DEO_u8CounterPQRSL,0x74
mov PQRSH,DEO_u8CounterPQRSH
mov PQRSL,DEO_u8CounterPQRSL

намек на это здесь

/* Timings */
/* Vertical */
#define P r10
#define PQ r11
#define PQRH r12
#define PQRL r13
#define PQRSH r14
#define PQRSL r15

а этот комментарий
rjmp PC /* while (1) */
говорит о том, что программу на ассемблере писал программист на С