DDS генератор на AVR

Вопросы и замечания по статьям и схемам, представленным на нашем сайте

При поддержке РадиоКОТструктор.ру


Аватара пользователя
kotovasiya
Опытный кот
Сообщения: 757
Зарегистрирован: Пт мар 30, 2007 12:11:23

Re: DDS генератор на AVR

Сообщение kotovasiya »

Гуня писал(а):kotovasiya! подскажите пожалуйста, как реализуется алгоритм подсчета частоты в вашем приборе?? Я заглядывал в исходный алгоритм но почти ничего не понял... просто я пишу на СИ. У меня есть переменная со значением частоты (от 2-х до 2000 Гц), хочу написать функцию, которая берет значение частоты с этой переменной и настраивает таймеры так чтоб частота на выходе ЦАП соответствовала частоте в переменной! вот! :oops:
Зарание спасибо!

Этот алгоритм не использует таймера,микроконтроллер полностью загружен выводом масива в порт.
Для этого нужно два 24битных регистра с 24 по 26 (faze) и 28 по 30(accu), в 30 и 31(Z регистр) вставляется адрес с адресом массива 256 точек графика,это синус будет или меандр . Теперь ,как получить частоту ,нужно прибавлять два регистра (accu) и (faze) .(accu) накапливая результат вызывает из массива точку синуса. Соответственно чем больше результат (faze) тем больше происходит перескок по масиву этим повышая частоту на выходе
RA0CHE
Родился
Сообщения: 7
Зарегистрирован: Вт апр 21, 2009 10:02:22

Re: DDS генератор на AVR

Сообщение RA0CHE »

kotovasiya! подскажите пожалуйста
Давненько Я подымал вопрос про, двухтональный генератор на основе Вашего ддс генератора,Вы говорили что это возможно реализовать, но при заниженной максимальной частоты.
А так как Ваш генератор работает в основном на низких частотах, то это нетак страшно, и надо генерить звуковую частоту.
А если добавить в программу типа меню назвав ее TTF (two ton freq) и генерить на выходе две частоты смещенные друг от друга на 1кгц.
Получится прибор для радиолюбителей 2 в одном.
С уважением Валентин
Rail
Родился
Сообщения: 2
Зарегистрирован: Пт июн 25, 2010 08:48:40

Re:

Сообщение Rail »

Печатную плату в зеркальном отражении распечатывать или так как есть?
serg84
Родился
Сообщения: 2
Зарегистрирован: Пт авг 27, 2010 10:42:37

Re: DDS генератор на AVR

Сообщение serg84 »

Уважаемый Kotovasiya. Собрал Ваш генератор, индикаторы отказывались работать при частотах кварца более 14 МГц. Потом, после коррекции задержки 5 тестируемых индикаторов нормально заработали (WH1602). Задержку увеличил примерно на 30 процентов. Спасибо за Вашу разработку. У меня такой вопрос. Насколько я понял генерация синусоиды идет по табличным значениям. Т.е. каждой временной дискрете соответствует свой байт. Минимальная дискрета 0,25 мкс (при частоте кварца 16 МГц). Тогда при выходной частоте 10 кГц для формирования одного периода используется 400 дискрет по 0,25 мкс, а следующая частота, которую можно получить будет 9975 Гц (401 дискрета) и 10025 Гц (399 дискрет). Каким образом Вы получаете 9999 и 10001 Гц. Или на самом деле частота несколько отличается от реальной? Заранее спасибо.
Аватара пользователя
kotovasiya
Опытный кот
Сообщения: 757
Зарегистрирован: Пт мар 30, 2007 12:11:23

Re: DDS генератор на AVR

Сообщение kotovasiya »

serg84 писал(а):Уважаемый Kotovasiya. Собрал Ваш генератор, индикаторы отказывались работать при частотах кварца более 14 МГц. Потом, после коррекции задержки 5 тестируемых индикаторов нормально заработали (WH1602). Задержку увеличил примерно на 30 процентов. Спасибо за Вашу разработку. У меня такой вопрос. Насколько я понял генерация синусоиды идет по табличным значениям. Т.е. каждой временной дискрете соответствует свой байт. Минимальная дискрета 0,25 мкс (при частоте кварца 16 МГц). Тогда при выходной частоте 10 кГц для формирования одного периода используется 400 дискрет по 0,25 мкс, а следующая частота, которую можно получить будет 9975 Гц (401 дискрета) и 10025 Гц (399 дискрет). Каким образом Вы получаете 9999 и 10001 Гц. Или на самом деле частота несколько отличается от реальной? Заранее спасибо.

