Добро пожаловать, Гость
Логин: Пароль: Запомнить меня

ТЕМА: Цифровой генератор от 1Hz до 40 МНz

Цифровой генератор от 1Hz до 40 МНz 14 фев 2015 23:50 #1

  • Samodelkin
  • Samodelkin аватар
  • Не в сети
  • I'm here long time
  • Сообщений: 181
  • Спасибо получено: 10
Цифровой генератор от 1Hz до 40 МНz
Здравствуйте. Я решил собрать этот замечательный и простой генератор. Поэтому хочу предложить фото генератора и печатную плату которую сам разводил. Печатная плата сделана в программе Sprint-Layout6. С самого начала были проблемы, не корректно работал энкодер. Но когда поменял микроконтроллер то все заработало. :cheer: :cheer: :cheer:

Вложенный файл:

Имя файла: 40MHz.rar
Размер файла:47 KB







Администратор запретил публиковать записи гостям.
Спасибо сказали: Vasiko, andreyke378, ra8ca, grooss999

Цифровой генератор от 1Hz до 40 МНz 15 фев 2015 12:08 #2

  • Oto
  • Oto аватар
  • Не в сети
  • Moderator
  • Сообщений: 927
  • Спасибо получено: 271
Здравствуйте.
не корректно работал энкодер. Но когда поменял микроконтроллер то все заработало.
Интересно бы найти этому логическое обьяснение, просто у меня на практике подобное не встречалось..
Ну да ладно..., главное, что добились нормальной работы генератора.
Интересно вот что, у нас практически разный монтаж, разные осциллографы , я знаю что до ~12МНz там осциллограмма практически идеальна, как у вас выглядят осциллограммы частот выше 12МНz?
#StopRussianAggression
Администратор запретил публиковать записи гостям.

Цифровой генератор от 1Hz до 40 МНz 15 фев 2015 12:27 #3

  • Samodelkin
  • Samodelkin аватар
  • Не в сети
  • I'm here long time
  • Сообщений: 181
  • Спасибо получено: 10
Я тоже не знаю в чем было дело ... Возможно МК неисправен. Синус на осциллографе показывает хорошо только с повышением частоты амплитуда падает. А вот с прямоугольниками, дела хуже.

Скажите пожалуйста вы автор этого проекта?
Администратор запретил публиковать записи гостям.

Цифровой генератор от 1Hz до 40 МНz 15 фев 2015 12:29 #4

  • Oto
  • Oto аватар
  • Не в сети
  • Moderator
  • Сообщений: 927
  • Спасибо получено: 271
Статью написал я.
#StopRussianAggression
Администратор запретил публиковать записи гостям.

Цифровой генератор от 1Hz до 40 МНz 15 фев 2015 13:34 #5

  • Samodelkin
  • Samodelkin аватар
  • Не в сети
  • I'm here long time
  • Сообщений: 181
  • Спасибо получено: 10
Скажите пожалуйста можно ли вынести какие-то изменения в прошивку? Скажем так немного усовершенствовать. Я в программировании не разбираюсь. А начинать изучать програмирование нет времени.
Последнее редактирование: 15 фев 2015 13:34 от Samodelkin.
Администратор запретил публиковать записи гостям.

Цифровой генератор от 1Hz до 40 МНz 15 фев 2015 21:27 #6

  • Oto
  • Oto аватар
  • Не в сети
  • Moderator
  • Сообщений: 927
  • Спасибо получено: 271
