Генератор с регулируемоей частотой на ардуино.

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

ingfa пишет:

обычный знаковый дисплей   1602 символьный ?  Мне нужно для синтезатора частоты с 10кгц до 160 мегагерц и выше если возможно.

Гугль в помощь. Вот по первой же ссылке: Простой,  универсальный синтезатор на Si5351 до 160 МГц

ingfa
Offline
Зарегистрирован: 15.09.2018

Да простой 1602 символьный. Просто все покупаю в китае и st7735 уж очень долго будет идти. А последний я вчера доломал, шлейф просто порвался от перепаек туда сюда. А вот вопрос еще. Aurdinio pro mini можно заменить микросхемой atmega328p большая такая в dip корпусе. А если можно то необходимо уровни  согласовывать 3-5 вольт, так как si5351 у меня в виде микросхемы, а не готового модуля? 

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

ingfa, тут обсуждение конкретного проекта на stm32, вам лучше создать отдельную тему.

sp1run33
Offline
Зарегистрирован: 23.07.2019

хотел виразить благодарность автору за проект .
я так и не разобрался есть ли возможность написать личное сообщение конкретному пользователю . 
собрал версию 3.0 подскажите у меня стандартний енкодер ардуинщика можно ли как то переделать прошивку если да ткните носом где под мой енкодер . 

еще хотел спросить какое реально применения данного устройства кроме как проверка и настройка осцилографа . 
конкретно мне нужен для востановления старого с1-94

спасибо 

MAG-N
MAG-N аватар
Offline
Зарегистрирован: 05.06.2017

ingfa пишет:

А вот вопрос еще. Aurdinio pro mini можно заменить микросхемой atmega328p большая такая в dip корпусе. А если можно то необходимо уровни  согласовывать 3-5 вольт, так как si5351 у меня в виде микросхемы, а не готового модуля? 

Заменить можно, а питать от 3 Вольт, они нормально работают на 16 МГц. И уровни не надо согласовывать. Если контроллер будет только управлять синтезатором и инфу на дисплей выводить - можно его запустить на 8 Мгц от внутреннего генератора, тогда и кварц не нужен.

Frolv
Offline
Зарегистрирован: 31.08.2015

Доброе время суток! У меня маленькая проблема - изображение сдвинуто вверх и влево на несколько (1-2) строк. версия прошивки 3.4, где в скетче можно исправит этот сдвиг?

Я подправил начальные координаты вывода строк, но все равно справа "цветной" шум в виде строчки в один пиксел, и внизу строчка в 3 пиксела.

MAG-N
MAG-N аватар
Offline
Зарегистрирован: 05.06.2017

Все эти пиксельные сдвиги делаются в библиотеке при инициализации дисплея.

Если дисплей исправен, то возможно, проблема именно с библиотекой (Гранаты не той системы :-)). Вот рекомендованная Автором - проверена, 100% рабочая:

http://wdfiles.ru/egrD

Mulin.by
Offline
Зарегистрирован: 28.07.2016

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

240265
240265 аватар
Offline
Зарегистрирован: 12.08.2015

Сам спросил - Сам ответил.

kloker
Offline
Зарегистрирован: 01.01.2019

это всё замечательно, проект полезный и нужный в хозяйстве.

а не могли бы вы как-то вместе всё запостить, к такому коду такая плата схема и комплектуха?

как-то всё расползлось по разным чипам, дисплеям и версиям кода, понять о чем речь в ленте, уже становится сложно.

 

kloker
Offline
Зарегистрирован: 01.01.2019

я так понимаю проект уже переехал c AVR на STM32F103/303.

какой код под какой дисплей пока совсем не понятно. каждый себе ваяет под общим начальным кодом автора, или проект зафиксирован на SPI дисплее 160х180?

в закромах только занакосинтезирующий 2004 с I2C адаптором и OLED I2C. их поддержка в проекте не предусмотрена?

MAG-N
MAG-N аватар
Offline
Зарегистрирован: 05.06.2017

В генераторе на STM32F103 дисплей один - 160х128 с контроллером ST7735, впрочем и под другой переделать не сильно сложно. А что касается кода - в посте с описанием каждой новой версии есть схема и код. Вот печаток тут негусто, тем более что их делают под имеющуюся комплектуху и с вариациями. У меня, к примеру, вместо мультиплексора реле стоят, часть выводов контроллера изменена и сама плата контроллера другая (на 34 ногах).

kloker
Offline
Зарегистрирован: 01.01.2019

я понял, спасибо за ответ. тогда буду вникать в код, дисплея ST7735 в наличие нет, а на местном радиорынке цены на него не сложат..

MAG-N
MAG-N аватар
Offline
Зарегистрирован: 05.06.2017