Точность можно получить и до 0,1гц+-10% . В периоде 256 байт уровня. Теперь представьте регистр 24 байта по 8 старшим байтам из него будем адресовать и вызывать значение с таблицы . К этому регистру будем прибавлять значения второго регистра ,это значение может быть 1 а может быть и 65535 .( (Вот 16000000/8 циклов алгоритма)/256 выборок периода)/65534 число остальных 16 бит первого регистра которые нужно приплюсовать вторым регистром чтоб переключить старшие 8 бит на один) = 0,1192 Гц. Может где ошибся ,но суть я вам объяснил.
serg84
Родился
Сообщения: 2
Зарегистрирован: Пт авг 27, 2010 10:42:37

Re: DDS генератор на AVR

Сообщение serg84 »

Теперь все понятно. Еще раз спасибо.
Аватара пользователя
MHZ
Грызет канифоль
Сообщения: 270
Зарегистрирован: Сб июн 20, 2009 13:31:31

Re: DDS генератор на AVR

Сообщение MHZ »

Собираю ваш генератор, хотел бы узнать какие манипуляции по настройке мне предстоят? Дисплей WH1602, какая прошивка самая последняя?

Что значит :

Прошивать нужно и еепром, для этого нужно в хекс еепром вставить 256 позиций формы, начиная с адреса 0Х100 уже вставлены фиксированые стандартные частоты.
Создать электронный мир проще,чем его понять.
Аватара пользователя
kotovasiya
Опытный кот
Сообщения: 757
Зарегистрирован: Пт мар 30, 2007 12:11:23

Re: DDS генератор на AVR

Сообщение kotovasiya »

MHZ писал(а):Собираю ваш генератор, хотел бы узнать какие манипуляции по настройке мне предстоят? Дисплей WH1602, какая прошивка самая последняя?

Что значит :

Прошивать нужно и еепром, для этого нужно в хекс еепром вставить 256 позиций формы, начиная с адреса 0Х100 уже вставлены фиксированые стандартные частоты.

В еепром первые 256 позиций можно прошить форму сигнала которая вам нужна ,а в остальные вставляются фиксированные настройки. Можете не прошивать еепром ,просто не будет фиксированных настроек.
Прошивка и печатка самая проверенная от Noblako
Вложения
dds_1602_chk_Noblako.rar
(48.12 КБ) 685 скачиваний
Аватара пользователя
MHZ
Грызет канифоль
Сообщения: 270
Зарегистрирован: Сб июн 20, 2009 13:31:31

Re: DDS генератор на AVR

Сообщение MHZ »

Спасибо большое. И ещё вопросик - там схема под дип контроллер 40 ног, можно ли применять смд 44 ноги? будет ли при этом смещение функциональных выводов контроллера?
Создать электронный мир проще,чем его понять.
Аватара пользователя
kotovasiya
Опытный кот
Сообщения: 757
Зарегистрирован: Пт мар 30, 2007 12:11:23

Re: DDS генератор на AVR

Сообщение kotovasiya »

MHZ писал(а):Спасибо большое. И ещё вопросик - там схема под дип контроллер 40 ног, можно ли применять смд 44 ноги? будет ли при этом смещение функциональных выводов контроллера?


Нет не будет,делайте по названием портов и все будет ок
Аватара пользователя
artemvinihenko
Открыл глаза
Сообщения: 78
Зарегистрирован: Пт апр 30, 2010 16:09:16
Откуда: Мариуполь (украина)
Контактная информация:

Re: DDS генератор на AVR

Сообщение artemvinihenko »

