Пультоскоп на Arduino 27МГц!!!

Electronik83
Offline
Зарегистрирован: 06.12.2015

Какую кратность еще?

Блин. Все учел с разгоном. Не могу понять, почему частота так скачет при разгоне и автоматической развертке...

У #define overclock 16 - нет типа. Он просто при компиляции подставляет вместо overclock число 16 и все!

Тип уже определяется в тех формулах которые написаны позже.

т.е. int freq = f * overclock; при компиляции дает

int freq = f * 16;

и тип определен как int в данном случае. 

Если не ясно изъяснил, никто не мешает погуглить....

Stashevskiy68
Offline
Зарегистрирован: 09.01.2017

для Electronik83

Все это понятно  ,но если мне не изменяет память int  автоматически отбрасывает дробную часть, и мы не получим требуемой точности коэфициента,может попробовать float . У меня был случай (из моей  практики) когда после выделения из суммы НДС, а потом начисления на эту сумму НДС давало разницу в 200 совецких рублей !!! так на одну копейку разницы влияла 8 цифра после нуля !!! может и в твоем случае  погрешность(округление) при вычислении коефиц. мешает синхронизации . 

а по поводу #define  -  кто знает как себя ведет прерпроцессор при формировании файла для компиляции ???  я этого дерьма с клиппером столько  нажрался.

Electronik83
Offline
Зарегистрирован: 06.12.2015

2 Winstonn - потести.... плз

https://yadi.sk/d/f2-55vHp3GSDeq

Это промежуточная бета версия, есть несколько неточностей, про которые я написал вначале комментария. Не надо шить в свои девайсы. Winstonn затестит на двух кварцах, и будет финальная версия. После теста Winstonn.

Winstonn
Winstonn аватар
Offline
Зарегистрирован: 25.02.2017

Electronik83 пишет:
Winstonn затестит на двух кварцах, и будет финальная версия. После теста Winstonn.

Будет сегодня вечером сделано.

Nikolaj666
Nikolaj666 аватар
Offline
Зарегистрирован: 19.01.2017

 

наконец-то дождался. есть скетчик потестить ?  3.2 inch TFT LCD screen module Ultra HD 320X480 ILI9381

откликается на " UTFT myGLCD(TFT32MEGA, 38,39,40,41); "

satelit 2
Offline
Зарегистрирован: 04.12.2016

может кому понадобиться- расспродажа дисплеев от старых моделей по 50 рублей. первый раз ссылку на сайт делаю, извеняюсь если битая получиться ufa gsm service http://ufa.gsm-service.info/ufa/catalog/displei_tachskrini/?sort=price . пришли мне парочка от сименса 65,  до сих пор курю, почему подсветка на 12 вольт

Electronik83
Offline
Зарегистрирован: 06.12.2015

Дак у них подсветка больше 12 вольт. В телефоне собрана повышалка. Там диоды подключены последовательно. И причем они должны питаться не напряжением, а током.

satelit 2
Offline
Зарегистрирован: 04.12.2016

тут ктото собирал на этом экране ls020, скиньте мыслю как посадить на 18650 аккум

по даташиту 200 кгц через транзистор на диод

Electronik83
Offline
Зарегистрирован: 06.12.2015

Я дак с телефона схему подсветки выпаивал и распаивал на своей плате. И помню писал под пик на ассемблере))). Схему телефона скачайте. Найти ее не сложно.

Winstonn
Winstonn аватар
Offline
Зарегистрирован: 25.02.2017

Протестил только осциллограф на кварцах 16, 24, 27, 30.

16 и 24 работает отлично.

27 - глюки на частоте выше 20 кГц. Частота отображается нормально, но нет нормального графика

30 - глюки при старте гаджета.

Мнусы - показания вольтметра при разных уровнях сигнала не соответствуют реальности (числа внизу и вверху - это уровень сигнала или деление шкалы?) , фото в папке: https://drive.google.com/drive/folders/0B8Cen3bTAimVTlJzQ3J3dU5YMTg?usp=sharing

