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

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

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


Аватара пользователя
saschai
Говорящий с текстолитом
Сообщения: 1596
Зарегистрирован: Вс дек 14, 2008 20:36:47
Откуда: SPb

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

Сообщение saschai »

Смотрел на него, но на девайс от kotovasiya, еще два года назад платка разведена, и деталюшки лежат, на стенде я прошивку проверил. У девайса по ссылке, насколько я понял, сурьезная проблема с потерей памяти, кроме того опять двуполярное питание, аналоговой части.
Ладно вопрос снял, буду мутить самостоятельно, мне выходная амплитуда вольт до 14 надо.
Аватара пользователя
BigallS
Опытный кот
Сообщения: 752
Зарегистрирован: Пт апр 15, 2011 21:11:22
Откуда: Россия

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

Сообщение BigallS »

saschai писал(а):Смотрел на него, но на девайс от kotovasiya, еще два года назад платка разведена, и деталюшки лежат, на стенде я прошивку проверил. У девайса по ссылке, насколько я понял, сурьезная проблема с потерей памяти, кроме того опять двуполярное питание, аналоговой части.
Ладно вопрос снял, буду мутить самостоятельно, мне выходная амплитуда вольт до 14 надо.


А какая там может быть проблема с памятью? Не понял.
Аватара пользователя
saschai
Говорящий с текстолитом
Сообщения: 1596
Зарегистрирован: Вс дек 14, 2008 20:36:47
Откуда: SPb

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

Сообщение saschai »

Я спаял и пользуюсь. Честно говоря по ходу возникли несколько проблем:
1) недостаток - невозможна перестройка частоты при включенном генераторе. Т.е. если нужно менять частоту, то сначала выключаем генерацию сигнала, потом перестраиваем частоту, потом снова включаем генерацию сигнала. Это зачастую неудобно, когда нужно следить за реакцией налаживаемого устройства на плавное изменение частоты. Например для управления оборотами шаговика перестраивать частоту нужно только плавно.

2) недостаток - дважды слетал EEPROM. Автор предусмотрел запоминание установленных режимов в EEPROM, но это совсем не обязательно. Уж лучше бы ничего не запоминал и не использовал его совсем. Или в крайнем случае при повреждении EEPROM грузил установки "по умолчанию" из FLASH. Зато был бы надежнее.

В целом в остальном работой я доволен. Просьба к тем, кто смыслит в написании программ для AVR исправить эти два недостатка.


Разрушение данных в EEPROM приводит к полной неработоспособности генератора. Очень неприятная проблема в самый неподходящий момент. Я обычно внутри корпуса генератора держу запасной запрограммированый контроллер. Но это же не выход из положения. Почему не предусмотреть сохранение только текущих данных, которые не повлияют в целом на работоспособность, если будет разрушение EEPROM? При потере данных из Flash грузим установки по умолчанию. Все остальное, что касается работоспособности программы хранится во Flash.
Так надежнее будет работать.

Сам не собирал, но и голословно утверждать не берусь, потом еще раз повторю, на этот генератор у меня все есть, а на приведенный по ссылке кроме дисплея ничего нет. Хочу доделать девайс от kotovasiya функционально, цифровая часть, выполнена по тому же принципу, а вот 8535 у меня после Хаммера в любом варианте по три штуки, надо же их куда то применить.
2 BigallS Если Вы подробно и обоснованно объясните, чем вариант по ссылке лучше варианта kotovasiya, с удовольствием воспользуюсь Вашей рекомендацией, я говорю только про цифровую часть, тот усилитель что в статье по ссылке, мне не подходит, а здесь его вообще нет, так, что аналоговую часть опускаем.
Аватара пользователя
BigallS
Опытный кот
Сообщения: 752
Зарегистрирован: Пт апр 15, 2011 21:11:22
Откуда: Россия

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

Сообщение BigallS »