Если не очень торопиться, то на АЛИ эти дисплюйчики стоят на уровне 2-3 пачек сигарет, а можно и без платы, только стекляшку со шлейфом, ещё на сотню дешевле, но тогда плату надо делать самому, зато поменьше получается, если "размер имеет значение" :-) Плата по размеру рамки дисплея. Вот примерно так:

kloker
Offline
Зарегистрирован: 01.01.2019

в мою страну доставка с Али сравнима со стоимостью дисплея))

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

Mulin.by
Offline
Зарегистрирован: 28.07.2016

У меня тут мысль появилась. У si5351a хоть и нет программируемой скважности сигнала, но есть сдвиг фазы по каналам. Соответственно, подав сигналы с двух выходов на высокоскоростной логический "ИЛИ", мы на его выходе сможем снять вполне себе приличный ШИМ на любой частоте. Завтра схожу в чипдип попробую поковырять. Вот картинко как  сие должно работать в теории:

 

Какие мысли у кого по этому поводу?

kloker
Offline
Зарегистрирован: 01.01.2019

тяжело будет найти МС на высокоскоростной логический "ИЛИ" на частоту 160 МГц и выше. обычно потолок рассыпухи на 133 мгц заканчивается. но идея годная.

проще на SMD ВЧ транзисторах аналог вентиля "ИЛИ" наваять, но может и не всё так драматично))

MAG-N
MAG-N аватар
Offline
Зарегистрирован: 05.06.2017

А если "монтажное ИЛИ" на паре диодов, затем транзистор?

kloker
Offline
Зарегистрирован: 01.01.2019

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

потому на ВЧ раньше ставили германиевые, с точечным спаем.

пробовать надо, сейчас и кремниевые ВЧ есть.

можно и на PIN диодах попробовать, РЧ тракты цифровых систем связи на них собирают, на крайняк Шоттки поставить маломощный.

 

https://ru.wikipedia.org/wiki/%D0%92%D1%8B%D1%81%D0%BE%D0%BA%D0%BE%D1%87%D0%B0%D1%81%D1%82%D0%BE%D1%82%D0%BD%D1%8B%D0%B9_%D0%B4%D0%B8%D0%BE%D0%B4

Mulin.by
Offline
Зарегистрирован: 28.07.2016

MAG-N пишет:

А если "монтажное ИЛИ" на паре диодов, затем транзистор?

Даже проще будет. Главное что бы не было "горба" на наложении фаз

Mulin.by
Offline
Зарегистрирован: 28.07.2016

Слушайте, ребзя, еще впрос. У si5351a вроде нету подсчета количества импульсов? Мне надо на частоте 1МГц дать строго определенное количество импульсов. Это лучше повесить на вход прерывания микроконтроллера для подсчета и управления?

kloker
Offline
Зарегистрирован: 01.01.2019

если 2 диода с транзистором, то наверняка будут горбы)) ток утечки. 

12val12
Offline
Зарегистрирован: 19.02.2019

Хочу  сделать генератор как в 4м посте только с экраном Trium mars .

   инициализация чуть отличается.. .. как бы модифицировать имеющиеся  библиотеки 5510  но с такой инициальзацией 

  также убрать большой шрифт ..он будет некорректно отображен .

  delay_ms(50) ;
  LCD_RSTPORT=0; 
delay_ms(50) ;
  LCD_RSTPORT=1;
delay_ms(10) ;
 //out_Spi_LcdCom (0b00100001)    ; // расширенные интсрукции Н=1           
   out_Spi_LcdCom (0b00100011)    ; // расширенные интсрукции Н=1        
  out_Spi_LcdCom (0xC8)   ;
  out_Spi_LcdCom (0x06)    ;
  out_Spi_LcdCom (0x15)    ; // тёмность (0x10-бледно -0x15темно) 
  out_Spi_LcdCom (0x20)    ; // базовые инструкции H=0
  out_Spi_LcdCom (0x0C)    ; //(0x0C)  нормальный режим отображения D=1 E=0 (&h0d- инверсный режим)
  out_Spi_LcdCom (0b00011001)    ; //спцфич команда lcd trium aria   dont touch                
  for (ij=0;ij<960;ij++)  {         out_Spi_LcdDat (0b000000) ;}   ;  //очистка экрана            
  a=0;        

 

MAG-N
MAG-N аватар
Offline
Зарегистрирован: 05.06.2017

kloker пишет:

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

К примеру, BAV99 - Total Capacitance, per Diode 1,5 pF. Не так уж и много. Ну и попутный вопрос - а зачем на частоте 200 МГц длительность импульсов регулировать?

240265
240265 аватар
Offline
Зарегистрирован: 12.08.2015

Ну да, мне тоже интересно. А если частота 1МГц как пишет Mulin.by то на фига 5351.

kloker
Offline
Зарегистрирован: 01.01.2019