Осциллограф мне твой однозначно понравился.

PWM-Генератор вообще чётко сделал, прям как я хотел, но под себя таки буду переделывать.

DDS-Генератор оставлю свой, мал золотник, да дорог.

ywor
Offline
Зарегистрирован: 16.01.2017

откликается на #include <UTFT.h>

UTFT g = UTFT(CTE32HR, 38, 39, 40, 41);

extern uint8_t BigFontRus[]; //Кирилица

extern uint8_t BigFont[];    //Латиница
Electronik83
Offline
Зарегистрирован: 06.12.2015

Спасибо тебе! Пока ты тестил, я тут опять код ужал (оптимизировал). Уже хочу завести себе дуину на 27. Будут идеи - делись.. Вместе  веселей и гараздо продуктивней!

Числа сверху и снизу справа - это максимальное и минимальное значения сигнала. Я думаю, что так комфортнее размах сигнала смотреть!

Хочу спросить еще: кнопки адекватнее стали нажиматься?

P.S. У меня сложилось такое ощущение, что код можно переделывать вечно. Я уж забыл, сколько с этим пультоскопом разбираюсь. Скоро у дуинки кончится кол-во перезаписей во флеши....

Winstonn
Winstonn аватар
Offline
Зарегистрирован: 25.02.2017

а это ты так и не добавил,.. ))) всё ещё зависает, когда из осциллоскопа выходишь

#include <avr/wdt.h>                               // это добавил с самом начале

while (flag_key-!digitalRead(key_down) || flag_key-!digitalRead(key_up)) {} 
    delay(1000);             
    wdt_enable(WDTO_30MS);                        //  а сюда вписал это  
    ResetAvr();  
Winstonn
Winstonn аватар
Offline
Зарегистрирован: 25.02.2017

Electronik83 пишет:
Хочу спросить еще: кнопки адекватнее стали нажиматься?

вроде отлично! ничего плохого не заметил

Electronik83
Offline
Зарегистрирован: 06.12.2015

ywor пишет:

откликается на #include <UTFT.h>

UTFT g = UTFT(CTE32HR, 38, 39, 40, 41);

extern uint8_t BigFontRus[]; //Кирилица

extern uint8_t BigFont[];    //Латиница

Я пока подзабил на этот дисплей. Надо начинать с меньшего. Хочу на мелком дисплее убрать все баги и прочее. А так в планах есть, но только на STM32, и было пару опытов вывода картинки на него. С атмега 2560 мне скорость вывода не устроила, но может позже посмотрю и чего нибудь сделаю. С стм32 - тоже медленно - видно отрисовку сигнала....

Electronik83
Offline
Зарегистрирован: 06.12.2015

Winstonn пишет:

а это ты так и не добавил,.. ))) всё ещё зависает, когда из осциллоскопа выходишь

#include <avr/wdt.h>                               // это добавил с самом начале

while (flag_key-!digitalRead(key_down) || flag_key-!digitalRead(key_up)) {} 
    delay(1000);             
    wdt_enable(WDTO_30MS);                        //  а сюда вписал это  
    ResetAvr();  

Ну да, не добавил.:)

ywor
Offline
Зарегистрирован: 16.01.2017

Electronik83 пишет:

ywor пишет:

откликается на #include <UTFT.h>

UTFT g = UTFT(CTE32HR, 38, 39, 40, 41);

extern uint8_t BigFontRus[]; //Кирилица

extern uint8_t BigFont[];    //Латиница

Я пока подзабил на этот дисплей. Надо начинать с меньшего. Хочу на мелком дисплее убрать все баги и прочее. А так в планах есть, но только на STM32, и было пару опытов вывода картинки на него. С атмега 2560 мне скорость вывода не устроила, но может позже посмотрю и чего нибудь сделаю. С стм32 - тоже медленно - видно отрисовку сигнала....

вот глянь на видео скорость http://yadi.sk/i/kmYl_Owm3GUBvW и второе http://yadi.sk/i/BMBUxhy83GUCLP

