Cобрал генератор v2.3. Понадобился для одного проекта. Пока без выходного усилителя, не решил что лучше поставить, MCP6001 или что то другое. Самое сложное было энкодер придумать как сделать чтобы не торчал из корпуса. Это обычный энкодер, просто укороченный и уложенный на бок, а также укоротил ручку. Подумал сначала не буду 32 битный собирать, камня нет, сишка уже занята. Но может все таки соберу позже, интересные решения.
Спасибо Dimax
P.S. HEX проверял тут, самый удобный на мой взгляд. В IDE 1.8.8 сместить массив на нужный адрес не получилось, по рекомендации Dimax поставил 1.6.8 и сразу все стало как надо.
Dimax, можно ли изменить скетч для v.3.5 и v.3.6 чтобы выход СИшки на коммутатор работал синхронно с CLK2? Это нужно для выхода "чистого" сигнала СИшки на отдельный разъем.
si5351.set_freq(freq * 10ULL, SI5351_CLK1); //домножить на 10, т.к. нужна частота в сотых герца, а freq в десятых долях.
si5351.set_freq(freq * 10ULL, SI5351_CLK2); //домножить на 10, т.к. нужна частота в сотых герца, а freq в десятых долях.
Все четко с CLK2 отрабатывает до 225МГц, смотрел анализатором. Правда гармоник хренова туча!
venus, спасибо за подсказку!
P.S. MAG-N, действительно, заметил на CLK2 такую штучку: до 95МГц все нормально, после 95МГц частоты меняются, но и частота 95Мгц тоже остается. Это экспресс испытания, позже еще погоняю и отпишусь.
P.P.S. Рекомендую аппарат упаковать в металлический корпус - уровень гармоник резко падает.
В версии 3.5 добавил только одну строчку - si5351.set_freq((freq/10)* SI5351_FREQ_MULT, SI5351_CLK1);
Интересно, что также проявляется эффект на этот раз частоты 90МГц, а еще интереснее, что к ней добавляется еще и 100МГц (!), если частоту двигать дальше. При уменьшении частот - они уходят.
слабо представляю, как выглядит меандр 225MHz, причем с кучей гармоник, к которому до кучи добавились частоты 90Mhz и 100MHz. что за каша, можно ее заскринить? посмотреть сигнал в сотню-другую мегагерц мне просто нечем.
Due to the nature of the Si5351 architecture, there may only be one CLK output among those sharing a PLL which may be set greater than 100 MHz (actually specified at 112.5 MHz by SiLabs, but stability issues have been found at the upper end). Therefore, once one CLK output has been set above 100 MHz, no more CLKs on the same PLL will be allowed to be set greater than 100 MHz (unless the one which is already set is changed to a frequency below this threshold).
Немного кривой перевод - где взял, не помню, но вот это сохранилось.
"Одновременно на выходе можно генерировать только две уникальные частоты выше 112.5 МГц. Например, нельзя одновременно получить 125 МГц (CLK0), 130 МГц (CLK1) и 150 МГц (CLK2)."
Короче, на первом фото полоса сигнала 225МГц на анализаторе. venus, это для тебя фото
на втором фото генератор v.3.5 частота 80МГц и гармоника 160МГц
На третьем 140МГц и обещанные 90 и 100МГц
На четвертом v.3.6 и частота 150МГц. Так что в обеих версиях эти частоты присутствуют.
Я распинаюсь здесь не для того чтобы критиковать или что либо подобное. Это вариации на тему генератора, чтобы учитывать артефакты в своих конструкциях и при измерениях. Предположу, что возможно в Ваших аппаратах такого нет
Там, где 80 и 160, нормально, вторая гармоника. А вот дальше - кошмар. Может это результат "урезанной" версии данного кристалла - они, если верить даташиту, и на 8 "сосков" бывают.
Если не ошибаюсь, то говорил уже, что ребята на антенном анализаторе VNA v.2.0 с СИшки на гармониках до 3-х ГГц вытаскивают (VRTP.RU). Так что не удивляюсь
man_200, ну там же не фильтрованный синус на выходе. DDS на частотах, близких к собственной тактовой тактовой только на кратных частотах будет что-то симпатичное показывать. Все остальные частоты будут по форме кривые и косые. На осцилле это проявляется как изломы формы сигнала. На спектрометре -как высыпания левых частот. Так что думаю, что всё ОК, и мы наблюдаем то, что и должны наблюдать.
Частота сигнала на CLK2 постоянна и не изменяется (прошита на заводе). По схеме на ардуинку подключается CLK0, частота которого изменяется в процессе работы генератора, а управляет ею сама ардуинка. Вот такая взаимосвязь
Я как всегда нифига не понял. termak, сигнал CLK2 у меня по схеме висит в воздухе. И в программе тоже не включен. Тактирование МК идёт с CLK0 И пишите яснее, в каком режиме на каких выводах МК нет сигнала.
termak, у вас скорее всего не заводится МК от si5351. Возможно из-за соплей. Сделайте соединение si -> мк максимально качественным. Я правда у себя помимо кварца и конденсатор от PD0 отпаивал, может он ещё слегка фронты загибать..
termak, там есть система обнаружения проблем в тактировании. Чуть что -переключается на внутренний rc-генератор. Поэтому когда вы подключаете тактовый пин "в никуда", то мк автоматом переключается на 8МГц. И всё продолжает работать, но с дичайшими тормозами.
Продолжаем разговор...
Просто ночью не туда провод запаял, вот и работало кое-как.
А сейчас сделал правильно и опять - белый экран, потом свисток и черный экран...
Как-то можно это решить или что ставить новую плату ?
Модификация скеча никак не поможет ?
termak, попробуйте вернуть обратно кварц с конденсатором и залить версию 3.5, это даст понимание во внешнем ли тактировании дело, или косяк в чём-то ещё.
termak, ну значит что-то аппаратное. Ошибка подключения или неисправность . По идее сам генератор, если даже дисплей отвалился должен работать. Т.е. пиликать спикером, и на выходах что-то давать.
Termak видимо столкнулся с проблемой, которую я здесь выкладывал, но модератор всю переписку на эту тему стер.
Попробую ее кратко описать.
C CLK0 у меня МК тоже не запускался пока не заменил Ардуинку на точно такую-же плату, но или другой серии или другого производителя (надписи у них отличались качеством и толщиной шрифта). После этого все пошло.
Интересный факт с первой платой: после отключения цепи CLK0 от платы и восстановления на ней кварца, эта плата (с подключенными цепями генератора) так и не запустилась. После того, как ее выдрал из схемы - пошла как ни в чем не бывало!
Чтобы не менять плату - замени МК на ней (как вариант)
Предполагаю, что МК некоторых производителей не воспринимают сигналы низких уровней, в данном случае в системе запуска. Возможно такие (гнилые) платы не запускаются с нагруженными портами. Т.е. - вытащил из шилда, прошил, вставил обратно в шилд. Как бы одноразовой прошивки.
Как-то так.
P.S. Прошу модератора сообщение не убирать, может пригодиться будущим поколениям строителей генератора!
Всем доброго времени суток!
А какая модель энкодера использовалась первоначально? По ссылке (самое первое сообщение от топикстартера) выдаёт какую-то миниатюру и всё. Я так полагаю, это KY-040, или другие?
Повторил проект без Si5351 и мультиплексора. ПО 3.5. Пришлось закомментировать 50...52 строки в начале скетча - иначе всё зависало после заливки дисплея черным.
Почему то частота всех сигналов на выходе DDS меньше выставленной (примерно 0.74). Например на дисплее 50 Гц, реально 37 Гц. 100 - 74. 200 -147. 1 кГц - 737 Гц. 50 кГц - 37 кГц и т. д.
Вот синус 100 кГц.
И еще нестабильно работает джойстик. Вместо уменьшения может увеличить. Антидребезговая RC цепочка со схемы 3.6
Theodoro, если частота в PWM режиме соответствует, а в DDS нет -значит скомпилировалось не правильно. Можно либо разбираться почему, либо смириться подкорректировав константу dds_mpl_
Что за джойстик? Если имеется ввиду энкодер, то глючить (т.е. давать ложное срабатывание) он в теории может только при нажатии кнопки. При вращении алгоритм обработчика полностью исключает такое поведение. Если у вас при вращении глюки -значит есть аппаратные проблемы в подключении.
На счет дурацкой разводки земли сильное подозрение. К сожалению не силен. Плату нарисовал по-быстрому, с ошибками и побежал травить. Ну добавил еще тантал 100 мкФ и керамику по питанию. Наверное надо переделать.
Theodoro, делитель по входу B1 выглядит странно, как на выход, хотя это влиять и не должно на генерацию. Vbat не зацеплен на 3.3. ноги земляные я бы все зацепил на всякий случай.
Cобрал генератор v2.3. Понадобился для одного проекта. Пока без выходного усилителя, не решил что лучше поставить, MCP6001 или что то другое. Самое сложное было энкодер придумать как сделать чтобы не торчал из корпуса. Это обычный энкодер, просто укороченный и уложенный на бок, а также укоротил ручку. Подумал сначала не буду 32 битный собирать, камня нет, сишка уже занята. Но может все таки соберу позже, интересные решения.
Спасибо Dimax
P.S. HEX проверял тут, самый удобный на мой взгляд. В IDE 1.8.8 сместить массив на нужный адрес не получилось, по рекомендации Dimax поставил 1.6.8 и сразу все стало как надо.
Ну, на вкус и цвет... А себе вот так сделал
Dimax, можно ли изменить скетч для v.3.5 и v.3.6 чтобы выход СИшки на коммутатор работал синхронно с CLK2? Это нужно для выхода "чистого" сигнала СИшки на отдельный разъем.
наверное достаточно просто в скетче продублировать строки, в 3.5
si5351.set_freq( ... , SI5351_CLK0)
и в 3.6
si5351.set_freq( ... , SI5351_CLK1)
под CLK2
Если мне не изменяет мой склероз, у СИ-шки третий выход (CLK2) с какими-то ограничениями работает. Частота ограничена, или еще что, точно не помню.
Пришлось в двух местах дублировать строки с изменением CLK1 на CLK2 (v.3.6).
P.S. MAG-N, действительно, заметил на CLK2 такую штучку: до 95МГц все нормально, после 95МГц частоты меняются, но и частота 95Мгц тоже остается. Это экспресс испытания, позже еще погоняю и отпишусь.
P.P.S. Рекомендую аппарат упаковать в металлический корпус - уровень гармоник резко падает.
В версии 3.5 добавил только одну строчку - si5351.set_freq((freq/10)* SI5351_FREQ_MULT, SI5351_CLK1);
Интересно, что также проявляется эффект на этот раз частоты 90МГц, а еще интереснее, что к ней добавляется еще и 100МГц (!), если частоту двигать дальше. При уменьшении частот - они уходят.
Пробовал на CLK2 - 90 МГц также присутствует.
Интересно блин!
Хотелось бы узнать, что на ваших аппаратах.
слабо представляю, как выглядит меандр 225MHz, причем с кучей гармоник, к которому до кучи добавились частоты 90Mhz и 100MHz. что за каша, можно ее заскринить? посмотреть сигнал в сотню-другую мегагерц мне просто нечем.
man_200, из описания библиотеки:
Due to the nature of the Si5351 architecture, there may only be one CLK output among those sharing a PLL which may be set greater than 100 MHz (actually specified at 112.5 MHz by SiLabs, but stability issues have been found at the upper end). Therefore, once one CLK output has been set above 100 MHz, no more CLKs on the same PLL will be allowed to be set greater than 100 MHz (unless the one which is already set is changed to a frequency below this threshold).
Немного кривой перевод - где взял, не помню, но вот это сохранилось.
"Одновременно на выходе можно генерировать только две уникальные частоты выше 112.5 МГц. Например, нельзя одновременно получить 125 МГц (CLK0), 130 МГц (CLK1) и 150 МГц (CLK2)."
Блин, как вставлять текст забыл уже
Короче, на первом фото полоса сигнала 225МГц на анализаторе. venus, это для тебя фото
на втором фото генератор v.3.5 частота 80МГц и гармоника 160МГц
На третьем 140МГц и обещанные 90 и 100МГц
На четвертом v.3.6 и частота 150МГц. Так что в обеих версиях эти частоты присутствуют.
Я распинаюсь здесь не для того чтобы критиковать или что либо подобное. Это вариации на тему генератора, чтобы учитывать артефакты в своих конструкциях и при измерениях. Предположу, что возможно в Ваших аппаратах такого нет
Там, где 80 и 160, нормально, вторая гармоника. А вот дальше - кошмар. Может это результат "урезанной" версии данного кристалла - они, если верить даташиту, и на 8 "сосков" бывают.
Да, гармоник хватает. Правда измерения проводились через антенны и на свежем воздухе, так, что и с эфира сигналы лезли
145 МГц с генератора уверенно принимаются трансивером на частоте 435 МГц, выше попробовать нечем.
Если не ошибаюсь, то говорил уже, что ребята на антенном анализаторе VNA v.2.0 с СИшки на гармониках до 3-х ГГц вытаскивают (VRTP.RU). Так что не удивляюсь
man_200, ну там же не фильтрованный синус на выходе. DDS на частотах, близких к собственной тактовой тактовой только на кратных частотах будет что-то симпатичное показывать. Все остальные частоты будут по форме кривые и косые. На осцилле это проявляется как изломы формы сигнала. На спектрометре -как высыпания левых частот. Так что думаю, что всё ОК, и мы наблюдаем то, что и должны наблюдать.
Доброго времени суток.
Залил .bin из сообщ.130
Генератор работает если на PD0 подать сигнал с CLK2.
Синус, пила и пр. работает.
А вот перестраевемого меандра на МГц нет.
Вопрос: И что я неправильно сделал.
Частота сигнала на CLK2 постоянна и не изменяется (прошита на заводе). По схеме на ардуинку подключается CLK0, частота которого изменяется в процессе работы генератора, а управляет ею сама ардуинка. Вот такая взаимосвязь
Насколько я понял алгоритм работы
Я как всегда нифига не понял. termak, сигнал CLK2 у меня по схеме висит в воздухе. И в программе тоже не включен. Тактирование МК идёт с CLK0 И пишите яснее, в каком режиме на каких выводах МК нет сигнала.
Полностью согласен с Вашим утверждением.
Однако если PD0 подключить к любому из трех выводов CLK0, CLK1 или CLK2
информация на экране появится только при подключении к CLK2.
Далее с выхода DDS OUT есть перестраиваемые меандр, синусоида и пр. сигналы.
О ! появился с CLK1 есть Clock Gen.
Т.е. все как бы хорошо...
Вопрос только "почему CLK2", ну и сигналы могут появляться на выходах не сразу.
Спасибо за ответ.
P.S. Кстати на CLK2 нет никаких сигналов на CLK0 есть меандр (частоту не мерял).
Кварц снял.
termak, у вас скорее всего не заводится МК от si5351. Возможно из-за соплей. Сделайте соединение si -> мк максимально качественным. Я правда у себя помимо кварца и конденсатор от PD0 отпаивал, может он ещё слегка фронты загибать..
Да, Вы правы, провода достаточно длинные - 4 см.
Качество соединений, как мне кажется, нормальное.
Сейчас попробовал и без кварца и без CLK и без вообще каких либо подключений к плате в местах запайки кварца.
Работает как ни в чем не бывало. Как-то странно - может есть привязка к внутреннему тактированию ?
termak, там есть система обнаружения проблем в тактировании. Чуть что -переключается на внутренний rc-генератор. Поэтому когда вы подключаете тактовый пин "в никуда", то мк автоматом переключается на 8МГц. И всё продолжает работать, но с дичайшими тормозами.
Спасибо, dimax.
Убрал конденсатор - запустился от внешнего тактирования.
Продолжаем разговор...
Просто ночью не туда провод запаял, вот и работало кое-как.
А сейчас сделал правильно и опять - белый экран, потом свисток и черный экран...
Как-то можно это решить или что ставить новую плату ?
Модификация скеча никак не поможет ?
termak, попробуйте вернуть обратно кварц с конденсатором и залить версию 3.5, это даст понимание во внешнем ли тактировании дело, или косяк в чём-то ещё.
Так сразу ничего не получится.
Нет у меня кабеля USB тип С, что бы что-то залить - это теперь не раньше понедельника.
Есть STLINK, но нет .bin файла... Как-то всё не срастается.
termak, ну там же выложен архив aduino ide для V3.5 со всеми библиотеками. Скомпилить, и будет bin.
Скомпилировал. Зашил.
Вообще полный "ноль", только экран светится.
termak, ну значит что-то аппаратное. Ошибка подключения или неисправность . По идее сам генератор, если даже дисплей отвалился должен работать. Т.е. пиликать спикером, и на выходах что-то давать.
Вопрос:
в том виде в котором он сейчас есть - его показания на экране и на выходе генератора насколько сильно отличаются ?
может, скомпилилось криво. точно рабочие бинарники 3.5 под разные экраны были выложены у меня на http://venus.rontel.ru/gen/3.5/
Termak видимо столкнулся с проблемой, которую я здесь выкладывал, но модератор всю переписку на эту тему стер.
Попробую ее кратко описать.
C CLK0 у меня МК тоже не запускался пока не заменил Ардуинку на точно такую-же плату, но или другой серии или другого производителя (надписи у них отличались качеством и толщиной шрифта). После этого все пошло.
Интересный факт с первой платой: после отключения цепи CLK0 от платы и восстановления на ней кварца, эта плата (с подключенными цепями генератора) так и не запустилась. После того, как ее выдрал из схемы - пошла как ни в чем не бывало!
Чтобы не менять плату - замени МК на ней (как вариант)
Предполагаю, что МК некоторых производителей не воспринимают сигналы низких уровней, в данном случае в системе запуска. Возможно такие (гнилые) платы не запускаются с нагруженными портами. Т.е. - вытащил из шилда, прошил, вставил обратно в шилд. Как бы одноразовой прошивки.
Как-то так.
P.S. Прошу модератора сообщение не убирать, может пригодиться будущим поколениям строителей генератора!
Всем доброго времени суток!
А какая модель энкодера использовалась первоначально? По ссылке (самое первое сообщение от топикстартера) выдаёт какую-то миниатюру и всё. Я так полагаю, это KY-040, или другие?
ec11 видимо
Всем большое спасибо за помощь.
Вернусь из командировки буду разбираться.
Повторил проект без Si5351 и мультиплексора. ПО 3.5. Пришлось закомментировать 50...52 строки в начале скетча - иначе всё зависало после заливки дисплея черным.
Почему то частота всех сигналов на выходе DDS меньше выставленной (примерно 0.74). Например на дисплее 50 Гц, реально 37 Гц. 100 - 74. 200 -147. 1 кГц - 737 Гц. 50 кГц - 37 кГц и т. д.
Вот синус 100 кГц.
И еще нестабильно работает джойстик. Вместо уменьшения может увеличить. Антидребезговая RC цепочка со схемы 3.6
Theodoro, если частота в PWM режиме соответствует, а в DDS нет -значит скомпилировалось не правильно. Можно либо разбираться почему, либо смириться подкорректировав константу dds_mpl_
Что за джойстик? Если имеется ввиду энкодер, то глючить (т.е. давать ложное срабатывание) он в теории может только при нажатии кнопки. При вращении алгоритм обработчика полностью исключает такое поведение. Если у вас при вращении глюки -значит есть аппаратные проблемы в подключении.
Частота PWM соответствует. Пересчитал константу (на всякий пожарный обе -))) - теперь в норме.
Да, конечно, энкодер. Но какие могут быть аппаратные проблемы при подключении в трех соснах?
Спасибо!
Theodoro, да что угодно может быть. Сопли, коротыши, грязное питание, длинные провода к энкодеру, не оптимальная разводка земли, итп.
На счет дурацкой разводки земли сильное подозрение. К сожалению не силен. Плату нарисовал по-быстрому, с ошибками и побежал травить. Ну добавил еще тантал 100 мкФ и керамику по питанию. Наверное надо переделать.
Вот так, к примеру, не лучше будет?
Theodoro, делитель по входу B1 выглядит странно, как на выход, хотя это влиять и не должно на генерацию. Vbat не зацеплен на 3.3. ноги земляные я бы все зацепил на всякий случай.
я бы дорожку убрал
я бутербродом делал
я бутербродом делал
Как-то странно кнопка энкодера подключена - R и С на землю.