ХЗ зачем, мне например на 200 мгц скважность не сильно важна, а вот полочки и завалы фронтов иногда критичны, но тоже не на 100-200 мгц. там больше чистота синусоиды интересует, пила иногда.

 

kloker
Offline
Зарегистрирован: 01.01.2019

MAG-N пишет:
К примеру, BAV99

Fast Switching Speed, часто ставят на USB порты для защиты от статики. как вариант. только для 2 ИЛИ не подходит, второй диод катодом на вход повернут))

Mulin.by
Offline
Зарегистрирован: 28.07.2016

Ну да, мне тоже интересно. А если частота 1МГц как пишет Mulin.by то на фига 5351.

 

А как раелизовать нормальный ШИМ иначе? У меня задача ШИМ со скважностью 50 и регулировка частоты вплоть до 1Гц. Даже для DUE такая задача не тривиальна, а мне еще и дисплей прикручивать надо

kloker
Offline
Зарегистрирован: 01.01.2019

вплоть до 1Гц??

если в IDE Arduino ваять, то сложновато, delay_ms в коде стопорит всю программу))

таймеры и прерывания с программированием как можно ближе к железу.

http://microsin.net/programming/avr/avr131-using-high-speed-pwm.html

второй вариант - внешний ШИМ контроллер с управлением по I2C

кстати вот, лабораторный шим генератор

https://www.radiokot.ru/circuit/digital/measure/55/

MAG-N
MAG-N аватар
Offline
Зарегистрирован: 05.06.2017

kloker пишет:

MAG-N пишет:
К примеру, BAV99

Fast Switching Speed, часто ставят на USB порты для защиты от статики. как вариант. только для 2 ИЛИ не подходит, второй диод катодом на вход повернут))

Это я для примера взял, первое, что в голову пришло. Можно два корпуса поставить. Есть ещё BAS70 - Шоттки, 2 пФ, они выпускаются в куче вариантов от одного до четырёх диодов в корпусе и соединены по-всякому.

Mulin.by
Offline
Зарегистрирован: 28.07.2016

Короче купил si5351. Распаял. Генерит сигнал как положено. Но фаза не сдвигается ни на родных примерах, ни на каких иных. Может я неправильно понял смысл?...

Frolv
Offline
Зарегистрирован: 31.08.2015

Рисую печатную плату и хочу поменять ноги платы с STMкой для управлением ADG704. Достаточно ли в скетче заменит PB3(4) на PB13(14)?

MAG-N
MAG-N аватар
Offline
Зарегистрирован: 05.06.2017

Frolv пишет:

Рисую печатную плату и хочу поменять ноги платы с STMкой для управлением ADG704. Достаточно ли в скетче заменит PB3(4) на PB13(14)?

PB13 не прокатит - используется как SCK для дисплея.

Frolv
Offline
Зарегистрирован: 31.08.2015

MAG-N пишет:

Frolv пишет:

Рисую печатную плату и хочу поменять ноги платы с STMкой для управлением ADG704. Достаточно ли в скетче заменит PB3(4) на PB13(14)?

PB13 не прокатит - используется как SCK для дисплея.

Ошибся, тогда PB12 вместо PB3.

MAG-N
MAG-N аватар
Offline
Зарегистрирован: 05.06.2017

Тут пробовать надо, но выбор невелик - РВ12-15 это шина SPI2, в версии 3.4 РВ12 и РВ14 свободны, но как они будут себя вести при обращениях к дисплею - Х его З. РА11 и РА12 - USB, остаются РА9, РА10, РС13. Пробуйте, на управление ADG704 выставляются нолики-единички в зависимости от режима, можно даже тестером посмотреть.

Frolv
Offline
Зарегистрирован: 31.08.2015

поменял. на макетке все нормально. осталось развести плату (она в принципе частично уже разведена и спаяна ) с мультиплексором и проверить.

Frolv
Offline
Зарегистрирован: 31.08.2015

вот полуфабрикат https://cloud.mail.ru/public/39NG/3MJXinHW9 критика, пожелания и  исправления приветствуются.

MAG-N
MAG-N аватар
Offline
Зарегистрирован: 05.06.2017

Резисторов по 2К нет? Проще так

Frolv
Offline
Зарегистрирован: 31.08.2015

Да, на 1k резисторов у меня ну очень много, и они все из одной партии - соотношение будет точнее...

kloker
Offline
Зарегистрирован: 01.01.2019

с  двух 1к резюков получить 2к легко, только 8 бит R2R лепить смысла нет, погрешность сопротивления половины бита должна быть 0.2% на 8 битах, что почти нереально на рассыпухе. учитывайте еще разность переходных сопротивлений на вентилях пинов контроллера. потому ставят не 1к а 10к матрицы.