К сожалению, исходников от моих первых проектов уже не осталось и следа, так что увы.
Да и со свободным временем на новые разработки, аналогично вашему - дефицит.
Единственное чем могу помочь, так это первичным исходником этого проекта, возможно он поможет тем кто сам будет создавать подобную программу.
Этот текст программы взят из интернета в открытом доступе, но чтобы не искать его на просторах интернета , продублирую его здесь.
/*****************************************************
This program was produced by the
CodeWizardAVR V2.05.3 Standard
                                             Соединение Меги с AD9850:
                                             MOSI ---> D7
                                             SCK ---> W_CLK
                                             PB2 ---> FQ_UD 
Date    : 26.05.2013
Author  : PerTic@n
Company : If You Like This Software,Buy It
Chip type               : ATmega8
AVR Core Clock frequency: 8,000000 MHz
*****************************************************/
#include <mega8.h>
#include <spi.h>
#define FQ_UD PORTB.2         // подключен вывод FQ_UD AD9850
/*********** Переменные **************/
     union un_dataword                  //5 Байт, объединение  содержит данные для передачи AD9850
     {
     unsigned long dataword_freq;      // 32 бит слово,  для управления частотой 
     unsigned char dataword_byte[5]; // массив для побайтного доступа
     }un;
unsigned long freq =0;        // частота Гц
unsigned char i;                             // счетчик
float k = 34.359738368;    // коэффициент  4294967296/F = 34.359738368 для 125MHz тактовой 
            
void set_frq(void)
{
          un.dataword_byte[4]=0b00000000;  // два младших бита (0 и 1) Обязательно = 0.
                                        // бит 2 устанавливает режим Power-Down 
                                        // пять старших бит управляют фазой.
           un.dataword_freq = freq*k;       //  частота
           FQ_UD =1;
           FQ_UD =0;
                     for (i=0; i<5; i++) 
                     {
                     spi(un.dataword_byte[i]);
                     } 
           FQ_UD =1;
           FQ_UD =0;  
}      
void main(void)
{
PORTB=0x00;
DDRB=0x2D;
PORTC=0x00;
DDRC=0x00;
PORTD=0x00;
DDRD=0x00;
TCCR0=0x00;
TCNT0=0x00;
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;
MCUCR=0x00;
TIMSK=0x00;
UCSRB=0x00;
ACSR=0x80;
SFIOR=0x00;
ADCSRA=0x00;
// SPI initialization
// SPI Type: Master
// SPI Clock Rate: 2000,000 kHz
// SPI Clock Phase: Cycle Start
// SPI Clock Polarity: Low
// SPI Data Order: LSB First
SPCR=0x70;
SPSR=0x00;

TWCR=0x00;  
while (1)
      {
               set_frq();
               freq = 500000;       
      }
}

В переменную freq подаете число от 0 до 40 000 000 , это и будет управление частотой генератора AD9850 на выходе.
#StopRussianAggression
Администратор запретил публиковать записи гостям.

Цифровой генератор от 1Hz до 40 МНz 15 фев 2015 21:40 #7

  • Samodelkin
  • Samodelkin аватар
  • Не в сети
  • I'm here long time
  • Сообщений: 181
  • Спасибо получено: 10
Очень жаль. Проект хороший. Еще бы добавить частотомер (или это не реально?), Чтобы все было более универсальнее. И цены бы не было такому прибору
Администратор запретил публиковать записи гостям.

Цифровой генератор от 1Hz до 40 МНz 16 фев 2015 13:04 #8

  • Soir
  • Soir аватар
  • на форуме
  • Moderator
  • Сообщений: 4089
  • Спасибо получено: 1406
Samodelkin пишет:
...Еще бы добавить частотомер...
Я бы мог попытаться написать свой вариант прошивки, но:
1. Для добавления функции частотомера будут изменения в схеме (небольшие).
2. AD9850 у меня нет, разработка для меня будет только виртуальная, проверить сам не смогу.
Если готовы экспериментировать - пишите.
Администратор запретил публиковать записи гостям.

Цифровой генератор от 1Hz до 40 МНz 16 фев 2015 13:49 #9

  • Samodelkin
  • Samodelkin аватар
  • Не в сети
  • I'm here long time
  • Сообщений: 181
  • Спасибо получено: 10
Я думаю, что стоит попробовать. Но тогда вам придется писать прошивку изначально. за одно можно будет отшлифовать прошивку самого генератора.
Администратор запретил публиковать записи гостям.