saschai писал(а):
....
...
Сам не собирал, но и голословно утверждать не берусь, потом еще раз повторю, на этот генератор у меня все есть, а на приведенный по ссылке кроме дисплея ничего нет. Хочу доделать девайс от kotovasiya функционально, цифровая часть, выполнена по тому же принципу, а вот 8535 у меня после Хаммера в любом варианте по три штуки, надо же их куда то применить.
2 BigallS Если Вы подробно и обоснованно объясните, чем вариант по ссылке лучше варианта kotovasiya, с удовольствием воспользуюсь Вашей рекомендацией, я говорю только про цифровую часть, тот усилитель что в статье по ссылке, мне не подходит, а здесь его вообще нет, так, что аналоговую часть опускаем.


А что я должен объяснять? Я что говорил, что по ссылке вариант лучше? Я просто дал ссылку варианта у которого доделана аналоговая часть выхода, как понял она вам не подходит, не используйте.
Аватара пользователя
saschai
Говорящий с текстолитом
Сообщения: 1596
Зарегистрирован: Вс дек 14, 2008 20:36:47
Откуда: SPb

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

Сообщение saschai »

Ну и на том спасибо! :)
Аватара пользователя
Леонид Иванович
Друг Кота
Сообщения: 4779
Зарегистрирован: Сб апр 02, 2011 12:40:46
Откуда: Минск
Контактная информация:

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

Сообщение Леонид Иванович »

У меня генератор вот такой:
Вложения
sg-420m.zip
(803.3 КБ) 1499 скачиваний
Аватара пользователя
BigallS
Опытный кот
Сообщения: 752
Зарегистрирован: Пт апр 15, 2011 21:11:22
Откуда: Россия

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

Сообщение BigallS »

Леонид Иванович писал(а):У меня генератор вот такой:


Посмотрел, класс!!!! Красиво сделано, а на печатной плате (рис. sg-420m_pcb.jpg) одной микросхемы нет, интересно почему?
Написали бы статью по генератору.

P.S. Извиняюсь сразу не глянул описание есть SG-420N.pdf
Аватара пользователя
saschai
Говорящий с текстолитом
Сообщения: 1596
Зарегистрирован: Вс дек 14, 2008 20:36:47
Откуда: SPb

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

Сообщение saschai »

Леонид Иванович Благодарю!
Всегда нравились Ваши работы. Проработка, дизайн, аккуратность. Все очень толково, насколько я понял, даже питание аналоговой от цифровой части отделено.
С удовольствием бы повторил разработку 1в1. К сожалению МЭЛТ сейчас, у нас фиг найдешь и самое главное, частенько надо посмотреть форму сигнала, на выходе изучаемого устройства, когда на него подаешь меандр, в принципе из за него и решил собрать генератор, раньше обходился софтовым, но какой из него прямоугольник и пила лезут, жутики :)). Можно на меандр собрать отдельную платку на логических элементах, но это же не наш метод :)). Есть еще один момент, у меня на устройство лежит 10Ватный "правильный торик", к сожалению там только одна обмотка на 14в ХХ , городить всякие удвоители, разветвители умножители, не хочу, по религиозным соображениям :)) . В итоге вчера расписал свою схему выхлопа, не такая изящная как у Вас, однако работает. Возможно взялся бы и за цифровую часть, собственного производства, на семисегментниках, с измерителем амплитуды выходного сигнала, но просто, банально нет времени этим заниматься, хочется по быстрому, выкроил день, сел развел протравил спаял, настроил, закрепил все аккуратно на кусочке фанеры и в подобающую коробочку :)) Всегда завидовал людям, которые, могут в красивых корпусах разместить свои устройства на столе или на полках, единственное куда я могу убрать свою поделку, это в ящичек. :)) и достать при необходимости, просто нет места в квартире.
Аватара пользователя
Леонид Иванович
Друг Кота
Сообщения: 4779
Зарегистрирован: Сб апр 02, 2011 12:40:46
Откуда: Минск
Контактная информация:

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

Сообщение Леонид Иванович »