Всем привет :) Решил собрать этот генератор на меге8535 и двухстрочном дисплее HD......, но пред тем как собирать протестил в протеусе прошивку и схему dds_1602_chk_Noblako.rar
возникло несколько проблем:
1.запускается только после двух сбросов
2 на кнопки никак не реагирует :(
постоянно генерит 1000 гц и на дисплее надпись 1000 Hz Sine
Подскажите что я нетак делаю? Или это протеус тупит?
И ещё вопросик: чем генератор на меге8 или тойже меге16 отличается от меги8535 (прост мега8 дешевле в 4 раза)?от этого зависит качество выходного сигнала?
ниже прилагаю файл проэкта...
Вложения
генератор АТМЕГА8535 в протеусе.rar
файлы проэкта и используемая прошивка со схемой
(84.52 КБ) 416 скачиваний
Аватара пользователя
kotovasiya
Опытный кот
Сообщения: 757
Зарегистрирован: Пт мар 30, 2007 12:11:23

Re: DDS генератор на AVR

Сообщение kotovasiya »

artemvinihenko писал(а):Всем привет :) Решил собрать этот генератор на меге8535 и двухстрочном дисплее HD......, но пред тем как собирать протестил в протеусе прошивку и схему dds_1602_chk_Noblako.rar
возникло несколько проблем:
1.запускается только после двух сбросов
2 на кнопки никак не реагирует :(
постоянно генерит 1000 гц и на дисплее надпись 1000 Hz Sine
Подскажите что я нетак делаю? Или это протеус тупит?
И ещё вопросик: чем генератор на меге8 или тойже меге16 отличается от меги8535 (прост мега8 дешевле в 4 раза)?от этого зависит качество выходного сигнала?
ниже прилагаю файл проэкта...

Протеус виснет только от того что уже подключен R2R. Проекты на мегах одинаковые кроме мега8, нет фиксированых частот и памяти на частоту,качество сигнала в проектах одинаковое
Аватара пользователя
artemvinihenko
Открыл глаза
Сообщения: 78
Зарегистрирован: Пт апр 30, 2010 16:09:16
Откуда: Мариуполь (украина)
Контактная информация:

Re: DDS генератор на AVR

Сообщение artemvinihenko »

Спасибо :)) теперь на кнопки реагирует :)
теперь буду испытывать на железе :)
sh2cer
Родился
Сообщения: 5
Зарегистрирован: Пн сен 27, 2010 06:05:29

Re: DDS генератор на AVR

Сообщение sh2cer »

kotovasiya писал(а):
MHZ писал(а):Собираю ваш генератор, хотел бы узнать какие манипуляции по настройке мне предстоят? Дисплей WH1602, какая прошивка самая последняя?

Что значит :

Прошивать нужно и еепром, для этого нужно в хекс еепром вставить 256 позиций формы, начиная с адреса 0Х100 уже вставлены фиксированые стандартные частоты.

В еепром первые 256 позиций можно прошить форму сигнала которая вам нужна ,а в остальные вставляются фиксированные настройки. Можете не прошивать еепром ,просто не будет фиксированных настроек.
Прошивка и печатка самая проверенная от Noblako

Где то выше в сообщениях Noblako посыпал голову пеплом , что 30 пин должен быть соеденен с питанием , а в этом архиве на печатке 30 пин соеденен с землёй .
Нужно либо исправить в архиве , либо отметить что есть такая ошибка , чтобы не натыкались на нее так же как и я .
Спасибо за проделанную работу .
Аватара пользователя
kotovasiya
Опытный кот
Сообщения: 757
Зарегистрирован: Пт мар 30, 2007 12:11:23

Re: DDS генератор на AVR

Сообщение kotovasiya »

Проверьте по печатке AVCC должен идти на 5в. Если висит в воздухе то подключить
Аватара пользователя
MHZ
Грызет канифоль
Сообщения: 270
Зарегистрирован: Сб июн 20, 2009 13:31:31

Re: DDS генератор на AVR

Сообщение MHZ »

Начну по порядку

Начертил печатку ,прошил, запаял включил - не работает

Общий вид устройства

Изображение

Изображение

Изображение

Всегда люблю делать грандиозные печатные платы по всем правилам :))

Собственно раскажу как програмировал планарный МК (технология известна многим,но вдруг кто не знает полезна будет)

Берём распиновщик (кому нужно могу дать печатке в формате ARES PCB Layout) лудить надо очень тонко! Без бугров и волн (например сплавом розе в кипетке растирая ватным тампоном по поверхности платы) иначе контакт будет не ко всем ножкам.