Цифровой генератор от 1Hz до 40 МНz 16 фев 2015 14:39 #10

  • Soir
  • Soir аватар
  • на форуме
  • Moderator
  • Сообщений: 4089
  • Спасибо получено: 1406
Конечно, прошивка с "нуля". Что такое "отшлифовать" опишите подробнее.
Последнее редактирование: 16 фев 2015 14:40 от Soir.
Администратор запретил публиковать записи гостям.

Цифровой генератор от 1Hz до 40 МНz 16 фев 2015 15:07 #11

  • Samodelkin
  • Samodelkin аватар
  • Не в сети
  • I'm here long time
  • Сообщений: 181
  • Спасибо получено: 10
1. При включены Кн0 и повороте энкодера избирался шаг частоты (это ускорит настройку)
2. Если там есть транзистор то можно сделать яркость подсветки, или просто сделать без транзистора,тем самым упростить схему.
3.Сделать так, чтобы при повороте энкодера против часовой стрелки отсчет не останавливался на нуле а шел обратно например 3-2-1-0-9-8-7 (это ускорит настройку)
Последнее редактирование: 16 фев 2015 15:17 от Samodelkin.
Администратор запретил публиковать записи гостям.

Цифровой генератор от 1Hz до 40 МНz 16 фев 2015 15:32 #12

  • Soir
  • Soir аватар
  • на форуме
  • Moderator
  • Сообщений: 4089
  • Спасибо получено: 1406
Samodelkin пишет:
1. При включены Кн0 и повороте энкодера избирался шаг частоты...
А сейчас выбирается просто кнопкой?Samodelkin пишет:
...или просто сделать без транзистора...
На счет регулировки яркости пока ничего не скажу, надо изучить вопрос с назначением выводов и совместимостью с частотомером. А если исключить, то для этого не надо ничего в прошивке менять - просто исключить. Кроме того, этот вывод МК будет задействован под частотомер.
Если Вы готовы пробовать, то проект разделим на этапы.
1. Управление генератором - для меня основное, так как не могу сам проверять. Тестовую прошивку напишу сегодня-завтра.
2. Частотомер. В случае успеха п.1.
3. Прочие навороты. В случае успеха п.1.

P.S.
Посмотрел еще раз схему. С выводами МК напряженка. Два вывода (9, 10) надо освободить для кварца...
Последнее редактирование: 16 фев 2015 15:41 от Soir.
Администратор запретил публиковать записи гостям.

Цифровой генератор от 1Hz до 40 МНz 16 фев 2015 16:36 #13

  • Samodelkin
  • Samodelkin аватар
  • Не в сети
  • I'm here long time
  • Сообщений: 181
  • Спасибо получено: 10
Я не очень силен в мк. Но хотелось бы сделать так все чтобы при разводке платы все элементы как можно удобнее были размещены. Еще можнливий такой вариант что генератор может давать наводки на частотомер и наоборот.
А транзистор можно забрать и тем самым освободить одну ножку МК.
Последнее редактирование: 16 фев 2015 16:38 от Samodelkin.
Администратор запретил публиковать записи гостям.

Цифровой генератор от 1Hz до 40 МНz 16 фев 2015 17:59 #14

  • Soir
  • Soir аватар
  • на форуме
  • Moderator
  • Сообщений: 4089
  • Спасибо получено: 1406
Samodelkin пишет:
Но хотелось бы сделать так все чтобы при разводке платы все элементы как можно удобнее были размещены.
Для начала я сделаю прошивку под оригинальную схему. Дальше некоторые выводы должны быть переназначены. Если планируете переделывать плату, тогда уже посмотрим, что можно поменять.
Samodelkin пишет:
генератор может давать наводки на частотомер и наоборот...
Наверно возможно. Но, хочу сразу оговорить - беру на себя только прошивку. Что касается схемы, платы и т.п., тут уже смотрите сами.
Последнее редактирование: 16 фев 2015 17:59 от Soir.
Администратор запретил публиковать записи гостям.

