Регистрация | Последние сообщения | Персональный список | Поиск | Настройка конференции | Личные данные | Правила конференции | Список участников | Top 64 | Статистика раздела | faq | Что нового v.2.3 | Чат
Skunk Forum - Техника, Наука, Общество » Форум разработчиков РЭА »
Делитель

Версия для печати (настроить)

Новая тема | Написать ответ

Подписаться

Автор Тема:   Делитель
Бумер
Junior Member

Сообщений: 17
Откуда: Казань
Регистрация: Октябрь 2003

написано 10 Марта 2004 17:30ИнфоПравкаОтветитьIP

У меня есть тактовый генератор с частотой 4МГц.Его импульсы подаются на одну из ножек ПЛИС.Что мне залить в ПЛИС,чтобы я мог работать с частотой 60Гц, т.е.мне нужен точный метод деления частоты, чтобы как можно ближе к 60Гц.Как это сделать на основе только цифровых устройств? Возможно какой-то метод нецелочисленного деления?
Какой применять счетчик для деления?
Все думал, считал,но все не точно.

misyachniy
Member

Сообщений: 76
Откуда: Kyiv
Регистрация: Февраль 2002

написано 10 Марта 2004 18:56ИнфоПравкаОтветитьIP

Не целочисленный - это когда частота сначала умножается а затем делится.
То есть умножив частоту на 3 и поделив на 2 получите 1,5.
Но так делать не красиво. Ведь умножение в цифре не сделать.
Нужно брать кварц кратный 60.
Можно почитать еще здесь:
ссылка

Весельчак У
Moderator

Сообщений: 4915
Откуда: Санктъ-Питербурхъ
Регистрация: Декабрь 2000

написано 11 Марта 2004 02:37ИнфоПравкаОтветитьIP

Можно сделать по принципу 155ИЕ8 (аналог - 7497). Т.е. берётся счётчик, с его выхода через логику подаются импульсы: каждый 2-й, 4-й, 8-й, и т.д., выбираемые в зависимости от предустановки. Деление можно получить от 64/1 до 64/63 (в данном счётчике, при увеличени разрядности - больше). Минус - выходные импульсы расположены неравномерно. Но последующим многократным делением на целое число можно получить равномерное распределение.
Ещё какой-то делитель был в серии 561 (CD40xx), но с его работой не разбирался, вроде там получается коэффициент деления до 4096.
А можно просто разделить на 66667 традиционным способом, а частоту кварца поднять конденсатором. Да и так частота будет отличаться в пределах погрешности самого кварца.
Ещё можно сделать делитель с переменным коэффициентом деления в разных тактах, а выходную частоту выравнять последующим многократным делением.

P.S. PLL.

dzik
Member

Сообщений: 92
Откуда: Таганрог, РОССИЯ
Регистрация: Январь 2002

написано 11 Марта 2004 09:30ИнфоПравкаОтветитьIP

4000000 Гц/65536 =61 Гц или Вас не устраивает такая точность?

Ку!
Junior Member

Сообщений: 2
Откуда: SPb
Регистрация: Март 2004

написано 11 Марта 2004 13:33ИнфоПравкаОтветитьIP

Почему нецелочисленного? Поделите на 66666 и получите 60,0006 герц. Или на 66667, тогда 59,9997 герц. Очень сомневаюсь, что ваша исходная частота установлена с большей точностью. А счечик в плисе делается просто - LPM_counter - Устанавливаем 17 бит, 17-битовый LPM_constant с нужным коэффициентом деления минус один ему на дату, tcout на инвертированный sload и на D вход триггера DFF. Всем клокам - клоки! Всем оставшимся входам - unuse. Вот и все.

Добавление от 11 Марта 2004 13:36:

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

Бумер
Junior Member

Сообщений: 18
Откуда: Казань
Регистрация: Октябрь 2003

написано 12 Марта 2004 11:27ИнфоПравкаОтветитьIP

.А счечик в плисе делается просто - LPM_counter - Устанавливаем 17 бит, 17-битовый LPM_constant


С LPM еще не работал:немного не понял:у LPM_counter уснановил тольк
параметры width=17 и direction=down- ЭТО правильно? Дальше у LPM_constant
установил width=17 и все, не понял на счет фразы-"с нужным коэффициентом
деления".Как подсоединить LPM_constant к LPM_counter- к входу data-?
Это правильно?
Дальше нашел и sload, и cout у LPM_counter-подсоединил как вы сказали
и к DFF. Откуда снимать частоту?
Нужно еще что-то подсоединить или изменить? Заранее спасибо

Ку!
Junior Member

Сообщений: 5
Откуда: SPb
Регистрация: Март 2004

написано 12 Марта 2004 14:24ИнфоПравкаОтветитьIP

Бумер

У LPM_constant есть параметр - величина константы LPM_CVALUE (см. help на LPM_constant), его и надо устанавливать. Выход LPM_constant соединяется со входом DATA, Вход updown для счета на уменьшение соединить с GND. Частота снимается с выхода DFF в виде импульсов с длительностью входных CLK. Если не устраивает, то уменьшаем коэффициент деления в два раза а выходной триггер переводим в режим деления на 2. Кстати в предыдущем посте я лажанулся - TCOUT и SLOAD надо соединять без инверсии. Поэтому лучше давайте мыло. Брошу пару .GDFок ибо "лучше один раз увидеть..." Тут, правда, народ как-то вставляет схемы, но я этого не умею.

Бумер
Junior Member

Сообщений: 20
Откуда: Казань
Регистрация: Октябрь 2003

написано 12 Марта 2004 17:13ИнфоПравкаОтветитьIP

Поэтому лучше давайте мылоdecelver@yandex.ru
заранее спасибо

Ку!
Junior Member

Сообщений: 9
Откуда: SPb
Регистрация: Март 2004

написано 13 Марта 2004 12:00ИнфоПравкаОтветитьIP

Письмо дошло?

Бумер
Junior Member

Сообщений: 21
Откуда: Казань
Регистрация: Октябрь 2003

написано 13 Марта 2004 12:24ИнфоПравкаОтветитьIP

Письмо дошло?
Да. Спасибо. Все круто.

Ваш ответ:

Коды форума
Смайлики


Ник:    Пароль       
Отключить смайлики

Все время MSK

Склеить | Разбить | Закрыть | Переместить | Удалить

Новая тема | Написать ответ
Последние сообщения         
Перейти к:

Свяжитесь с нами | skunksworks.net

Copyright © skunksworks.net, 2000-2018

Разработка и техническая поддержка: skunksworks.net


Рейтинг@Mail.ru Яндекс.Метрика