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

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

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

Сообщение dreamer » 02 дек 2014, 01:22

выставил фьюзы без ckdiv8. на выходе получил такой шим.
без ckdiv8.png
без ckdiv8.png (5.31 КБ) 1937 просмотров
при выключении шима на входе, шим на выходе продолжает выходить 1 секунду, но опять же в различном виде: то норм, то измененный.

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

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

Сообщение rhf-admin » 02 дек 2014, 09:28

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

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

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

З.Ы. Придётся наверное самому в железе потестить :?
С уважением, администрация сайта.

dreamer
Читатель
Читатель
Сообщения: 17
Зарегистрирован: 26 окт 2014, 01:19

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

Сообщение dreamer » 02 дек 2014, 16:01

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

dreamer
Читатель
Читатель
Сообщения: 17
Зарегистрирован: 26 окт 2014, 01:19

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

Сообщение dreamer » 03 дек 2014, 00:13

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

rhf-admin, если у вас будет возможность, потестите в железе самостоятельно. а вдруг какой косяк у меня, и мы так и будем ходить кругами. я готов ждать сколь угодно долго. :oops:

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

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

Сообщение rhf-admin » 04 дек 2014, 12:45

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

Ладно, будем думать над этим. :-?
С уважением, администрация сайта.

dreamer
Читатель
Читатель
Сообщения: 17
Зарегистрирован: 26 окт 2014, 01:19

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

Сообщение dreamer » 04 дек 2014, 15:49

во второй версии прошивки (за 12 ноября) с нулем было всё впорядке.

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

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

Сообщение rhf-admin » 05 дек 2014, 00:49

Та прошивка тоже глючная. Но это не важно, в последней версии я нашёл ошибку. Ошибка в сравнении 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
администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
Сообщения: 2944
Зарегистрирован: 25 авг 2009, 23:19
Откуда: Уфа
фанатичный радиохламер
Контактная информация:

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

Сообщение rhf-admin » 05 дек 2014, 13:08

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

З.Ы.Все черновые версии прошивки с форума потёр, чтоб народ не путался.
С уважением, администрация сайта.

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

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

Сообщение rhf-admin » 05 дек 2014, 21:23

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

Ответить

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