Цифровой генератор от 1Hz до 40 МНz 16 фев 2015 18:58 #15

  • Samodelkin
  • Samodelkin аватар
  • Не в сети
  • I'm here long time
  • Сообщений: 181
  • Спасибо получено: 10
Хорошо, жду прошивку. Тогда я тоже буду вкладывать свое время в этот проект
Администратор запретил публиковать записи гостям.

Цифровой генератор от 1Hz до 40 МНz 16 фев 2015 20:09 #16

  • Soir
  • Soir аватар
  • на форуме
  • Moderator
  • Сообщений: 4089
  • Спасибо получено: 1406
Samodelkin пишет:
...жду прошивку...

Во вложении под схему из статьи. Пока тестовая версия (1-ый этап).
Задача проверить работоспособность, управление генератором, соответствие показаний частоте.
Во вложении также проект в Proteus (кстати, дружите?) и FUSE.

Вложенный файл:

Имя файла: Gen_ATM8_AD9850_0.zip
Размер файла:44 KB
Последнее редактирование: 17 фев 2015 21:11 от Soir. Причина: Доработка прошивки.
Администратор запретил публиковать записи гостям.

Цифровой генератор от 1Hz до 40 МНz 16 фев 2015 20:34 #17

  • Samodelkin
  • Samodelkin аватар
  • Не в сети
  • I'm here long time
  • Сообщений: 181
  • Спасибо получено: 10
С протеуса дружу но не профессионально. Прошивку проверю когда будет время. Каждый день до 23:00 на работе. Так что приходится по ночам паять.
Последнее редактирование: 16 фев 2015 20:34 от Samodelkin.
Администратор запретил публиковать записи гостям.

Цифровой генератор от 1Hz до 40 МНz 16 фев 2015 21:02 #18

  • Soir
  • Soir аватар
  • на форуме
  • Moderator
  • Сообщений: 4089
  • Спасибо получено: 1406
Samodelkin пишет:
С протеуса дружу но не профессионально.
Проверить симуляцией прошивку сможете? Это облегчит и ускорит тестирование.
Samodelkin пишет:
Прошивку проверю когда будет время.
Тоже времени свободного немного, пишите, когда проверите. Перед прошивкой скачайте заново архив, может я что-то доделаю, буду просто перезаливать в то же сообщение.
Пока вопрос. При управлении генератором почти весь дисплей занят. Каким образом выводить на дисплей данные частотомера? Можно какой-то кнопкой пожертвовать для переключения.
Администратор запретил публиковать записи гостям.

Цифровой генератор от 1Hz до 40 МНz 16 фев 2015 21:19 #19

  • Samodelkin
  • Samodelkin аватар
  • Не в сети
  • I'm here long time
  • Сообщений: 181
  • Спасибо получено: 10
Думаю, что смогу.
На счет дисплея думаю можно обойтись без кнопки. Сделать так, чтобы в строке где будет отображаться генератор, число которое мы будем настраивать энкодером мигал, или что-то подобное. Как вам идея?
Администратор запретил публиковать записи гостям.

Цифровой генератор от 1Hz до 40 МНz 16 фев 2015 21:33 #20

  • Soir
  • Soir аватар
  • на форуме
  • Moderator
  • Сообщений: 4089
  • Спасибо получено: 1406
Samodelkin пишет:
Как вам идея?
А куда выводить частоту частотомера? Одну строку занимает частота генератора, вторую (половину) шаг настройки.
Администратор запретил публиковать записи гостям.

Цифровой генератор от 1Hz до 40 МНz 16 фев 2015 21:49 #21

  • Samodelkin
  • Samodelkin аватар
  • Не в сети
  • I'm here long time
  • Сообщений: 181
  • Спасибо получено: 10