Изображение

Прикладываем МК к распиновщику и совмещаем ножки.

Изображение

Затем нужно прижать МК бельевой прищепкой

Изображение

Подключаем к програматору и програмируем.

Изображение

Затем таким же способом (прещепочным :)) ) крепим МК к плате прибора включаемся тестим если всё алес гуд тогда припаеваем и радуемся, если не работат тогда снова перепрошиваем, корректируем и так пока у вас не заработает, или пока(как у меня) МК с ума не сойдёт или залочится или сгорит....короче я сам не знаю что с моим :)) от злости понатыкал понажимал.... :))

Изображение

Вот собственно всё..... теперь после этой прелюдии у меня к вам вопросы:

1. Там где я красным начиркал к плюсу питания нодо подвести???
2. Контакты дисплея d0 d1 d2 d3 обязательно корпусить???
3. Контакты МК PB0 PB1 PB2 PB3 обязательно корпусить???
4. Ёмкость ресетного капа С5 100нФ ???
5. Заче нужет SA1??? Для сброса МК????

Ну это по схеме были вопросы.

Изображение


Теперь вопросы по программированию:

Программирую CodeVisionAVR

Выбираю из списка контроллер

Изображение

Программирую прошивкой

Изображение

Выставляю фьюзы (кстати что за фьюз внизу???)

Изображение

Программирую фьюзы

Изображение

Затем вставляю МК в плату включаю и радуюсь. Так надо сделать? В прошлы раз сам натыкал не так и сдох мой МК.

Вот собственно всё....помогите мне..очень нужен генератор..просто позарез. Зарание спасибо.
Последний раз редактировалось MHZ Пт окт 01, 2010 16:27:47, всего редактировалось 1 раз.
Создать электронный мир проще,чем его понять.
Аватара пользователя
kotovasiya
Опытный кот
Сообщения: 757
Зарегистрирован: Пт мар 30, 2007 12:11:23

Re: DDS генератор на AVR

Сообщение kotovasiya »

Уфф скоко букафф и рисункаф :) .

Так и есть ,красную линию на плюс.

Так, начнем по порядку,после прошивки контроллер еще прошивается? Если да, то генератор уже должен выдавать синус по умолчанию 1000гц , независимо от того подключен ли дисплей.
Аватара пользователя
MHZ
Грызет канифоль
Сообщения: 270
Зарегистрирован: Сб июн 20, 2009 13:31:31

Re: DDS генератор на AVR

Сообщение MHZ »

Я беру прошиваю НОВЫЙ МК сначала шью FLASH данные, затем выставляю фьюзы и их прошиваю. Меня уверили что пользоваться кнопкой PROGRAM ALL нельзя ибо если нет епром она прошивает пустышку и это плохо.
Создать электронный мир проще,чем его понять.
Аватара пользователя
kotovasiya
Опытный кот
Сообщения: 757
Зарегистрирован: Пт мар 30, 2007 12:11:23

Re: DDS генератор на AVR

Сообщение kotovasiya »

MHZ писал(а):Я беру прошиваю НОВЫЙ МК сначала шью FLASH данные, затем выставляю фьюзы и их прошиваю. Меня уверили что пользоваться кнопкой PROGRAM ALL нельзя ибо если нет епром она прошивает пустышку и это плохо.

Это понятно,вот вы зашили флешь, дисплей не показывает но частота после включения идет?
Аватара пользователя
MHZ
Грызет канифоль
Сообщения: 270
Зарегистрирован: Сб июн 20, 2009 13:31:31

Re: DDS генератор на AVR

Сообщение MHZ »

эээ :oops: после того как я спалил МК (или чёт там с ним плохое сделал сам не знаю) я решил с вами посоветоваться. Вот вопросы по плате меня интересуют потому что я где красным на плюс не бросал и на землю d0 d1 d2 d3 PB0 PB1 PB2 PB3 не бросали ёмкость ресетного капа С5 100нФ поставил и ёщё капы кварца на 22пФ поставил.
Создать электронный мир проще,чем его понять.
Ответить

Вернуться в «Статьи»