потому все ограничиваются 4-5 битами R2R матрицы, или ставят параллельные (R2R)ЦАП в готовом корпусе, там эти ньюансы уже учтены. 

но сигнал генератора гармонический, в сторону Дельта-Сигма ЦАП не смотрели? схема тоже банально проста. 

platnik
Offline
Зарегистрирован: 06.07.2019

Здравствуйте,подскажите кто-нибудь.Собрал по схеме Версия 2.5.Все работает,но вольтметр изначально сразу показывает 3.5 вольта,но измеряет правильно,в чем проблема,и ещё экран в полосах(5110),если смотреть по плоскости на них то они не заметны,это такой фон или что-то с контрастностью?Спасибо

 

Stanislav_2x
Stanislav_2x аватар
Offline
Зарегистрирован: 21.05.2019

platnik пишет:

Здравствуйте,подскажите кто-нибудь.Собрал по схеме Версия 2.5.Все работает,но вольтметр изначально сразу показывает 3.5 вольта,но измеряет правильно,в чем проблема,и ещё экран в полосах(5110),если смотреть по плоскости на них то они не заметны,это такой фон или что-то с контрастностью?Спасибо

 

Выходы вольтметра попробуй зашунтировать резистором 10К или меньше. Мне помогло.

Та же проблема со схемой v2.4 - экран вообще отваливается временами, то загорается когда хочет, то не работает, хотя схема работает дальше. 100 раз дёргал провода - никакого результата. И тоже полосы. Полосы исчезают при Vcc 4v и ниже.
Думается мне, что нужно входы данных дисплея ставить через резисторы 10К. На некоторых схемах видел, по пробую отпишусь.

kloker
Offline
Зарегистрирован: 01.01.2019

Nokia 5110 LCD работает от 3.3В, на 5В лезут глюки, зависит от экземпляра дисплея. потому и питание, и подсветку и сигнальные цепи лучше приводить к уровню 3.3В.

Выводы:

  • RST - Reset
  • CE - выбор чипа
  • DC - переключатель данные/инструкции
  • DIN - Serial Data Line
  • CLK - Serial Clock Line
  • VCC - питание (2.7 - 3.3В)
  • BL - подсветка
  • GND - земля
platnik
Offline
Зарегистрирован: 06.07.2019

Stanislav_2x и kloker спасибо,шунтирование выхода вольтметра,сбросило на ноль начальные показания, снижение напряжения входного даёт такие результаты - если не нужна подсветка,то 2.5 вольта убирают весь задний фон,изображение становится комфортным для просмотра, а с подсветкой оптимально 3.3в,но квадрат черный малевича на заднем фоне остается,но зато нет полос про которые шла речь ранее,спасибо.

MAG-N
MAG-N аватар
Offline
Зарегистрирован: 05.06.2017

Попробуйте с контрастностью поиграться: lcd.InitLCD(xx); xx - значение контрастности, вроде максимальное 127. Квадрат Малевича должен пропасть.

 

platnik
Offline
Зарегистрирован: 06.07.2019

сегодня попробую подать через делитель 2.5 вольта чисто на питание дисплея,а входное напряжение оставлю без изменений

MAG-N
MAG-N аватар
Offline
Зарегистрирован: 05.06.2017

Превышение входного напряжения над питающим не есть хорошо. Лучше запитать всю схему от 3.3В и выставить нужную контрастность lcd.InitLCD(xx); хх по умолчанию 70, попробуйте в пределах 50-70 и будет Вам счастье.

12val12
Offline
Зарегистрирован: 19.02.2019

Вопрос по версии 2.4 Подскажите как  красиво  изменить чтобы работало с другим кварцем  ( 24 Мгц)

переделал под триум марс  вверх ногами  ..доработок LCD5110_SSVS.h  всего две магическая цифра 27  и средний шрифт цифр поменял нижние байты с верхними 

 https://photos.app.goo.gl/bypQswqzsGCMXvyv5

никогда не делал никакие делители  линии данных через килоом  и питание тоже через килоом . 

MAG-N
MAG-N аватар
Offline
Зарегистрирован: 05.06.2017

12val12 пишет:

Вопрос по версии 2.4 Подскажите как  красиво  изменить чтобы работало с другим кварцем  ( 24 Мгц)

В скетче есть "магические цифры" 16000000, 8000000 и может ещё какие, их и попробуйте изменить.

12val12
Offline
Зарегистрирован: 19.02.2019

MAG-N пишет:

12val12 пишет:

Вопрос по версии 2.4 Подскажите как  красиво  изменить чтобы работало с другим кварцем  ( 24 Мгц)

В скетче есть "магические цифры" 16000000, 8000000 и может ещё какие, их и попробуйте изменить.

я думаю эту эмпирическую формулу тож надо модифицировать  ?

  uint32_t temp=(float)freq /0.095367431640625;