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

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

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


Black Fire
Открыл глаза
Сообщения: 70
Зарегистрирован: Вт мар 24, 2009 21:49:09
Откуда: Нижний Новгород

Re:

Сообщение Black Fire »

kotovasiya писал(а):
-=SY=- писал(а):Добрый день.
Можно ли получить от вас прошивку для МЕГИ 8515 и дисплея 1602 (44780) ??
Спасибо

Продублирую,смотрите топ Пн Янв 05, 2009 12:09 pm и скачайте файл ,там хексы на несколько видов процессоров.Назначение ножек в схеме и название портов там одинаковое.

это по поводу прошивки (правда под 1602) ... фьюзы тоже гдето в начале мелькали (сохрернено на работе - не найдете , вечером выложу) , резисторы можно - главное отношение R2R - только нагрузочная способность уменьшится на порядок
Эх! Семён Семёныч! Наберут детей на флот - водки выпить не с кем!
Black Fire
Открыл глаза
Сообщения: 70
Зарегистрирован: Вт мар 24, 2009 21:49:09
Откуда: Нижний Новгород

Re:

Сообщение Black Fire »

два раза отпрвилось )))
Последний раз редактировалось Black Fire Ср мар 30, 2011 08:18:00, всего редактировалось 1 раз.
Эх! Семён Семёныч! Наберут детей на флот - водки выпить не с кем!
Аватара пользователя
atmicandr
Друг Кота
Сообщения: 6166
Зарегистрирован: Вт мар 09, 2010 09:29:27
Откуда: Свердловская область, г. Ирбит

Re: Re:

Сообщение atmicandr »

Black Fire писал(а):
kotovasiya писал(а):
-=SY=- писал(а):Добрый день.
Можно ли получить от вас прошивку для МЕГИ 8515 и дисплея 1602 (44780) ??
Спасибо

Продублирую,смотрите топ Пн Янв 05, 2009 12:09 pm и скачайте файл ,там хексы на несколько видов процессоров.Назначение ножек в схеме и название портов там одинаковое.

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

Если это Вы мне ответ дали, то я Копец как Вам благодарен за помощь. Дисплей 1602 у меня есть и не один, а контроллер 8515 лежит как бельмо и до сегодняшнего дня не знал куда применить. :))
"У принца Лимона всё наоборот: воры и убийцы у него во дворце, а в тюрьме сидят честные граждане" (с) Дж. Родари "Приключения Чипполино"
Аватара пользователя
atmicandr
Друг Кота
Сообщения: 6166
Зарегистрирован: Вт мар 09, 2010 09:29:27
Откуда: Свердловская область, г. Ирбит

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

Сообщение atmicandr »

Black Fire отзовись, уж очень Ваша помощь требуется по моему вопросу о котором я пару постов задавал. Может кинете архивчик либо сюда либо мне на мыло, как Вам будет удобнее. С уважением Корчагин Андрей
"У принца Лимона всё наоборот: воры и убийцы у него во дворце, а в тюрьме сидят честные граждане" (с) Дж. Родари "Приключения Чипполино"
Black Fire
Открыл глаза
Сообщения: 70
Зарегистрирован: Вт мар 24, 2009 21:49:09
Откуда: Нижний Новгород

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

Сообщение Black Fire »

Так я же написал выше ссылку - смотрите пост от - Пн Янв 05, 2009 12:09 там все есть
Эх! Семён Семёныч! Наберут детей на флот - водки выпить не с кем!
Аватара пользователя
zvykov
Встал на лапы
Сообщения: 86
Зарегистрирован: Чт апр 02, 2009 01:18:09
Откуда: Минск
Контактная информация:

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

Сообщение zvykov »

А какое выходное сопротивление у генератора без всяких прибамбасов на выходе?????
Black Fire
Открыл глаза
Сообщения: 70
Зарегистрирован: Вт мар 24, 2009 21:49:09
Откуда: Нижний Новгород

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

Сообщение Black Fire »