Сделать что-то подобное как настройка тока защиты в "джин-1". В строке где отображается частота генератор одновременно отображать шаг натройки. Так чтобы чисто которое мы хотим настроить мигало.
Администратор запретил публиковать записи гостям.

Цифровой генератор от 1Hz до 40 МНz 17 фев 2015 06:01 #22

  • Soir
  • Soir аватар
  • на форуме
  • Moderator
  • Сообщений: 4089
  • Спасибо получено: 1406
Samodelkin пишет:
Сделать что-то подобное как настройка тока защиты в "джин-1".
Что такое "джин-1" я не знаю, поэтому описывайте подробно.
Samodelkin пишет:
В строке где отображается частота генератор одновременно отображать шаг натройки.
В строке 16 символов, максимальная задаваемая частота 40 000 000 символы Hz. Если оставить разделители, то уже 11 знаков. Максимальная длина надписи шага настройки (x100kHz) - 7 символов, если еще перед ней пробел, то 8. Итого, никак не помещается в одну строку. А еще было бы хорошо вывести на дисплей номер выбранной программы...
Последнее редактирование: 17 фев 2015 06:01 от Soir.
Администратор запретил публиковать записи гостям.

Цифровой генератор от 1Hz до 40 МНz 17 фев 2015 08:30 #23

  • Samodelkin
  • Samodelkin аватар
  • Не в сети
  • I'm here long time
  • Сообщений: 181
  • Спасибо получено: 10
Джин-1 вольт-ампер метр с этого сайта, вот статья. Джин
На счет отражения частоты генератора, вы меня неправильно поняли. Допустим у нас есть на екране частота 12.345.678 Hz. Для того чтобы показывать шаг настройки предлагаю выделять то значение которое мы хотим настроить.Например. Если шаг 1 Hz, то число "8" выделяется из общего фона (например мигает или что-то в этом роде). При нажатии Кн0 меняем шаг на 10 Hz, и тут же мигает число "7". Когда шаг 1MHz мигает число "2".Теперь вы поняли что я имею в виду?
Последнее редактирование: 17 фев 2015 09:02 от Samodelkin.
Администратор запретил публиковать записи гостям.

Цифровой генератор от 1Hz до 40 МНz 17 фев 2015 09:32 #24

  • Soir
  • Soir аватар
  • на форуме
  • Moderator
  • Сообщений: 4089
  • Спасибо получено: 1406
Samodelkin пишет:
Джин-1 вольт-ампер метр с этого сайта, вот статья...
Нет, давайте по-другому. Если что-то надо позаимствовать из другого источника, то Вы не заставляйте меня перечитывать все материалы источника, а опишите в своем сообщении суть дела.
Samodelkin пишет:
...Теперь вы поняли что я имею в виду?

Теперь понял. Так наверно удобнее будет настраивать, но есть вопрос. А как быть с незначащими нулями? Если текущая частота, например, 10 Гц, а устанавливать надо МГц? Что должно мигать, если это знакоместо потушено? Или при нажатии на кнопку включать также и незначащие нули?
Администратор запретил публиковать записи гостям.

Цифровой генератор от 1Hz до 40 МНz 17 фев 2015 10:03 #25

  • wolf2000
  • wolf2000 аватар
  • на форуме
  • Moderator
  • Слава Україні !!! Смерть ворогам
  • Сообщений: 594
  • Спасибо получено: 89
Soir пишет:
А как быть с незначащими нулями? Если текущая частота, например, 10 Гц, а устанавливать надо МГц? Что должно мигать, если это знакоместо потушено? Или при нажатии на кнопку включать также и незначащие нули?
кнопку выбора (переключения) разрядов. 1-е нажатие = 1 справа разряд, второе = второй и т.д.
Save Ukraine! Stop Putin!
Не купуй товари окупантів! На початку штрих-коду від 460 до 469
Последнее редактирование: 17 фев 2015 10:21 от wolf2000.
Администратор запретил публиковать записи гостям.
Модераторы: wolf2000, Vakula, Айнцвайдрайченко