Если нужны прямоугольники, то такой вариант тоже есть (см. присоединенный файл). Что касается МЭЛТ, то несложно сделать его эмулятор на микроконтроллере + LEDs или 1601.
Вложения
pg-760.zip
(949.69 КБ) 827 скачиваний
Аватара пользователя
saschai
Говорящий с текстолитом
Сообщения: 1596
Зарегистрирован: Вс дек 14, 2008 20:36:47
Откуда: SPb

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

Сообщение saschai »

"Вот, ложку дай, гов-а дай...." :)))
А нет ли :)) , варианта, синусоиды и прямоугольных импульсов в одном устройстве?
Что касается МЭЛТ, то несложно сделать его эмулятор на микроконтроллере + LEDs или 1601.

Те поставить еще один МК?
Аватара пользователя
Леонид Иванович
Друг Кота
Сообщения: 4779
Зарегистрирован: Сб апр 02, 2011 12:40:46
Откуда: Минск
Контактная информация:

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

Сообщение Леонид Иванович »

saschai писал(а):А нет ли :)) , варианта, синусоиды и прямоугольных импульсов в одном устройстве?


Такие генераторы имеют очень разные требования к тракту сигнала. В простейшем варианте гораздо удобнее разделить генераторы. Если же речь идет об AWG, то подобный генератор обсуждается здесь: http://kazus.ru/forums/showpost.php?p=4 ... tcount=387. Но я там высказывал мнение, что такой генератор радиолюбителю не нужен: http://kazus.ru/forums/showpost.php?p=4 ... tcount=372.

Те поставить еще один МК?


Да. Который будет делать динамическую индикацию. Можно сделать и по-другому: организовать статическую индикацию на регистрах 74HC595. Но это потребует переделки программы. Или вообще перейти на ЖКИ 1601 или 1602. Это потребует еще большей переделки программы и перехода на контроллер с большей памятью. Мне нет смысла этим заниматься, так как генератор у меня давно готов и успешно работает. Тем более, есть более совершенные модели. Если есть желание переделать, исходники могу предоставить. Только они на ASM и код очень плотный.
Аватара пользователя
saschai
Говорящий с текстолитом
Сообщения: 1596
Зарегистрирован: Вс дек 14, 2008 20:36:47
Откуда: SPb

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

Сообщение saschai »

Благодарю!
Возможно, действительно проще разделить, сигналы, с другой стороны софтовый синус, меня устраивает, те стоит заморочиться на генератор прямоугольного сигнала. Кстати, на всякий случай нельзя ли перекомпилировать прошивку на ATtiny2313
Аватара пользователя
Леонид Иванович
Друг Кота
Сообщения: 4779
Зарегистрирован: Сб апр 02, 2011 12:40:46
Откуда: Минск
Контактная информация:

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

Сообщение Леонид Иванович »

По идее, на tiny будет работать без перекомпиляции. Только фузы выставить на внешний кварц без деления.
Аватара пользователя
saschai
Говорящий с текстолитом
Сообщения: 1596
Зарегистрирован: Вс дек 14, 2008 20:36:47
Откуда: SPb

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

Сообщение saschai »

Леонид Иванович К великому сожалению, таких индикаторов даже у производителя нет в наличии :cry:
http://www.melt.com.ru/shop/mt-10t7-7t.html, но я так понял с этим, они взаимозаменяемы http://www.melt.com.ru/shop/mt-10t8-3tla.html?
Очень не хочется, опять с нуля,делать, что то свое, по непрофильной теме :))
Еще вопросик в описании на синусоидальный вариант речь идет о 2313, в первой ее ипостаси, схема на мегу8, а прошивка? или просто опечатка в описании? К сожалению не видно низа печатки, но я так понял деление цифровой и аналоговой земли идет по середине ЦАПы, а нижний слой сплошной земляной полигон? Судя по фото печати, отверстия без металлизации, как Вам, так четко удается отпаяться по внешнему слою, судя по приподнятым элементам, пропаиваются два слоя, но это же титаническая работа, не проще ли делать на проходной волосок, под слегка больший диаметр отверстия? Или все таки есть какой то секрет, типа пистона, которые сейчас днем с огнем и то не найдешь? Очень хочется посмотреть на платку в гифе или жопеге, или ПДФ, не обязательно под ЛУТ, если буду делать, все равно аналоговая часть под SO8, другие ОУ и Мелф резисторы, те то, чего у меня есть в наличии.
Еще хотелось бы задавать смещение сигнала в пределах 3в.
Заранее благодарю!
С уважением, Александр.
ЗЫ, что бы не засорять чужую тему, наверное проще в личку.
Аватара пользователя
Леонид Иванович
Друг Кота
Сообщения: 4779
Зарегистрирован: Сб апр 02, 2011 12:40:46
Откуда: Минск
Контактная информация:

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