зависит от резисторов примененных в цепях R2R и выходного делителя - нагрузочная способность не велика
для работы с унч и тд и тп хватит
Эх! Семён Семёныч! Наберут детей на флот - водки выпить не с кем!
Аватара пользователя
Шалун
Встал на лапы
Сообщения: 111
Зарегистрирован: Ср май 27, 2009 15:43:58
Откуда: Москва

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

Сообщение Шалун »

zvykov писал(а):А какое выходное сопротивление у генератора без всяких прибамбасов на выходе?????


У моего генератора Rвых.=1ком .

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

Rвходом осцила. можно пренебречь оно очень высокое, но можно ёщё вкл
на щупе делитель Х10. для минимального влияния. :)))
Так загянул !
... а пошалим?.
inkHunter
Грызет канифоль
Сообщения: 287
Зарегистрирован: Сб авг 21, 2010 20:44:27
Откуда: Ростов
Контактная информация:

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

Сообщение inkHunter »

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

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

Сообщение kotovasiya »

Victor Gordienko писал(а): случайно не методом аккумулятора фазы ?

Именно им.
inkHunter
Грызет канифоль
Сообщения: 287
Зарегистрирован: Сб авг 21, 2010 20:44:27
Откуда: Ростов
Контактная информация:

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

Сообщение inkHunter »

kotovasiya писал(а):
Victor Gordienko писал(а): случайно не методом аккумулятора фазы ?

Именно им.

Трудно понимаю как он работает .
вот есть массив косинуса
254,254,254,254,253,253,253,252,252,251,250,249,248,248,247,245,244,243,242,240,239....


где 0 гр. это 255, а 180 гр. это 0

дальше делаю вот так :

while (1)
{
PORTD=mcos[t];
t++;
}

пробывал через превывание ставить задержку плохо получаеться, если ставлю t+=2; частото увеличивается у 2 раза, ну не пойму как плавно сделать ?
может на примеры пилы проще будет :

while (1)
{
PORTD=t;
t++;
}