Лекс 59
Лекс 59 аватар
Offline
Зарегистрирован: 02.04.2016

satelit 2 пишет:

тут ктото собирал на этом экране ls020, скиньте мыслю как посадить на 18650 аккум

по даташиту 200 кгц через транзистор на диод

Я сажал через повышающий преобразователь. Простейший случай - через китайский DC-UP. Которые рублей по 50.

Я делал под него модуль сопряжения со встоенной повышалкой на МС34063   https://yadi.sk/d/ck7C0c8932sH5M

Там при настройке важно не превысить ток 20 ма на подсветку. Я остановился на 14 ма.

Nikolaj666
Nikolaj666 аватар
Offline
Зарегистрирован: 19.01.2017

ywor пишет:

откликается на #include <UTFT.h>

UTFT g = UTFT(CTE32HR, 38, 39, 40, 41);

extern uint8_t BigFontRus[]; //Кирилица

extern uint8_t BigFont[];    //Латиница
 

поделись шрифтом. я несколько пробовал - не получилось. у тебя файл с расширением " .с " в папке с пректом ?

Electronik83
Offline
Зарегистрирован: 06.12.2015

ywor пишет:
вот глянь на видео скорость

Глянул. А ты растяни сигнал на весь экран и будут тормоза. Кнопки ваще не адекватные становятся. Позже позанимаюсь этим экраном. Пока играюсь с мелким, пока идеи есть.

sirota
Offline
Зарегистрирован: 18.08.2015

Electronik83 пишет:
ywor пишет:
вот глянь на видео скорость
Глянул. А ты растяни сигнал на весь экран и будут тормоза. Кнопки ваще не адекватные становятся. Позже позанимаюсь этим экраном. Пока играюсь с мелким, пока идеи есть.

Я даже больше скажу. 4 ядреный проц по 1 с гаком ГГц такое разрешение с трудом, по 16 битной кажется шине, 25-30 фпс давит. А тут и подавно.

Electronik83
Offline
Зарегистрирован: 06.12.2015

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

Winstonn
Winstonn аватар
Offline
Зарегистрирован: 25.02.2017

Electronik83 пишет:

Уже хочу завести себе дуину на 27. Будут идеи - делись..


Идея ! ты не впаивай кварц в плату, а сделай под него гнездо. Я вчера как раз это проделал и удобно протестил целый ряд кварцев. По высоте это +5мм, но для настройки и отладки незаменимо.

sirota
Offline
Зарегистрирован: 18.08.2015

Winstonn пишет:
Electronik83 пишет:

Уже хочу завести себе дуину на 27. Будут идеи - делись..

Идея ! ты не впаивай кварц в плату, а сделай под него гнездо. Я вчера как раз это проделал и удобно протестил целый ряд кварцев. По высоте это +5мм, но для настройки и отладки незаменимо.

Если не мега 2560, то просто прошить загрузчик под нужную частоту и все проблемы. будет и пршивка и uart нормально работать. Без всякого.

ywor
Offline
Зарегистрирован: 16.01.2017

Nikolaj666 пишет:

ywor пишет:

откликается на #include <UTFT.h>

UTFT g = UTFT(CTE32HR, 38, 39, 40, 41);

extern uint8_t BigFontRus[]; //Кирилица

extern uint8_t BigFont[];    //Латиница
 

поделись шрифтом. я несколько пробовал - не получилось. у тебя файл с расширением " .с " в папке с пректом ?

вот http://mega-avr.ucoz.ru/publ/arduino_mega2560_biblioteka_utft_vyvod_kirilicy/1-1-0-29

Electronik83
Offline
Зарегистрирован: 06.12.2015

sirota пишет:
Если не мега 2560, то просто прошить загрузчик под нужную частоту и все проблемы. будет и пршивка и uart нормально работать. Без всякого.

Можно поподробнее?

sirota
Offline
Зарегистрирован: 18.08.2015

Electronik83 пишет:
sirota пишет:
Если не мега 2560, то просто прошить загрузчик под нужную частоту и все проблемы. будет и пршивка и uart нормально работать. Без всякого.
Можно поподробнее?

