сайт практикующего электронщика-эмбеддера

сайт практикующего электронщика-эмбеддера (https://sdelal.net/index.php)
-   Открытые проекты (https://sdelal.net/forumdisplay.php?f=3)
-   -   Модуль деления/умножения частоты. (https://sdelal.net/showthread.php?t=7)

Admin 07.08.2013 22:21

Модуль деления/умножения частоты.
 
. . . Общее описание:
. . .
Модуль предназначен для умножения или деления поступающего сигнала на коэффициент, записанный в энергонезависимой памяти. Входной канал имеет подтяжку к 5 вольтам, выходной канал имеет отрицательный коллектор. Коэффициент, также как и режим работы модуля, можно вписать в еепром, или ввести с помощью кнопки. Коэффициент имеет диапазон 2-99. Рабочая входная частота делителя имеет ограничение 45 кГц. Погрешность деления отсутствует. Максимальная выходная частота в режиме умножения - 10кГц. При выходной частоте до 300 Гц погрешность умножения не превышает 1%. При выходной частоте до 1кГц погрешность умножения не превышает 3%.

. . . Внешний вид готового устройства:
http://sdelal.net/imag/img_0005.jpghttp://sdelal.net/imag/img_0006.jpg

. . . Распиновка разъёма IDC-10:
http://sdelal.net/imag/img_0007.jpg

. . . Принципиальная схема модуля:

. . . Программирование модуля:
. . . Для входа в режим программирования нужно нажать на кнопку на модуле и удерживая её включить питание. Светодиод выдаст 20 вспышек за 2 секунды, сигнализируя о входе в режим программирования. Следующие длинные вспышки с периодом 2 и паузой между сериями 1 секунда информируют о номере разряда программирования. Короткие нажатия на кнопку увеличивают разряд на единицу. Всего доступно 3 разряда. Первый разряд отвечает за режим работы модуля (1-делитель сигнала, 2-умножитель сигнала), следующие 2 разряда - десятки и единицы коэффициента. Для редактирования текущего разряда нужно длительно нажать на кнопку. Светодиод выдаст серию вспышек, сигнализируя о входе в режим редактирования текущего разряда. Следующие короткие вспышки с периодом 1 и паузой между сериями 2 секунды информируют о текущем состоянии разряда. Редактирование разряда на единицу осуществляется короткими нажатиями на кнопку. Для выхода из режима редактирования текущего разряда нужно длительно нажать на клавишу. Светодиод выдаст серию вспышек, сигнализируя о выходе из режима редактирования текущего разряда. Изменение любого регистра автоматически записывается в энергонезависимую память микроконтроллера.
. . . Программа поддерживает функцию сброса всех регистров. Сброс происходит при удержании кнопки на 5 секунд после подачи питания на модуль. После сброса модуль переходит в режим делителя с коэффициентом 2.

. . . Архив с прошивкой качаем здесь.
. . . Обсуждение проекта и пожелания ниже.

Alex Handy 30.10.2013 09:35

Цитата:

Сообщение от Admin
Обсуждение проекта и пожелания ниже.

Думаю можно заменить BJT транзистор на что-то типа 2N7000, убрав при этом резистор базы. В остальном, просто подумал, где бы эту штуку можно было применить...

Admin 30.10.2013 12:29

BC817 самые распространённые транзистора, я стараюсь не использовать труднодоставаемые детали. Появился этот проект, когда я работал автоэлектриком. У меня соседи занимаются авто-ралли, переставляют моторы и трансмиссии, переделывают ходовую. В конце надо адаптировать сигналы с датчиков тахометра и спидометра для щитка приборов.

Новичок45 14.01.2015 03:23

Данное изделие меня очень заинтересовало, но почему то тема затихла. На данный момент делитель/умножитель частоты мне очень бы пригодился. Как его приобрести?

Admin 14.01.2015 13:37

Этот проект не коммерческий, рассчитан для самостоятельной сборки.

SILF 28.03.2015 16:53

Приветствую ADMIN!
собрал схему, взял два PIc12f675
программатор собрал JDM programmator, на ПК поставл WInpic800, HEx прошиваю в PIc, но после когда читаю пишется куча нолей в code, как я понял потому что стоит защита от считывания кода CP\CPD.
можно их убрать при прошивании?
и после подания питания на схему светодиод постоянно моргает и все =(( с перерывом в секунду вроде=(
и еще вопрос можно по умолчанию сделать чтоб умножалось на 90 например?

Admin 30.03.2015 01:03

Читайте хелп по программатору, думаю найдёте ответ по биту защиты. Остальные биты должны быть настроены, как указано в hex, тогда работать будет нормально. Данные прописаны в eeprom, можете 90 прописать через оболочку программатора.

SILF 30.03.2015 09:00

Спасибо за ответ!
снял CP.
все вроде норм сегодня проверю.
Просто открываю диссамблером код и пытаюсь найти где прописано деление на 2?
=((

SILF 30.03.2015 20:05

Блин немогу войти в умножение. какне пробую. поскажи порядок нажатия плиз

Admin 30.03.2015 21:44

Кнопка работает? В режим программирования вошли?

SILF 30.03.2015 21:58

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

SILF 30.03.2015 22:00

было б круто если на ногу Gp0 повесить красный светодиод он бы указывал на разряд умножения=)
но я пока тока осваиваю PIC в голове кошмар

SILF 30.03.2015 22:01

Цитата:

Сообщение от Admin (Сообщение 2115)
Кнопка работает? В режим программирования вошли?

вот тут как я понял прописано деление по умолчанию на 2?
0x0004 : 0x00A0 movwf 0x20
0x0005 : 0x0EA0 swapf 0x20 , F
0x0006 : 0x0E03 swapf 0x03 , W

Admin 30.03.2015 22:36

1 разряд отвечает за режим работы, умножение - 2 вспышки.

SILF 30.03.2015 22:41

Цитата:

Сообщение от Admin (Сообщение 2120)
1 разряд отвечает за режим работы, умножение - 2 вспышки.

то есть порядок такой
сбрасываю
потом жму коротко два раза и получаю режим умножения.
потом длительно жму два раза чтоб были десятки и жму 9раз
потом зажимаю на 5 сек чтоб выйти из режим программирования
так?
если не сложно подскажите как по умолчанию сделать коэффициент умножения в коде

Admin 31.03.2015 00:43

Ячейка 0х01 в еепроме 1=делитель, 2=умножение.

SILF 31.03.2015 15:59

Цитата:

Сообщение от Admin (Сообщение 2123)
Ячейка 0х01 в еепроме 1=делитель, 2=умножение.

Присвоено 0х02 я так понимаю первая ячейка это деление и указана константа.
аа ячейка памяти 0х02 где присвоено 0x00 это умножение?
Тоесть в првой ячейке присвоить 0х00 а второй 0хна коэффиц на который хочу умножить сигнал в 16 системе
я правильно понял?

Admin 31.03.2015 16:50

Коэффициент 2 и 3 ячейка. 2=десятки, 3=единицы. Ячейка 0х00 не используется.

SILF 31.03.2015 21:47

Цитата:

Сообщение от Admin (Сообщение 2126)
Коэффициент 2 и 3 ячейка. 2=десятки, 3=единицы. Ячейка 0х00 не используется.

Спасибо. тут я понял--прописываю в шестнадцатиричной системе цифру на которую надо множить\делить сигнал
вот вопрос а где указываем что именно по умолчанию умножение? по умолчаниюв прошивке прописано в первой ячейке 0х02(тоесть это коэффициент? или разряд всетаки--1--делим\2---множим?)
сорри за вопрос

SILF 31.03.2015 22:01

Цитата:

Сообщение от SILF (Сообщение 2127)
Спасибо. тут я понял--прописываю в шестнадцатиричной системе цифру на которую надо множить\делить сигнал
вот вопрос а где указываем что именно по умолчанию умножение? по умолчаниюв прошивке прописано в первой ячейке 0х02(тоесть это коэффициент? или разряд всетаки--1--делим\2---множим?)
сорри за вопрос

что было умножение по умолчанию вот так получается
ORG 0x2101
DATA 0x02(режим умножения)
DATA 0x5A(множим на 90)
DATA 0x01(+1)
получается умножу на 91 коэффициент?:)

Admin 31.03.2015 22:35

90 без нуля. А так правильно.

SILF 31.03.2015 22:41

написал вам в личку посмотрите я правильно понял Вас

SILF 01.04.2015 07:40

Цитата:

Сообщение от Admin (Сообщение 2129)
90 без нуля. А так правильно.

Data 0х02
Data 0х09 или data 5А ?тоесть 9 десяток.
Data 0х00
Получу умножить на 90

SILF 01.04.2015 10:38

Ккак проверить схему вплане на входе и выходе должнобыть какое показание если тестером смотреть?
Без подключения в датчику скорости и мозгу

Admin 01.04.2015 13:20

C 9 правильно. Для проверки нужен генератор сигналов и частотомер.

SILF 01.04.2015 13:27

Цитата:

Сообщение от Admin (Сообщение 2133)
C 9 правильно. Для проверки нужен генератор сигналов и частотомер.

Простите за вопросы.
после внесения данных , светодиод вообще не загорается.
вношу
0х02
0x09
0х00
Поидее умножить на 90. А диод вообще иолчит.
Значение аасцилятора родное оставлят?

Admin 01.04.2015 21:12

Попробуйте проверить работу с другими коэффициентами. 90 Может быть сильно высокий для простой программы.

SILF 01.04.2015 21:24

:((
как выходить из режимаа программирования , когда через кнопкуу делаешь?
Диод долженже просто гореть когда выйдешь

SILF 01.04.2015 21:29

Нигде немогунайти подобные проекты :(((
Вшоке:(((

Admin 02.04.2015 01:39

Выход из режима программирования - отключение питания модуля.

SILF 02.04.2015 08:04

После впрошивки нех, читаю его , а та
0*01
0*00
0*01
и диодгорит
ставлю
0*02
Во второй и третей ячейке любое с 1-9 т не горит диод
расскажу о моей проблеме
при скорости 100 спидом кажет 1-2 км.ч
Кашмар устал исчать решение, надежда была на ваш проект
дпатчик хола в коробке стоит 3 провода , рабочий

Admin 02.04.2015 12:48

Я так понял вы редактируете программу, поэтому ничего не получается. Данные хранятся в области ЕЕПРОМ.

SILF 02.04.2015 16:47

Аадреса еепром правлю.
нашел ккосяк в паайке, вс817 неправильно впаял.
иззанего могло неработать да?
Такого нет поставил вс337, проверю сегодня, отпишусь

SILF 02.04.2015 20:31

прошиваю и в ic-prog и в winpic800
вот что вижу после прошивания в Адрес-Данных EEPROM:(
0000: FF 01 00 01 56 65 72 2E я...Ver.
0008: 31 2E 31 2E 44 65 73 69 1.1.Desi
0010: 67 6E 20 62 79 20 45 6C gn by El
0018: 2E 20 20 20 65 6C 40 6D . el@m
0020: 6F 74 6F 2E 63 6F 6D 2E oto.com.
0028: 75 61 20 20 00 FF FF FF ua .яяя
0030: FF FF FF FF FF FF FF FF яяяяяяяя
0038: FF FF FF FF FF FF FF FF яяяяяяяя
0040: FF FF FF FF FF FF FF FF яяяяяяяя
0048: FF FF FF FF FF FF FF FF яяяяяяяя
0050: FF FF FF FF FF FF FF FF яяяяяяяя
0058: FF FF FF FF FF FF FF FF яяяяяяяя
0060: FF FF FF FF FF FF FF FF яяяяяяяя
0068: FF FF FF FF FF FF FF FF яяяяяяяя
0070: FF FF FF FF FF FF FF FF яяяяяяяя
0078: FF FF FF FF FF FF FF FF яяяяяяяя
хотя менял первые три ячейки вот так прописывал
0000: FF 02 05 09

SILF 02.04.2015 22:19

подскажите почнму так
что я не так делаю то:(

Admin 02.04.2015 22:20

Работает функция сброса - проверяйте кнопку.

SILF 03.04.2015 08:24

Странно то, что прошиваю и тут же жму прочитать и вотакое показывает.
настройки не трогаю ввваши.
программматор дждм.

SILF 03.04.2015 15:18

Зааметил вот что
после прошивки делаю чтение и вижу как написаал сверху
сохраняю нех и открываю в picdissam
В памяти еепром отсутствует нулевая ячейка FF которая равна нолику
куда рыть?
Ккакким по вы шили?

Admin 03.04.2015 17:25

Я пользуюсь PicKit2. Проверьте, правильно ли установлены биты конфигурации.

SILF 03.04.2015 23:17

биты конфига не трогаю все как у вас
залил прошивку после считал чип и сохранил ее
открываю в мплаб и
processor 12F675
#include <P12F675.INC>
__config 0x3144
; _CPD_OFF & _CP_ON & _BODEN_ON & _MCLRE_OFF & _PWRTE_ON & _WDT_OFF
; & _INTRC_OSC_NOCLKOUT
__idlocs 0xFFFF

; EEPROM-Data
Org 0x2100
DE 0xFF, 0x01, 0x00, 0x01, 0x56, 0x65, 0x72, 0x2E
DE 0x31, 0x2E, 0x31, 0x2E, 0x44, 0x65, 0x73, 0x69
DE 0x67, 0x6E, 0x20, 0x62, 0x79, 0x20, 0x45, 0x6C
DE 0x2E, 0x20, 0x20, 0x20, 0x65, 0x6C, 0x40, 0x6D
DE 0x6F, 0x74, 0x6F, 0x2E, 0x63, 0x6F, 0x6D, 0x2E
DE 0x75, 0x61, 0x20, 0x20, 0x00, 0xFF, 0xFF, 0xFF

в вашем Hex нет __idlocs 0xFFFF
да что за фигнято

Admin 04.04.2015 00:13

Не нужен __idlocs в этой программе.
Кнопку проверяли?

SILF 04.04.2015 17:26

кнопка рабочая ведь если заливаю без изменения ваш рех то все работает.моргает в режим программинга входит
может программа косячить при заливании рех в чип?

Admin 04.04.2015 19:14

Теоретически возможно, что программатор не отключает питание, и удерживает пин сброса в низком состоянии. Тогда запустится программа сброса.

SILF 07.04.2015 15:56

Проблема в jdm программааторе походу

при программировании должно быть по даташиту
сначала vpp ,а потом vdddd.
А у меня 5вольт сразу на первую ножку идет.
и когда жму считать,зашить 12 появляется на 4ой.
придется другой программатор паять?

Admin 07.04.2015 17:07

Рекомендую взять пиккит, можно даже купить не оригинал за недорого.

SILF 07.04.2015 20:36

Тоесть последовательность неправильная всетаки, верно?
буду собирать другой проггер.
пикккит попробую

Admin 07.04.2015 20:48

Для запуска программы сброса нужно около 10 секунд, так что можно успеть отключить программатор после записи.

SILF 07.04.2015 21:55

Тоесть залить прошивку и сразу дернуть сам проггерот компа?
Попробую, ток как проверить прошиваа с моими
02
09
01

Admin 08.04.2015 00:50

Что значит как проверить? А верификация не устраивает?

SILF 08.04.2015 10:59

Есть 16ф628 под рукаами, в него не получится?


Текущее время: 02:15. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc. Перевод: zCarot