Расскажите пожалуйста ? а то голову сломал (((
Последний раз редактировалось inkHunter Пн июл 18, 2011 23:01:12, всего редактировалось 2 раза.
Аватара пользователя
kotovasiya
Опытный кот
Сообщения: 757
Зарегистрирован: Пт мар 30, 2007 12:11:23

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

Сообщение kotovasiya »

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

unsigned char cos[]={254,254,254,254,253,253,253,252,252,251,250,249,248,248,247,245,244,243,242,240,
239,237,236,234,232,231,229,227,225,223,221,219,217,214,212,210,207,205,202,200,
197,195,192,189,186,184,181,178,175,172,169,166,163,160,157,154,151,148,145,142,
139,136,132,129,126,123,120,117,114,111,107,104,101,98,95,92,89,86,83,80,77,75,72,
69,66,63,61,58,56,53,50,48,46,43,41,39,36,34,32,30,28,26,24,22,21,19,17,16,14,13,12,
10,9,8,7,6,5,4,3,3,2,2,1,1,0,0,0,0,0,0,0,0,1,1,2,2,3,3,4,5,6,7,8,9,10,12,13,14,16,17,19,
21,22,24,26,28,30,32,34,36,39,41,43,46,48,51,53,56,58,61,64,66,69,72,75,78,80,83,86,
89,92,95,98,101,105,108,111,114,117,120,123,126,129,133,136,139,142,145,148,151,
154,157,160,163,166,169,172,175,178,181,184,186,189,192,195,197,200,202,205,207,
210,212,214,217,219,221,223,225,227,229,231,233,234,236,237,239,240,242,243,244,
245,247,248,249,249,250,251,252,252,253,253,253,254,254,254,254};

unsigned long FAZA=2000000; //параметр частоты


int main(void)
{
   unsigned long ACCU=0;   //акумулятор
   
   DDRD=0xFF;
   
   for (;;)
    {
    PORTD = cos[ACCU>>24];//выгружаем из массива в порт по старшему байту аккумулятора
   ACCU=ACCU+FAZA ;
    }
}


В си еще не сильно шарю, но этот код работает. В отладчике посчитайте количество шагов в for.

п.с .Удалите массив в своем предыдущем сообщении,ужасно портит размер странички форума.
inkHunter
Грызет канифоль
Сообщения: 287
Зарегистрирован: Сб авг 21, 2010 20:44:27
Откуда: Ростов
Контактная информация:

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

Сообщение inkHunter »

kotovasiya писал(а):

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

unsigned char cos[]={254,254,254,254,253,253,253,252,252,251,250,249,248,248,247,245,244,243,242,240,
239,237,236,234,232,231,229,227,225,223,221,219,217,214,212,210,207,205,202,200,
197,195,192,189,186,184,181,178,175,172,169,166,163,160,157,154,151,148,145,142,
139,136,132,129,126,123,120,117,114,111,107,104,101,98,95,92,89,86,83,80,77,75,72,
69,66,63,61,58,56,53,50,48,46,43,41,39,36,34,32,30,28,26,24,22,21,19,17,16,14,13,12,
10,9,8,7,6,5,4,3,3,2,2,1,1,0,0,0,0,0,0,0,0,1,1,2,2,3,3,4,5,6,7,8,9,10,12,13,14,16,17,19,
21,22,24,26,28,30,32,34,36,39,41,43,46,48,51,53,56,58,61,64,66,69,72,75,78,80,83,86,
89,92,95,98,101,105,108,111,114,117,120,123,126,129,133,136,139,142,145,148,151,
154,157,160,163,166,169,172,175,178,181,184,186,189,192,195,197,200,202,205,207,
210,212,214,217,219,221,223,225,227,229,231,233,234,236,237,239,240,242,243,244,
245,247,248,249,249,250,251,252,252,253,253,253,254,254,254,254};

unsigned long FAZA=2000000; //параметр частоты


int main(void)
{
   unsigned long ACCU=0;   //акумулятор
   
   DDRD=0xFF;
   
   for (;;)
    {
    PORTD = cos[ACCU>>24];//выгружаем из массива в порт по старшему байту аккумулятора
   ACCU=ACCU+FAZA ;
    }
}


В си еще не сильно шарю, но этот код работает. В отладчике посчитайте количество шагов в for.

п.с .Удалите массив в своем предыдущем сообщении,ужасно портит размер странички форума.

Спасибо Вам большое взатра буду разбираться, вопрос такой почему именно на 24 сдвигаем ? ACCU>>24
Аватара пользователя
kotovasiya
Опытный кот
Сообщения: 757
Зарегистрирован: Пт мар 30, 2007 12:11:23

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

Сообщение kotovasiya »

Victor Gordienko писал(а):
kotovasiya писал(а):

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

unsigned char cos[]={254,254,254,254,253,253,253,252,252,251,250,249,248,248,247,245,244,243,242,240,
239,237,236,234,232,231,229,227,225,223,221,219,217,214,212,210,207,205,202,200,
197,195,192,189,186,184,181,178,175,172,169,166,163,160,157,154,151,148,145,142,
139,136,132,129,126,123,120,117,114,111,107,104,101,98,95,92,89,86,83,80,77,75,72,
69,66,63,61,58,56,53,50,48,46,43,41,39,36,34,32,30,28,26,24,22,21,19,17,16,14,13,12,
10,9,8,7,6,5,4,3,3,2,2,1,1,0,0,0,0,0,0,0,0,1,1,2,2,3,3,4,5,6,7,8,9,10,12,13,14,16,17,19,
21,22,24,26,28,30,32,34,36,39,41,43,46,48,51,53,56,58,61,64,66,69,72,75,78,80,83,86,
89,92,95,98,101,105,108,111,114,117,120,123,126,129,133,136,139,142,145,148,151,
154,157,160,163,166,169,172,175,178,181,184,186,189,192,195,197,200,202,205,207,
210,212,214,217,219,221,223,225,227,229,231,233,234,236,237,239,240,242,243,244,
245,247,248,249,249,250,251,252,252,253,253,253,254,254,254,254};

unsigned long FAZA=2000000; //параметр частоты


int main(void)
{
   unsigned long ACCU=0;   //акумулятор
   
   DDRD=0xFF;
   
   for (;;)
    {
    PORTD = cos[ACCU>>24];//выгружаем из массива в порт по старшему байту аккумулятора
   ACCU=ACCU+FAZA ;
    }
}


В си еще не сильно шарю, но этот код работает. В отладчике посчитайте количество шагов в for.

п.с .Удалите массив в своем предыдущем сообщении,ужасно портит размер странички форума.

Спасибо Вам большое взатра буду разбираться, вопрос такой почему именно на 24 сдвигаем ? ACCU>>24

Потому что вызывать из массива нужно 8битным числом(0-255) , из ACCU(32бита) нам нужен самый старший байт им можно задавать более низкие частоты до 0,01гц
-AnB-
Родился
Сообщения: 8
Зарегистрирован: Вс мар 27, 2011 02:01:34

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

Сообщение -AnB- »

Хочу выразить большую человеческую благодарность доброму и терпеливому kotovasiyе за проект.

Собрал за один вечер, заработал сразу. Очень полезная в моем арсенале весчъ!
Oт только маленький вопросик - при выборе формы сигнала, у меня так: ... TirR, TirF, SqaR, S1/2, S2/3, тут все понятно, а после на индикаторе EEPR, на осциллографе соответственно тишина, что это за режим, кто знает?

ATmega8535, кварц 16 мГц, прошивка из архива dds_1602_chk_Noblako.rar
-AnB-
Родился
Сообщения: 8
Зарегистрирован: Вс мар 27, 2011 02:01:34

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

Сообщение -AnB- »

Сорри, был невнимателен. Разобрался, это загрузка формы из памяти. EEPROM у меня прошит, но по нулевому адресу FF... Так должно быть?
-AnB-
Родился
Сообщения: 8
Зарегистрирован: Вс мар 27, 2011 02:01:34

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

Сообщение -AnB- »

Никто не пробовал создавать свою форму сигнала для EEPROM?
Аватара пользователя
Шалун
Встал на лапы
Сообщения: 111
Зарегистрирован: Ср май 27, 2009 15:43:58
Откуда: Москва

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

Сообщение Шалун »

Заметил я у своего DDS генератора,
что изредко происходит какойто выброс в виде очень короткого импульса.
Решил поиследовать.
Вроде всё чисто.

Изображение


Вкл. режим послесвечения. И наблюдаю.
Через 5 мин.

Изображение

Через 20 мин

Изображение

Еще минут через 40-60 происходит полное заполнение выбросами
с каждого из 256 переходов 8ми разрядного ЦАП.

Уважаемый kotovasiya!
Можно как нибудь это побороть?
При исследование УНЧ и настройки фильтров зто не важно,
а если использовать DDS в качестве генератора импульсов
для цифровых устройств, то происходит ложное срабатывание
от этого короткого импульса.
Так загянул !
... а пошалим?.
Аватара пользователя
kotovasiya
Опытный кот
Сообщения: 757
Зарегистрирован: Пт мар 30, 2007 12:11:23

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

Сообщение kotovasiya »

Шалун писал(а):Заметил я у своего DDS генератора,
что изредко происходит какойто выброс в виде очень короткого импульса.
Решил поиследовать.
Вроде всё чисто.

Изображение


Вкл. режим послесвечения. И наблюдаю.
Через 5 мин.

Изображение

Через 20 мин

Изображение

Еще минут через 40-60 происходит полное заполнение выбросами
с каждого из 256 переходов 8ми разрядного ЦАП.

Уважаемый kotovasiya!
Можно как нибудь это побороть?
При исследование УНЧ и настройки фильтров зто не важно,
а если использовать DDS в качестве генератора импульсов
для цифровых устройств, то происходит ложное срабатывание
от этого короткого импульса.

Это прерывание опроса кнопок,избавиться можно,но для этого нужно изменить схему и поставить другой контроллер
Аватара пользователя
Шалун
Встал на лапы
Сообщения: 111
Зарегистрирован: Ср май 27, 2009 15:43:58
Откуда: Москва

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

Сообщение Шалун »

Жаль.
Из-за иголок ограничивает применение в качестве генератора импульсов. :cry:

Изображение

30мин накопления.
Изображение

Изображение

:(
Так загянул !
... а пошалим?.
Ответить

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