http://homes-smart.ru/index.php/oborudovanie/arduino/avr-zagruzchik

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

Electronik83
Offline
Зарегистрирован: 06.12.2015

Пишет "Частота: 27000000 гц. Вне диапазона частоты м/к !". ((((

sirota
Offline
Зарегистрирован: 18.08.2015

Electronik83 пишет:
Пишет "Частота: 27000000 гц. Вне диапазона частоты м/к !". ((((

Следовательно идем дальше и читаем о том как это вообще делается. Именно на этом сайте 27МГц я не пробовал, 24 точно. А 27 делал руками. Но опять же это почти под все мег окромя 2560 и 1280

Stashevskiy68
Offline
Зарегистрирован: 09.01.2017

 а как вам идея вместо генеретора синусоиды использовать DFPlayer Mini MP3 . масса преимуществ!!!

1. автономная работа. возможность работы параллельно с осцилографом.   частота ограничена 20кГц

2 регулеровка  амплитуды выходного  сигнала. 

3.возможно записать  WAV и MP3  с любой формой сигнала , а так-же различные шумы и тестовый  музыкальный материал ( имеется большое кол-во тестовых дисков.)  а если прицепить динамик то развлечь себя во время работы любимой музыкой.

4 возможность создать голосовое сопровождение вольтметра и частотометра.  любых цифр и действий.

5.минимальные размеры 

6. возможность значительно упростить создание подпрограммы для снятия АЧХ .

 и т.д.

Звуковой модуль DFPlayer Mini MP3 Module Arduino

 

Electronik83
Offline
Зарегистрирован: 06.12.2015

Stashevskiy68 пишет:

 а как вам идея вместо генеретора синусоиды использовать DFPlayer Mini MP3 . масса преимуществ!!!

Идея замечательная - едет мне пару платок, но концепт пультоскопа не предусматривает лишнего обвеса. Я бы лучше вход нормальный на осцилл сделал, чем мп3 городить (для начала). А идея хороша....

Electronik83
Offline
Зарегистрирован: 06.12.2015

Winstonn пишет:
Идея ! ты не впаивай кварц в плату, а сделай под него гнездо. Я вчера как раз это проделал и удобно протестил целый ряд кварцев. По высоте это +5мм, но для настройки и отладки незаменимо.

Это все хорошо, но тогда под разные кварцы придется перекомпилировать постоянно скейтч. Да и на моих дуинах-микро не впаять панель под кварц - изначально стоит слишком мелкий.

С оптибутом чета вломы разбираться как то... Почему то не люблю чужой код.

Хотя чужой код читать и понимать очень полезно для себя. Много чего нового узнаешь. И меняется стиль написания. Я в последнее время много библиотек перелопатил - интересно, на самом деле. Главное не бояться. Учишься чужому опыту, на деле. Как то так. Хотя человек, который меня учил программированию - всегда говорил - смотри чужие исходники - это поможет тебе. И вот, спустя несколько лет я только это понял. Так что совет вам всем - учитесь на чужом, думать еще надо и тогда оптимизация и правильное написание кода придет к Вам! Всем удачи))) и позитива)))

ywor
Offline
Зарегистрирован: 16.01.2017
Electronik83
Offline
Зарегистрирован: 06.12.2015

Winstonn пишет:

а это ты так и не добавил,.. ))) всё ещё зависает, когда из осциллоскопа выходишь

#include <avr/wdt.h>                               // это добавил с самом начале

while (flag_key-!digitalRead(key_down) || flag_key-!digitalRead(key_up)) {} 
    delay(1000);             
    wdt_enable(WDTO_30MS);                        //  а сюда вписал это  
    ResetAvr();  

У меня так ваще не работает, проц висит на ватчдоге, постоянно ресетится. Это видно из за автодетекта кнопок. Хотя изначально кнопки надо назначать на вход функцией pinMode(key_xxx, INPUT). Но тогда диод на плате, подключенный к 13-му пину мешает сиьлно.

