Умножитель частоты

Здесь обсуждаем устройства на МК и программы для них
dreamer
Читатель
Читатель
Сообщения: 17
Зарегистрирован: 26 окт 2014, 01:19

Re: Умножитель частоты

Сообщение dreamer »

выставил фьюзы без ckdiv8. на выходе получил такой шим.
без ckdiv8.png
без ckdiv8.png (5.31 КБ) 5012 просмотров
при выключении шима на входе, шим на выходе продолжает выходить 1 секунду, но опять же в различном виде: то норм, то измененный.
Аватара пользователя
rhf-admin
администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
Сообщения: 3060
Зарегистрирован: 25 авг 2009, 23:19
Откуда: Уфа
Контактная информация:

Re: Умножитель частоты

Сообщение rhf-admin »

:-? Хм, что-то я не вижу ошибок в программе. Может камень ресетится из-за болтающихся в воздухе входов? На всякий случай вот прошивка с включенными подтягивающими резисторами:
with_pull_up_resistors.zip
Чем во время тестов сигнал на входе задавался? Чем контроллер питался? Свободные входы просто в воздухе висели? Схематично можешь изобразить тестовую схему?

По-поводу ckdiv8 - если его включить - изменится только то, что всё станет в 8 раз медленнее, то есть допустимая частота на входе уже будет не 1..600 Гц, а 0,125..75 Гц.

По поводу того, что после отключения входного сигнала, на выходе продолжает некоторое время оставаться сигнал, - так и будет, от этого нельзя избавиться, можно только уменьшить длительность этого сигнала, обрезав минимальную измеряемую частоту. Я в статье писал, что выходной сигнал по фазе сдвинут на 360 градусов относительно входного. То есть мы на выход выдаём то, что намерили в предыдущем цикле. А о том, что сигнал пропал, узнаём только по переполнению таймера, а пока он не переполнится - выдаём на выход то, что в предыдущем цикле измерения получили.

З.Ы. Придётся наверное самому в железе потестить :?
С уважением, администрация сайта.
dreamer
Читатель
Читатель
Сообщения: 17
Зарегистрирован: 26 окт 2014, 01:19

Re: Умножитель частоты

Сообщение dreamer »

входящий сигнал формируется ne555, которая управляет транзистором, а транзистор через подтягивающий резистор садит ногу на землю. остальные ноги attiny в воздухе.
питается все от акб 12 вольт(мотоциклетный акб)
проверить прошивку смогу только вечером.
согласен, что может быть и мой косяк, но я не пойму где. :?
dreamer
Читатель
Читатель
Сообщения: 17
Зарегистрирован: 26 окт 2014, 01:19

Re: Умножитель частоты

Сообщение dreamer »

проверил прошивку. установил фьюз ckdiv8. на выходе сигнал тот, что и был(с одним паразитным всплеском). нюансы остались те же.

rhf-admin, если у вас будет возможность, потестите в железе самостоятельно. а вдруг какой косяк у меня, и мы так и будем ходить кругами. я готов ждать сколь угодно долго. :oops:
Аватара пользователя
rhf-admin
администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
Сообщения: 3060
Зарегистрирован: 25 авг 2009, 23:19
Откуда: Уфа
Контактная информация:

Re: Умножитель частоты

Сообщение rhf-admin »

Собрал-таки в железе. Интересное получается кино. У меня картинка получилась такая же. Короче, умножает он правильно, только ШИМ-сигнал формирует неправильно. Там где он должен выдавать единицу - он выдаёт единицу, а вот там, где он должен выдавать ноль - он почему-то выдаёт импульсы. Причём, в зависимости от частоты - разное количество.

Ладно, будем думать над этим. :-?
С уважением, администрация сайта.
dreamer
Читатель
Читатель
Сообщения: 17
Зарегистрирован: 26 окт 2014, 01:19

Re: Умножитель частоты

Сообщение dreamer »

во второй версии прошивки (за 12 ноября) с нулем было всё впорядке.
Аватара пользователя
rhf-admin
администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
Сообщения: 3060
Зарегистрирован: 25 авг 2009, 23:19
Откуда: Уфа
Контактная информация:

Re: Умножитель частоты

Сообщение rhf-admin »

Та прошивка тоже глючная. Но это не важно, в последней версии я нашёл ошибку. Ошибка в сравнении OC и IOUT. Причём алгоритм-то правильный, а реализован криво.
В программе сейчас так:

Код: Выделить всё

   cp   OC_H, IOUT_H     ; OC_H - TOUT_H
	brlo Lower            ; jump if lower
	cp   OC_L, IOUT_L
	brlo Lower
Но! То, что старший байт OC не меньше старшего байта IOUT ещё не даёт основания сравнивать младшие байты, поскольку OC_H в этом случае может быть либо больше IOUT_H (и это сразу значит, что OC>IOUT), либо равен IOUT_H (и тогда как раз для выяснения кто больше нужно сравнивать младшие байты, как в программе).
Короче, правильно будет так:

Код: Выделить всё

   cp   OC_H, IOUT_H     ; OC_H - TOUT_H
	brlo Lower            ; jump if OC_H lower IOUT_H
	brne HierOrEqual      ; jump if OC_H  bigger IOUT_H
   cp   OC_L, IOUT_L     ; compare if OC_H equal IOUT_H
	brlo Lower
Завтра буду тестить, но теперь вроде бы ошибок больше нет.
С уважением, администрация сайта.
Аватара пользователя
rhf-admin
администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
Сообщения: 3060
Зарегистрирован: 25 авг 2009, 23:19
Откуда: Уфа
Контактная информация:

Re: Умножитель частоты

Сообщение rhf-admin »

Ну вот, потестил. Теперь всё работает. :D
Прошивка в архиве, который в статье, уже новая, можете качать. :) Вечером выложу скрины с осциллографа.

З.Ы.Все черновые версии прошивки с форума потёр, чтоб народ не путался.
С уважением, администрация сайта.
Аватара пользователя
rhf-admin
администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
Сообщения: 3060
Зарегистрирован: 25 авг 2009, 23:19
Откуда: Уфа
Контактная информация:

Re: Умножитель частоты

Сообщение rhf-admin »

Вход 10 Гц:
shim_mul_3.gif
shim_mul_3.gif (39.59 КБ) 7732 просмотра
На выходе получаем 20 Гц с таким же коэффициентом заполнения:
shim_mul_4.gif
shim_mul_4.gif (39.07 КБ) 7730 просмотров
С уважением, администрация сайта.
Ответить

Вернуться в «Устройства на микроконтроллерах»