Запрошуємо, Гість
Ім'я користувача: Пароль: Запам’ятати мене

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

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

  • Samodelkin
  • Samodelkin аватар
  • Оффлайн
  • habitue
  • Дописи: 182
  • Подяка отримана: 10
  • Author
Цифровой генератор от 1Hz до 40 МНz
Здравствуйте. Я решил собрать этот замечательный и простой генератор. Поэтому хочу предложить фото генератора и печатную плату которую сам разводил. Печатная плата сделана в программе Sprint-Layout6. С самого начала были проблемы, не корректно работал энкодер. Но когда поменял микроконтроллер то все заработало. :cheer: :cheer: :cheer:

Вкладений файл:

Назва файлу: 40MHz.rar
Розмір файлу:47 KB







Адміністратор заборонив доступ на запис.
Користувачі які сказали Дякую: Vasiko

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

  • Oto
  • Oto аватар
  • Оффлайн
  • Moderator
  • Дописи: 2468
  • Подяка отримана: 1057
  • Site Sponsor 2017 Author sxem.org Sponsor 2019
Здравствуйте.
не корректно работал энкодер. Но когда поменял микроконтроллер то все заработало.
Интересно бы найти этому логическое обьяснение, просто у меня на практике подобное не встречалось..
Ну да ладно..., главное, что добились нормальной работы генератора.
Интересно вот что, у нас практически разный монтаж, разные осциллографы , я знаю что до ~12МНz там осциллограмма практически идеальна, как у вас выглядят осциллограммы частот выше 12МНz?
С росийским паспортом, Ты мразь!
Адміністратор заборонив доступ на запис.

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

  • Samodelkin
  • Samodelkin аватар
  • Оффлайн
  • habitue
  • Дописи: 182
  • Подяка отримана: 10
  • Author
Я тоже не знаю в чем было дело ... Возможно МК неисправен. Синус на осциллографе показывает хорошо только с повышением частоты амплитуда падает. А вот с прямоугольниками, дела хуже.

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

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

  • Oto
  • Oto аватар
  • Оффлайн
  • Moderator
  • Дописи: 2468
  • Подяка отримана: 1057
  • Site Sponsor 2017 Author sxem.org Sponsor 2019
Статью написал я.
С росийским паспортом, Ты мразь!
Адміністратор заборонив доступ на запис.

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

  • Samodelkin
  • Samodelkin аватар
  • Оффлайн
  • habitue
  • Дописи: 182
  • Подяка отримана: 10
  • Author
Скажите пожалуйста можно ли вынести какие-то изменения в прошивку? Скажем так немного усовершенствовать. Я в программировании не разбираюсь. А начинать изучать програмирование нет времени.
Останнє редагування: 15 лют. 2015 11:34 від Samodelkin.
Адміністратор заборонив доступ на запис.

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

  • Oto
  • Oto аватар
  • Оффлайн
  • Moderator
  • Дописи: 2468
  • Подяка отримана: 1057
  • Site Sponsor 2017 Author sxem.org Sponsor 2019