Сообщение Леонид Иванович »

saschai писал(а):К великому сожалению, таких индикаторов даже у производителя нет в наличии :cry:
http://www.melt.com.ru/shop/mt-10t7-7t.html, но я так понял с этим, они взаимозаменяемы http://www.melt.com.ru/shop/mt-10t8-3tla.html?


Да. Они отличаются только наличием подсветки.

saschai писал(а):в описании на синусоидальный вариант речь идет о 2313, в первой ее ипостаси, схема на мегу8, а прошивка? или просто опечатка в описании?


Это разные генераторы. SG-420 сделан на 2313 и 10-разрядном ЦАП, SG-420M - на m8 и 16-разрядном ЦАП. Для SG-420M нет никакого описания, вот я и вложил в архив описание на SG-420, который по меню не отличается. Прошивка для m8.

saschai писал(а):К сожалению не видно низа печатки


Там же есть PLT-файл. Для просмотра и печати файла нужна программа PLT_Print.exe (http://www.platnaya.ru/programs_plt.shtml?from=3050).

saschai писал(а):Судя по фото печати, отверстия без металлизации, как Вам, так четко удается отпаяться по внешнему слою, судя по приподнятым элементам, пропаиваются два слоя, но это же титаническая работа, не проще ли делать на проходной волосок, под слегка больший диаметр отверстия? Или все таки есть какой то секрет, типа пистона, которые сейчас днем с огнем и то не найдешь?


Да, плата без металлизации, делалась с помощью ЛУТ. Не понимаю, какая проблема пропаять выводы элементов сверху? Ткнул паяльником - и готово. А с волоском или пистонами еще возиться надо. Волосок я ставлю в тех случаях, когда корпус элемента не может быть приподнят над платой.

saschai писал(а):Очень хочется посмотреть на платку в гифе или жопеге, или ПДФ


Отвечал выше, есть PLT. Это векторный формат. Из него можете распечатать любой слой в любом масштабе. Или напечатать на PS-принтере в файл и сделать pdf.

saschai писал(а):Еще хотелось бы задавать смещение сигнала в пределах 3в.


Это нужно делать в выходном каскаде после регулятора уровня.
Аватара пользователя
saschai
Говорящий с текстолитом
Сообщения: 1596
Зарегистрирован: Вс дек 14, 2008 20:36:47
Откуда: SPb

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

Сообщение saschai »

Благодарю!
Если удастся заказать индикатор, с удовольствием повторю Вашу конструкцию!
Спасибо, за подробные ответы.
С уважением, Александр.
Аватара пользователя
Nickolai
Открыл глаза
Сообщения: 68
Зарегистрирован: Сб мар 10, 2012 12:25:42
Откуда: UA SUMY

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

Сообщение Nickolai »

Здравствуйте.
Собрал генератор на ATmega8, с дисплеем на контроллере KS0066 ( одно строчный ) но индикация есть если только ставлю кварц на 8МГц, при кварце на 16МГц индикации вообще нету. :dont_know: Пробовал двух строчные дисплеи на контроллере HD44780 так тоже вообще нет индикации, даже с кварцем на 8МГц. Прошивки пробовал разные, dds_M8.zip с 2 страницы, dds_m8_0802er.rar с 6 страницы.
Сигналы на выходе генератора есть, кнопки работают.

Пожалуйста, может кто поможет, можно ли переделать прошивку dds_m8_0802er.rar с 6 страницы под дисплей на контроллере HD44780 (двухстрочный), ну и что бы работал с кварцем на 16МГц. :cry:

Добавил кнопку RESET на первую ногу ATmega8, после нескольких нажатий (сброса ) запускаются все дисплеи, даже с кварцем на 16МГц. Наверное проблема с инициализацией дисплея, но как сделать изменения, :dont_know: ведь исходник написан на Algorithm Builder. :cry:
Вложения
dds_m8_0802er.rar
Прошивка с 6 страницы.
(45.08 КБ) 478 скачиваний
Nik
Аватара пользователя
ataman
Открыл глаза
Сообщения: 49
Зарегистрирован: Пн июл 19, 2010 18:35:08
Контактная информация:

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

Сообщение ataman »

Здравствуйте

Может у кого то есть в проект генератора в CodeVisionAVR ?

Я начал делать свой генератор, пока получается не очень.

Проблема 1: Как сделать что б при нажатии на кнопку "SIN" генерировался синус и при этом надпись на дисплее появлялась "Сигнал: синус". И так же при нажатии на кнопку "Pila" и "Meander"

Проблема 2: Как регулировать амплитуду ?

Проблема 3: Как регулировать частоту?

Проект в CodeVision + в Протеусе прикреплены

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

#include <mega8.h>
#include <delay.h>
#asm
.equ __lcd_port=0x12;       
#endasm
#include <lcd.h>

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};