Electronik83
Offline
Зарегистрирован: 06.12.2015

С внешним АЦП веселей всегда. Еще бы дисплейчик быстрый найти.......

Electronik83
Offline
Зарегистрирован: 06.12.2015

Stashevskiy68 пишет:

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

С прокруткой и линейкой есть очень удобная функция map(...) - очень полезная в данном случае...

Везде, где нужна прокрутка, я бы map использовал:)) Ну и для датчиков - они просто шикарна. Только не стоит ей злоупотреблять - долгая она.

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

Electronik83 пишет:

 Еще бы дисплейчик быстрый найти.......

Дисплеи и так все быстрые. Скорости не хватает у МК . Выход самому писать драйвер на ассемблере. Или применять монохромный 128 х 64 как в параллельно ветке http://arduino.ru/forum/proekty/virtos-samyi-prostoi-dvukhluchevoi-ostsillograf-ostsillograf-na-arduino

 

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

Прошу прощения, что не по теме...Просто хочу похвастаться. Вчера пришел

Теперь у меня два "пультоскопа". Что порадовало, старичок ОМЛ не подводит! На осциллографах "прямоугольный сигнал" с генератора транзистортестера (щупы подключены вместе). Сигнал по виду совсем не прямоугольный. Не знаю кто виноват...или генератор или осциллографы

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

Плохо видно частоту . На выходе генератора последовательно резистор есть ? Если есть то или уберите ли поставьте параллельно ему частотно -  компенсирующий конденсатор.

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

С резистором получается вот это

https://ru.wikipedia.org/wiki/RC-%D1%86%D0%B5%D0%BF%D1%8C

Joiner
Offline
Зарегистрирован: 04.09.2014

240265 пишет:

Плохо видно частоту . ........

Ну, да...фотка не очень удачная...Но все-таки видно. Справа сверху экрана Хантека видно 2.000 Мгц,  внизу справа видно 1.997 Мгц, и по клеточкам...вверху около меню на экране Хантека видно 200 наносекунд на клеточку, считаем 2.5 клеточки - это 500 наносекунд, делим 1 на 500 наносекунд, получаем 2000000 герц.

А по поводу компенсирующего конденсатора.... Мне просто интересно, у кого искаженный сигнал, у осциллографа или генератора. Надо будет поискать хороший генератор и посмотреть сигнал с него.

Еще попробовал програмку ПК-генератор сигналов. Выводил со звуковой карты синусоиду, меандр и треугольник. Звуковуха моего старенького ноута смогла выдать сигнал только до 14 килогерц. Синусоида на осцилографах идеальной формы, а вот меандр и треугольник ни в какие ворота. Оба сигнала похожи на задницу, одна потолще, другая потоньше, но ни как не прямогольник или треугольник.

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

Возмите 2 МГц сигнал прямо с ноги МК там четкий прямоугольник

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

На счет ПК , там низкие частоты.

Joiner
Offline
Зарегистрирован: 04.09.2014

240265 пишет:

С резистором получается вот это

https://ru.wikipedia.org/wiki/RC-%D1%86%D0%B5%D0%BF%D1%8C

240265 пишет:

Возмите 2 МГц сигнал прямо с ноги МК там четкий прямоугольник

Спасибо, попробую. И по ссылочке побалуюсь, посмотрю как на осциллографе выглядит влияние RC.

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

Electronik83 пишет:
Пишет "Частота: 27000000 гц. Вне диапазона частоты м/к !". ((((

Скачайте исходники оптибута, и строкой omake.bat  AVR_FREQ=27000000L atmega328  скомпилируйте свой лоадер.

aliveforever
Offline
Зарегистрирован: 24.03.2011

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

не искючаю тот факт, что я косорукое чудовище

bulat943
Offline
Зарегистрирован: 19.09.2016

кнопки не подтянуты к питанию резисторами,если прошивку не изменяли

aliveforever
Offline
Зарегистрирован: 24.03.2011

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

bulat943
Offline
Зарегистрирован: 19.09.2016

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

а скетч сохранился?