К сожалению, исходников от моих первых проектов уже не осталось и следа, так что увы.
Да и со свободным временем на новые разработки, аналогично вашему - дефицит.
Единственное чем могу помочь, так это первичным исходником этого проекта, возможно он поможет тем кто сам будет создавать подобную программу.
Этот текст программы взят из интернета в открытом доступе, но чтобы не искать его на просторах интернета , продублирую его здесь.
/*****************************************************
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 на выходе.
С росийским паспортом, Ты мразь!
Адміністратор заборонив доступ на запис.

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

  • Samodelkin
  • Samodelkin аватар
  • Оффлайн
  • habitue
  • Дописи: 182
  • Подяка отримана: 10
  • Author
Очень жаль. Проект хороший. Еще бы добавить частотомер (или это не реально?), Чтобы все было более универсальнее. И цены бы не было такому прибору
Адміністратор заборонив доступ на запис.

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

  • Soir
  • Soir аватар
  • Оффлайн
  • Moderator
  • Дописи: 13312
  • Подяка отримана: 5046
  • sxem.org 2019,2021 Respect Author
Samodelkin пише:
...Еще бы добавить частотомер...
Я бы мог попытаться написать свой вариант прошивки, но:
1. Для добавления функции частотомера будут изменения в схеме (небольшие).
2. AD9850 у меня нет, разработка для меня будет только виртуальная, проверить сам не смогу.
Если готовы экспериментировать - пишите.
Адміністратор заборонив доступ на запис.

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

  • Samodelkin
  • Samodelkin аватар
  • Оффлайн
  • habitue
  • Дописи: 182
  • Подяка отримана: 10
  • Author
Я думаю, что стоит попробовать. Но тогда вам придется писать прошивку изначально. за одно можно будет отшлифовать прошивку самого генератора.
Адміністратор заборонив доступ на запис.

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

  • Soir
  • Soir аватар
  • Оффлайн
  • Moderator
  • Дописи: 13312
  • Подяка отримана: 5046
  • sxem.org 2019,2021 Respect Author
Конечно, прошивка с "нуля". Что такое "отшлифовать" опишите подробнее.
Останнє редагування: 16 лют. 2015 12:40 від Soir.
Адміністратор заборонив доступ на запис.

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

  • Samodelkin
  • Samodelkin аватар
  • Оффлайн
  • habitue
  • Дописи: 182
  • Подяка отримана: 10
  • Author
1. При включены Кн0 и повороте энкодера избирался шаг частоты (это ускорит настройку)
2. Если там есть транзистор то можно сделать яркость подсветки, или просто сделать без транзистора,тем самым упростить схему.
3.Сделать так, чтобы при повороте энкодера против часовой стрелки отсчет не останавливался на нуле а шел обратно например 3-2-1-0-9-8-7 (это ускорит настройку)
Останнє редагування: 16 лют. 2015 13:17 від Samodelkin.
Адміністратор заборонив доступ на запис.

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

  • Soir
  • Soir аватар
  • Оффлайн
  • Moderator
  • Дописи: 13312
  • Подяка отримана: 5046
  • sxem.org 2019,2021 Respect Author
Samodelkin пише:
1. При включены Кн0 и повороте энкодера избирался шаг частоты...
А сейчас выбирается просто кнопкой?Samodelkin пише:
...или просто сделать без транзистора...
На счет регулировки яркости пока ничего не скажу, надо изучить вопрос с назначением выводов и совместимостью с частотомером. А если исключить, то для этого не надо ничего в прошивке менять - просто исключить. Кроме того, этот вывод МК будет задействован под частотомер.
Если Вы готовы пробовать, то проект разделим на этапы.
1. Управление генератором - для меня основное, так как не могу сам проверять. Тестовую прошивку напишу сегодня-завтра.
2. Частотомер. В случае успеха п.1.
3. Прочие навороты. В случае успеха п.1.

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

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

  • Samodelkin
  • Samodelkin аватар
  • Оффлайн
  • habitue
  • Дописи: 182
  • Подяка отримана: 10
  • Author
Я не очень силен в мк. Но хотелось бы сделать так все чтобы при разводке платы все элементы как можно удобнее были размещены. Еще можнливий такой вариант что генератор может давать наводки на частотомер и наоборот.
А транзистор можно забрать и тем самым освободить одну ножку МК.
Останнє редагування: 16 лют. 2015 14:38 від Samodelkin.
Адміністратор заборонив доступ на запис.

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

  • Soir
  • Soir аватар
  • Оффлайн
  • Moderator
  • Дописи: 13312
  • Подяка отримана: 5046
  • sxem.org 2019,2021 Respect Author
Samodelkin пише:
Но хотелось бы сделать так все чтобы при разводке платы все элементы как можно удобнее были размещены.
Для начала я сделаю прошивку под оригинальную схему. Дальше некоторые выводы должны быть переназначены. Если планируете переделывать плату, тогда уже посмотрим, что можно поменять.
Samodelkin пише:
генератор может давать наводки на частотомер и наоборот...
Наверно возможно. Но, хочу сразу оговорить - беру на себя только прошивку. Что касается схемы, платы и т.п., тут уже смотрите сами.
Останнє редагування: 16 лют. 2015 15:59 від Soir.
Адміністратор заборонив доступ на запис.

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

  • Samodelkin
  • Samodelkin аватар
  • Оффлайн
  • habitue
  • Дописи: 182
  • Подяка отримана: 10
  • Author
Хорошо, жду прошивку. Тогда я тоже буду вкладывать свое время в этот проект
Адміністратор заборонив доступ на запис.

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

  • Soir
  • Soir аватар
  • Оффлайн
  • Moderator
  • Дописи: 13312
  • Подяка отримана: 5046
  • sxem.org 2019,2021 Respect Author
Samodelkin пише:
...жду прошивку...

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

Вкладений файл:

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

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

  • Samodelkin
  • Samodelkin аватар
  • Оффлайн
  • habitue
  • Дописи: 182
  • Подяка отримана: 10
  • Author
С протеуса дружу но не профессионально. Прошивку проверю когда будет время. Каждый день до 23:00 на работе. Так что приходится по ночам паять.
Останнє редагування: 16 лют. 2015 18:34 від Samodelkin.
Адміністратор заборонив доступ на запис.

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

  • Soir
  • Soir аватар
  • Оффлайн
  • Moderator
  • Дописи: 13312
  • Подяка отримана: 5046
  • sxem.org 2019,2021 Respect Author
Samodelkin пише:
С протеуса дружу но не профессионально.
Проверить симуляцией прошивку сможете? Это облегчит и ускорит тестирование.
Samodelkin пише:
Прошивку проверю когда будет время.
Тоже времени свободного немного, пишите, когда проверите. Перед прошивкой скачайте заново архив, может я что-то доделаю, буду просто перезаливать в то же сообщение.
Пока вопрос. При управлении генератором почти весь дисплей занят. Каким образом выводить на дисплей данные частотомера? Можно какой-то кнопкой пожертвовать для переключения.
Адміністратор заборонив доступ на запис.

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

  • Samodelkin
  • Samodelkin аватар
  • Оффлайн
  • habitue
  • Дописи: 182
  • Подяка отримана: 10
  • Author
Думаю, что смогу.
На счет дисплея думаю можно обойтись без кнопки. Сделать так, чтобы в строке где будет отображаться генератор, число которое мы будем настраивать энкодером мигал, или что-то подобное. Как вам идея?
Адміністратор заборонив доступ на запис.

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

  • Soir
  • Soir аватар
  • Оффлайн
  • Moderator
  • Дописи: 13312
  • Подяка отримана: 5046
  • sxem.org 2019,2021 Respect Author
Samodelkin пише:
Как вам идея?
А куда выводить частоту частотомера? Одну строку занимает частота генератора, вторую (половину) шаг настройки.
Адміністратор заборонив доступ на запис.

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

  • Samodelkin
  • Samodelkin аватар
  • Оффлайн
  • habitue
  • Дописи: 182
  • Подяка отримана: 10
  • Author
Сделать что-то подобное как настройка тока защиты в "джин-1". В строке где отображается частота генератор одновременно отображать шаг натройки. Так чтобы чисто которое мы хотим настроить мигало.
Адміністратор заборонив доступ на запис.

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

  • Soir
  • Soir аватар
  • Оффлайн
  • Moderator
  • Дописи: 13312
  • Подяка отримана: 5046
  • sxem.org 2019,2021 Respect Author
Samodelkin пише:
Сделать что-то подобное как настройка тока защиты в "джин-1".
Что такое "джин-1" я не знаю, поэтому описывайте подробно.
Samodelkin пише:
В строке где отображается частота генератор одновременно отображать шаг натройки.
В строке 16 символов, максимальная задаваемая частота 40 000 000 символы Hz. Если оставить разделители, то уже 11 знаков. Максимальная длина надписи шага настройки (x100kHz) - 7 символов, если еще перед ней пробел, то 8. Итого, никак не помещается в одну строку. А еще было бы хорошо вывести на дисплей номер выбранной программы...
Останнє редагування: 17 лют. 2015 04:01 від Soir.
Адміністратор заборонив доступ на запис.

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

  • Samodelkin
  • Samodelkin аватар
  • Оффлайн
  • habitue
  • Дописи: 182
  • Подяка отримана: 10
  • Author
Джин-1 вольт-ампер метр с этого сайта, вот статья. Джин
На счет отражения частоты генератора, вы меня неправильно поняли. Допустим у нас есть на екране частота 12.345.678 Hz. Для того чтобы показывать шаг настройки предлагаю выделять то значение которое мы хотим настроить.Например. Если шаг 1 Hz, то число "8" выделяется из общего фона (например мигает или что-то в этом роде). При нажатии Кн0 меняем шаг на 10 Hz, и тут же мигает число "7". Когда шаг 1MHz мигает число "2".Теперь вы поняли что я имею в виду?
Останнє редагування: 17 лют. 2015 07:02 від Samodelkin.
Адміністратор заборонив доступ на запис.

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

  • Soir
  • Soir аватар
  • Оффлайн
  • Moderator
  • Дописи: 13312
  • Подяка отримана: 5046
  • sxem.org 2019,2021 Respect Author
Samodelkin пише:
Джин-1 вольт-ампер метр с этого сайта, вот статья...
Нет, давайте по-другому. Если что-то надо позаимствовать из другого источника, то Вы не заставляйте меня перечитывать все материалы источника, а опишите в своем сообщении суть дела.
Samodelkin пише:
...Теперь вы поняли что я имею в виду?

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

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

  • wolf2000
  • wolf2000 аватар
  • онлайн
  • Moderator
  • Слава Україні !!! Смерть ворогам
  • Дописи: 948
  • Подяка отримана: 249
  • sxem.org Sponsor 2019 ukraine-medal
Soir пише:
А как быть с незначащими нулями? Если текущая частота, например, 10 Гц, а устанавливать надо МГц? Что должно мигать, если это знакоместо потушено? Или при нажатии на кнопку включать также и незначащие нули?
кнопку выбора (переключения) разрядов. 1-е нажатие = 1 справа разряд, второе = второй и т.д.
"Борітеся — поборете!
Вам Бог помагає!
За вас правда, за вас слава
І воля святая!"
________________________
Save Ukraine! Stop Putin!
Останнє редагування: 17 лют. 2015 08:21 від wolf2000.
Адміністратор заборонив доступ на запис.
Модератори: wolf2000, Vakula, Айнцвайдрайченко, Soir