int  FAZA=100;
int dis=0;
char i;   
int   ACCU=0;

void reset()
{
    DDRB=0x00;
    PORTB=0x00; 
    DDRC=0xFF;
    PORTC=0x00;
    lcd_putsf("Reset");
}

interrupt [EXT_INT1] void ext_int1_isr(void)
{
  reset();
}

void main(void)
{

DDRB=0xff;
/*PORTB=0x00;
DDRB=0x08;*/

lcd_init(16);
lcd_gotoxy(0,0);
//lcd_putsf("Signal: Sin");

//настройка прерывания на сброс
DDRD.3=0;   // высокий уровень на входе
PORTD.3=1;  // при отсутствии внутренего сигнала
SREG|= (1<<7); //разрешаем общие прерывания
GICR|=(1<<7);   //разрешаем прерывание по INT1   
MCUCR|=(1<<1); //прерывание по ниспадающему фронту сигнала на INT0

/*DDRC&=~(1<<1);
PORTC|=(1<<1);*/

while (1)
{
  if (!(PINC & (1<<PINC0)))// Косинус
  {
      PORTB = cos[i];
      ACCU=ACCU+FAZA;
      i=ACCU>>8;
  }
   
  if (!(PINC & (1<<PINC1)))  // Пила
  {
      PORTB = cos[i/2];
      ACCU=ACCU+FAZA;
      i=ACCU>>8;
  }
 

}
 
}
Вложения
dds.zip
(129.25 КБ) 421 скачивание
Последний раз редактировалось ataman Вт май 08, 2012 05:19:33, всего редактировалось 1 раз.
[color=#800000][b][i][u]Я вообще боюсь собак[/u][/i][/b][/color]
Аватара пользователя
Nickolai
Открыл глаза
Сообщения: 68
Зарегистрирован: Сб мар 10, 2012 12:25:42
Откуда: UA SUMY

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

Сообщение Nickolai »

ataman писал(а):
Проблема 2: Как регулировать амплитуду ?

[/code]



Через резистор, к примеру от 10к до 50к.
Вложения
reg-u.JPG
Регулировка вых.
(14.95 КБ) 716 скачиваний
Nik
Аватара пользователя
ataman
Открыл глаза
Сообщения: 49
Зарегистрирован: Пн июл 19, 2010 18:35:08
Контактная информация:

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

Сообщение ataman »

Nickolai писал(а):Через резистор, к примеру от 10к до 50к.


Спасибо, сейчас попробую в протеусе!

Но более важно как регулировать частоту ?
[color=#800000][b][i][u]Я вообще боюсь собак[/u][/i][/b][/color]
Ответить

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