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

condensator80
Offline
Зарегистрирован: 24.02.2018

можно попробовать использовать MAX232- там как раз есть маломощный преобразователь

seri0shka
seri0shka аватар
Offline
Зарегистрирован: 19.11.2018

Тоже хотел предложить, потому и про потребление спрашивал. Платка с микрухой и всеми нужными детальками стоит копейки, и места занимает 1,5 кв. см. Но, с другой стороны, два диода и два конденсатора на ногу ардуины занимают ещё меньше места, и найти проще. 

Для обоих вариантов максимальный ток менее 10 мА, должно хватить.

condensator80
Offline
Зарегистрирован: 24.02.2018

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

condensator80
Offline
Зарегистрирован: 24.02.2018

хотя max сам по себе кушает неплохо, и греется. Хотя , в контроллере нужно место для кода шим- для этого преобразователя, и порт выделить....

seri0shka
seri0shka аватар
Offline
Зарегистрирован: 19.11.2018

condensator80 пишет:

хотя max сам по себе кушает неплохо, и греется. Хотя , в контроллере нужно место для кода шим- для этого преобразователя, и порт выделить....

Возможно, max232 много кушает при передаче интерфейса, но как преобразователь он берёт пару миллиампер (плюс то, что отдаёт в нагрузку), соответственно не греется никак. Недавно проводил измерения.

Для контроллера достаточно строчки в скетче, при этом один из пинов начинает работать повторителем тактового генератора. Недавно где-то встречал, знатоки подскажут.

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

Интересно откуда с выхода МК возмется отрицательное напряжение, которое Вы выпрямлять собрались?

Evg-Chugunov
Evg-Chugunov аватар
Offline
Зарегистрирован: 22.08.2015

240265 пишет:

Интересно откуда с выхода МК возмется отрицательное напряжение, которое Вы выпрямлять собрались?

Возьми с предыдущей страницы схему (где два диода и два конденсатора), и мысленно подключай точку out поочередно на питание и на землю. Делай так пока не возникнет просветление))).

Andry Smart
Offline
Зарегистрирован: 06.09.2016

жаль кнопки лайкнуть нет :)

max232 весьма устаревшая микруха.  ведь полно же преобрахователей даже в корпусе SMD транзистора и стоит копейки. но не вижу смысла МК спокойно справится, если ток большой не нужен.

seri0shka
seri0shka аватар
Offline
Зарегистрирован: 19.11.2018

Andry Smart пишет:

жаль кнопки лайкнуть нет :)


Как это нет! В правом верхнем углу поста стрелки.

sakatgg
Offline
Зарегистрирован: 09.03.2017

sakatgg пишет:

Electronik83, Сколхозил по быстрому на 5110 :) Запитывал через стаб на 3.3В

Проверил терминал, шустро выводит, роутер выключаю - практически мгновенно прекращается вывод , подключаю - продолжается.

На SSD1306 версии бы так ускорить вывод :) экран побольше расрешением всё-таки.

Может кому пригодиться, нашел простой мобильный способ работы с uart (без компа)  - прога Slick USB 2 Serial Term Pro (4pda) + Android с OTG + USB-RS232 адаптеры Profilic или FTDI (в моем случае кабель от Siemens MA-8730P)

 

AS31979
Offline
Зарегистрирован: 22.12.2015

Сделал двухполярку на MAX232, их и гамнистая же она на устойчивый запуск... В итоге от 17В на хх до 15В под нагрузкой, ни окаких 10 ма даже речь не идет, не тянет столько. Но 358 хватило, питание не просаживается вообще.

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

Покритикуйте такой вариант инвертора - конденсатор между ногой микроконтролера и затвором это защита от единицы при зависании микроконтролера или ошибке програмиста.

LM358 к сожалению СЛИШКОМ медленный, сервак режет разрешение - частоты 100, 500, 1 000, 2 000, 5 000, 10 000, 20 000 и 50 000 гц. Вход примерно 1 вольт переменки, выход 0,1 - 0,9 постоянки. Кому интересно полный скрин пишите на as31979@gmail.com

Кто может посоветовать операционик поприличнее, но чтобы не на вес золота и распространненый?

condensator80
Offline
Зарегистрирован: 24.02.2018

я применяю NE5532, довольно шустрый и недорогой оу, полоса пропускания 10 МГц, скорость нарастания - вроде как 9 в/мксек. для генераторов и осциллов на Ардуинках  - АЧХ такого Оу самое оно

seri0shka
seri0shka аватар
Offline
Зарегистрирован: 19.11.2018

AS31979 пишет:

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

Какая частота, какие ёмкости? Какой ток нагрузки пробовали?

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

AS31979

Я нередко использую AD823. Частота единичного усиления 17 МГц. Рейл-ту-рейл с полевиками на входе.

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

В своих осликах (Импульс-5110 и Импульс-7735) использую инвертор на МС34063.

Если найдете то неплохо TPS60400 - 60403. Нечто вроде ICL 7660, но на ток до 60 мА.

volodya198024
Offline
Зарегистрирован: 26.12.2016

Я использовал AD8032. 

smokok
smokok аватар
Offline
Зарегистрирован: 08.06.2018

Вот отыскал библу под ST7565 http://arduino.ru/forum/proekty/pultoskop-na-arduino-27mgts?page=37#comment-211685 (такой дисплей стоит в транзистор-тестере LCR-T4(T3)NoStripGrid). Распиновок в интернете хватает. Но наверное перерисовывать скетч осцила будет сложно чтобы подогнать под этот экран. А так в готовый ТТ влить скетч от diksen было бы круто. Тестер и осчил на большом экране))). Как это ещё китайцы пока не догадались? :)

AS31979
Offline
Зарегистрирован: 22.12.2015

Вынужден признатся что в сообщении Чт, 06/12/2018 - 22:09 #4011 дал неверную информацию, но тогда этого еще не знал и начал поиск замены LM358.

AD823, AD8042, AD8032 - по моему слишком жирно будет для Пультоскопа, самая дешовая от 2$...

Купил пару  NE5532 которые посоветовал condensator80 выводы полностью совпадают с LM358.

При попытке заменить в панельке LM358 на NE5532 меня ждал сюрприз - на макетной плате оказалась пара соплей, после их убивания картина резко поменялась.

LM358 - нагрузка напрямую на аналоговый вход, питание -8_0_+8 вольт.

NE5532 - нагрузка напрямую на аналоговый вход, питание -7_0_+7 вольт(жрет больше просело)

.

Переходные процесы NE5532 на нормальном осциографе начинают резать глаза примерно с 5 кГц, но совершенно не видны на маленьком экране 5110 Пультоскопа.

А вот завал заднего фронта LM358 уже различим даже на экране Пультоскопа.

Оба операционика без проблем отрабатывают синусоиду и треугольник, до 25 кГц Ардуино на 16 Мгц дает четкую картинку, 50 кГц видно, но уже дрожит, понять прямоугольник или синусоида/треугольник без проблем, но подробностей никаких.

 

 

 

apeks1
apeks1 аватар
Offline
Зарегистрирован: 19.05.2016

Лекс 59 пишет:

AS31979

Если найдете то неплохо TPS60400 - 60403. Нечто вроде ICL 7660, но на ток до 60 мА.

и обвес всего три смд конденсатора, можно добавить LC фильтр на выход

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

AS31979 пишет:

AD823, AD8042, AD8032 - по моему слишком жирно будет для Пультоскопа, самая дешовая от 2$...

Оба операционика без проблем отрабатывают синусоиду и треугольник, до 25 кГц Ардуино на 16 Мгц дает четкую картинку, 50 кГц видно, но уже дрожит, понять прямоугольник или синусоида/треугольник без проблем, но подробностей никаких.

AD8042 совсем не 2 доллара. Но это так, к слову.

Один из самых сложных сигнал для тестов осликов - меандр. На него и стоит ориентироваться. Чем больше максимальная скорость нарастания выходного сигнала ОУ, тем больше меандр будет похож на меандр, а не на трапецию.

Разводка корпусов стандартная практически у всех сдвоенных восьминогих операционников.

О ЛМ358, да собственно о любом ОУ. Чем больше коэффициент усиления мы выставим, тем сильнее ограничим полосу пропускания.

Загнали КУ = 10, например, частота упала в 10 раз. Ноги трапеции сильнее расползлись.

Если КУ не равен 1, то ЛМ358 плохо подходит даже для Пультоскопа.

seri0shka
seri0shka аватар
Offline
Зарегистрирован: 19.11.2018

Electronik83, вы так обнадёжили, мы ждём результат. Хотя бы промежуточный. После внезапной пропажи автора форума начинаешь опасаться подобного.

smokok
smokok аватар
Offline
Зарегистрирован: 08.06.2018

seri0shka, Все затоились в ожидании пред Новогодней версии 20 от Electronik83.

 

Похоже на то чувство когда ждёшь посылку из китая))), дойдёт или нет :)

Всех пультоскопщиков с Наступающим!!!

seri0shka
seri0shka аватар
Offline
Зарегистрирован: 19.11.2018

Фух, я уж думал, что-то с сайтом случилось - столько времени без сообщений.

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

Дак что тут ждать то... После того как память у микроконтроллера конилась - опечалился я чтот с этим пультоскопом. Хотел сделать "свой" адафрут под этот дисплей - не пошло. Достроил свой станок ЧПУ из струйных принтеров с лазером 2,5 ватт на борту - интерес к нему пока ослаб, но есть пару мыслей - надо проверить.  Работы навалилось еще тут.... К новому году не смогу скорее всего Вас порадовать. Еще токарный свой разобрал тут... надо обратно собирать..... В новогодние праздники может появиться время - позанимаюсь этим проектом.. Хотя че тут заниматься - собрать все в один код, но пишу я код очень долго, постоянно трясусь над каждым байтом - так меня ZX Spectrum приучил, вы уж простите, я просто мысленно представляю, как там та или иная строка будет транслироваться компилятором в машинный код, постоянно измеряю время выполнения того или иного куска программы... В планах сделать автоматику под этот дисплей, хотя она уже была сделана форумчанами, но я хочу сам - досконально чтобы все работало как надо, а не так - что, работает и ладно. Хочу понимать каждый символ исходника. Так что как то так:)

P.S. Мониторю эту ветку форума постоянно, но она как то не в ту степь ушла...

И всем спасибо, кто надеятся и верят в меня:) Очень сильно мотивирует:)

seri0shka
seri0shka аватар
Offline
Зарегистрирован: 19.11.2018

Какой глобальный подход! Мы в Вас верим и ждём. Только не отказывайтесь от анализатора. Помимо него всё остальное устраивает уже на сегодняшний день. И размер осциллограммы не уменьшайте, в последнем выложенном варианте отлично.

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

Andry Smart
Offline
Зарегистрирован: 06.09.2016

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

чем то похоже программирование атмеги 328  под такие задачи.  каждый байт на счету.

а под oled экранчик у вас не планируется?

Andry Smart
Offline
Зарегистрирован: 06.09.2016

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

чем то похоже программирование атмеги 328  под такие задачи.  каждый байт на счету.

а под oled экранчик у вас не планируется?

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

На 5110 закончу и портирую.

empirevv
Offline
Зарегистрирован: 09.11.2018

Очень-ОЧЕНЬ ждем! ) И под 5110 и под 1306 )))

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

Заметил одну особенность в коде пультоскопа (совершенно случайно) - все выводимые линии прямые! Т.е. рисуем линию либо по вертикали, либо по горизонтали.

Это даст очень много оптимизации к коду! Тот кто в теме, я думаю, понимает.... Аж руки зачесались, но надо спать идти.... Кароче можно жестко оптимизнуть этот адафрут, не теряя ничего... Попробую.... там еще textSize, и с Color`ом можно помутить....

UPD: В этом адафруте такая кривота! Или у меня может другое отношение к написаню кода.... Я пребываю в легком шоке. Килобайт свободной памяти я уже добыл, и оперативы свободной на несколько байт прибавилось:))

И как ваще можно назвать функцию drawFastVLine, если она тупо использует обычный drawLine, которая использует много вычислений, чтоб нарисовать линию с неким углом?

seri0shka
seri0shka аватар
Offline
Зарегистрирован: 19.11.2018

Пока вспомнил: Electronik83, скетч выкладывайте и на форуме, пожалуйста, а то с ЯД геморно скачивать (уж несколько раз сталкивался, чуть не час времени уходит у меня, архивы вообще битые, хорошо хоть пофайлово есть возможность). Хотя на этот раз, наверно, ещё и Адафрут будет?

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

seri0shka пишет:

Пока вспомнил: Electronik83, скетч выкладывайте и на форуме, пожалуйста, а то с ЯД геморно скачивать (уж несколько раз сталкивался, чуть не час времени уходит у меня, архивы вообще битые, хорошо хоть пофайлово есть возможность). Хотя на этот раз, наверно, ещё и Адафрут будет?

Ок. Будет Elofruit:) Тока тут пока не вяжется - разберусь:)

Я то думаю, зачем просят скетч по почте прислать... Теперь все понятно.

seri0shka
seri0shka аватар
Offline
Зарегистрирован: 19.11.2018

Electronik83 пишет:
тут пока не вяжется

 Так может "на потом" оставить? Народ ждёт, впереди выходные и праздники.)

Может сейчас есть что попроще для "поиграться"?

MIK22
Offline
Зарегистрирован: 09.02.2017

Electronik83

Это даст очень много оптимизации к коду! Тот кто в теме, я думаю, понимает.... Аж руки зачесались, но надо спать идти.... Кароче можно жестко оптимизнуть этот адафрут, не теряя ничего... Попробую.... там еще textSize, и с Color`ом можно помутить....

Сщединил я две библы для 5110 (PCD8544 и другую нашел в инете без GFX) все работает отлично есть кирилица, все функции для пультоскопа. Нет setCursor и setSize.Быстрая и занимает немного.

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

seri0shka
seri0shka аватар
Offline
Зарегистрирован: 19.11.2018

MIK22 пишет:

Единственный дисплей приказал долго жить.

Напишите свой город/регион, возможно, кто из единомышленников изъявит желание подарить или дать во временное пользование для опытов.

Кстати, я подключаю по трём пинам (2, 3, 4). В середине форума писали об этом. В последних прошивках просто менял строку 

"Adafruit_PCD8544 display = ......................"

на

"Adafruit_PCD8544 display = Adafruit_PCD8544(2, 3, 4, 6); //CLK,DIN,DC,RST(CE=GND) пины к которым у вас подключен дисплей"

Ну и Ресет по-другому, но в библиотеке остался. На картинке дисплей другой стороной нарисован, разобраться можно по надписям.

diksen
Offline
Зарегистрирован: 11.10.2013

я вот в поисках "лишних" пинов тоже ресет на ресет кидал. Но не всегда запускается(в ~10% не заводится  ). Это походу будет зависеть от того как они разведены;(дисплей у меня красный, ардуино про мини тоже китайский) Надо задержку какую-то мутить на пол секунды от ресета дуни на ресет экрана (мот на не555) 

библы от адафрута и дочерку PCD8544 я тоже обьеденял. и ногодрыг там был через DigitalWrite, я делал напрямую типа

// DIN на 4 пине порта D

#define DIN_HI  (PORTD |= 1<<4) 

#define DIN_LO  (PORTD &= ~(1<<4))
#define DIN_OUT (DDRD |= 1<<4)     //DIN   PD4 (пин4) как выход
 
и большинство переменных там int16_t (и экрана размеры и цвет...) на PCD8544 достаточто int8_8
 
троху меньше глобальной памяти стало ести на 1000 замеров ацп хватает в режиме паузы (а в рабочем режиме только на 255 забиваю - можно вообще на 80-ширину экрана) дык осцил перестал тормозить(наоборот колбасил экран как дурень - надо трохи пауз забить)
AS31979
Offline
Зарегистрирован: 22.12.2015

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

Вчера наконец слепил прототип имеющий право претендовать на название осцилограф, требования были такими:

Простота, крайне желательно чтобы он состоял из стандартных модулей с Алиэкспресс - банально лень заниматся ЛУТ, пайкой и т.д., да и дешевле получается чем самому паять(именно поэтому не подошол DSO168)

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

Достаточно высокое входное сопротивление - рекомендуемое максимальное сопротивление на входе АЦП Arduino 10 кОм и это на штатной частоте 9,6 кГц, но даже 10 кОм вполне способно внести искажения в работу многих схем.

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

Для проверки/наладки большинства тиристорных преобразователей и многих промышленных интерфейсов вполне хватет тех 25 кГц что достигаются даже на штатных 16 Мгц.

Вот что получилось:

Входное сопротивление 100 кОм, видел на форуме почти такой же входной тракт с входным сопротивлением в 1 МОм, входное напряжение +/- 0,6...0,7В(зависит от диодов VD4,VD5). Ввходное напряжение на АЦП при 0 на входе 0,5В(0 при входе -0,6В, 1В при входе +0,6В). Такое низкое напряжение выбранно потомы что быстродействие операционного усилителя зависит на только от типа операционика, но и от разницы напряжений напряжения питания и выходного напряжения - чем больше разница тем больше быстродействие.

Общение с дисплеем 5110 переведенно на пины А0-А4, входной сигнал на А7.

Выводы кнопок защищенны от ошибок при инициации выводов.

Данный операционик имеет приемлимые характеристики примерно до 50 кГц(прямоугольный сигнал).

 

AS31979
Offline
Зарегистрирован: 22.12.2015

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

Как выяснилось MT3608 допускает огромный диапазон индуктивности - я использовал феритовое кольцо от электронного баласта лампы.

Первичная обмотка 7-8 витков, вторичные примерно 20.

ВНИМАНИЕ имеет значение начало-конец обмоток, если неправильно присоеденить выпрямительные диоды выходное напряжение будет сильно заниженно!!!

А еще были найденны интересные и недорогие модули, да и сам магазин интересен - за доставки 1 преобразователя надо заплатить 0,69$, а за доставку 8 разных позиций одним заказом всего 0,9$:

https://ru.aliexpress.com/item/Power-module-2-8V-to-5-5V-input-plus-or-minus-12V-output-5V-turn-12V/32666568912.html?spm=a2g0s.9042311.0.0.5e3933ed4HvrRY

volodya198024
Offline
Зарегистрирован: 26.12.2016

Вот именно . Я тоже собирал его для ремонта тиристорных преобразователей. Опирационник был подключен по другой схеме. всё работало отлично. Но нужен ущё один вход. Это вход внешней синхронизации. Я сам не смогу его сделать. А он очень нужен, особенно когда работаешь с трёхфазной сетью. Просто развитие осциллогрофа движется в другую сторону. И всем не до этого. Прибор лежит и ждёт.

AS31979
Offline
Зарегистрирован: 22.12.2015

volodya198024  что именно нужно?

Я все равно буду ковырятся с анналоговыми кнопками, лишние входа есть.

Запуск АЦП при изменении с нуля на единицу на входе синхронизации?

Andry Smart
Offline
Зарегистрирован: 06.09.2016

а в скетче что то изменили?

AS31979
Offline
Зарегистрирован: 22.12.2015

В скетче менял только ноги, https://drive.google.com/open?id=1n9oR3iRKoXW7nag8LHjelyJvekq9u6O5

Основная цель полностью освободить один порт под возможное использование внешнего АЦП.  Это пока просто заготовка.

volodya198024
Offline
Зарегистрирован: 26.12.2016

В заводских  осциллогрофах есть (Синхронизация от сети). Тут  можно использовать аналоговый вход, подавать на него синусоиду от маленького трансформатора и от неё синхронизировать основной луч. Или цифровой вход как вы предложили  "Запуск АЦП при изменении с нуля на единицу на входе синхронизации"  Само железо я не боюсь. Но программер я вообще ни кто.  А приборчик-то нужный. Ешё проблема в том что тиристорные преобразователи изживают себя, на смену им приходит частотное регулирование. Я могу и не успеть этим прибором их по-тыкать. А частотники они скучные, они слишком умные, в них нечего ремонтировать. 

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

volodya198024, и всем, кто желает внешнюю синхронизацию - если использовать второй аналоговый вход для синхронизации - тогда максимальная частота (сэмплинг, или как там называется) упадет больше, чем в двое, т.к. придется обслуживать сразу два канала. А так - с синхрой можно подумать так то... Но я те старые просьбы не доделал и этот Медленный осц не сделал, как хотел... хм...

А шестифайловый скетч как сюда добавлять? У меня для ssd1306 вроде как было 4 файла.... И блин... оно скомпилировалось, и работает! :))) Я кста не профессиональный программист.... любитель...

AS31979
Offline
Зарегистрирован: 22.12.2015

Появилось время и желание, добрался до програмирования, вспомнил и автора и его родню - кнопки к пинам привязанны капитально, отгрызать прийдется по одной, да ще и в нескольких разных местах.

Как не смешно прицепить внешнюю синхронизацию оказалось в разы проще чем анналоговые кнопки - volodya198024 смотрите видео, если ничего не напутал это то что вам нужно:

https://www.youtube.com/watch?v=1V3eLyn668I

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

Изменений в коде аж шесть строк:

void Zamer(){
  if (razv>=6){ADCSRA = 0b11100010;}//delitel 4 
  if (razv==5){ADCSRA = 0b11100011;}//delitel 8
  if (razv==4){ADCSRA = 0b11100100;}//delitel 16
  if (razv==3){ADCSRA = 0b11100101;}//delitel 32
  if (razv==2){ADCSRA = 0b11100110;}//delitel 64
  if (razv<2){ADCSRA = 0b11100111;}//delitel 128

while(digitalRead(13)==HIGH) {if (digitalRead(7)==LOW)
{goto waiting_zero;} } 
waiting_zero:

while(digitalRead(13)==HIGH) {if (digitalRead(7)==HIGH)
{goto waiting_one;} }  
waiting_one:

  if (razv==0){  
      for(int i=0;i<700;i++){ 
          while ((ADCSRA & 0x10)==0);
          ADCSRA|=0x10;
          delayMicroseconds(500);  
          mass[i]=ADCH;
      }
  }

  if (razv>0){  
      for(int i=0;i<700;i++){ 
          
          while ((ADCSRA & 0x10)==0);
          ADCSRA|=0x10;
          mass[i]=ADCH;
      }
  }
}

Сразу поясняю как работает:

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

Если на D13 логическая еденица включается режим внешней синхронизации, но тут возникает вопрос - а не получится ли так что пока пултоскоп думал логическая еденица на D7уже наступила. Толку стартовать с непонятно какого места?

Вывод? - нужно дождатся окончания синхроимпульса, этим занимаются первые три строки моего дополнения.

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

Дальше все как в авторской программе.

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

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

Здесь не приведенно, но в отличии от автора я в заголовке принудительно прописал все используемые пины как входа/выхода, кому как везет - у меня если что то оставил подвешенным в воздухе оно ОБЯЗАТЕЛЬНО меня потом поимеет. У автора пультоскопа все явно наоборот!

 

 

progrik
Offline
Зарегистрирован: 30.12.2018

Electronik83 пишет:
Это даст очень много оптимизации к коду! Тот кто в теме, я думаю, понимает.... Аж руки зачесались, но надо спать идти.... Кароче можно жестко оптимизнуть этот адафрут, не теряя ничего... Попробую.... там еще textSize, и с Color`ом можно помутить....UPD: В этом адафруте такая кривота! Или у меня может другое отношение к написаню кода....
ну еще и в авторском коде пультоскопа даже меню вольтажа и линейки перерисовываются _каждый_(блин_зачем?)_раз_ с сигналом ))) уныло.

раз у тебя такой задор появился, и тут на тебя уповают) - есть пару наводок.

цвета - очень правильная мысль. цвет должен быть чтобы HI и LO байты были одинаковые. то есть, будет только 256 "интересных" цветов, ибо вот что делает для записи каждого пиксела библиотека: читает кусок одного порта, применяет маску, пишет обратно порт, читает кусок другого, маска, пишет, строб. фух. а строб это: порт->маска->запись->порт->маска->запись, фух еще раз. и это только HI байт мы записали... нам еще лоу по тому-же алгоритму...

вот и выходит, стандарный fillScreen(0) у меня выполнялся 200+ мс (или 400+, уже не помню), а покареженный мной за 23мс... там где-то в адафруте есть кусок, где if(цвет hi и lo одинаковые) - но криво, далеко, долго, а нам и проверять не надо, мы знаем...

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

если сумбурно пишу или не понятно - уже после праздников смогу выложить недоисходники, где я недоковырял немного кода, и теперь мой, например, "спектАскоп"))) - раз тут все коробченки "как-то по дебильному"(с Добкин) принято называть)), просчитывает не 1-3 фпс как у автора, а 150+ фпс (без хитрожопостей некоторых 50+) но зачем мне 150? дядька Наум Приходящий (мисль) подсказал прикрутить библиотеку fht. немного потыкав что куда, и ваши 256 захваченных семплов превращаются в 128 частотных весов всего за 10мс. очень здорово спектАскопом наблюдать, каким шумным и унылым г. оказалось питание юсб в твоем ахрененном новеньком бп за 70 баксов! )) а ты то думал... ну, до спектАскопа))... и звуковикам удобно смотреть ачх - на вход белый/розовый шум, на выход спектАскоп - вот и видно ачх девайса. иначе как для звука - вообще не вижу его. делал регулятор для вентилятора, шим смотришь всего 60КГц, потом 30.. потом 15.. - и не понимаешь, от чего такие пологие фронты - то ли мосфет тяжелый, то ли драйвер или его отсутствие виноваты, или питание. а как минимум - прибор не годен для меандра частотой выше вкл-выкл пальцами, токо очень быстро)) хорошо хоть увидел, где плохо к земле прижимались ворота, нафиг резисторы для разряда мосфета!)

в кратце так: сетАддр, колор, строб строб, строб строб, строб строб....)))) и не будет конца стробу... не забудь где-то вначале включить чипселект)

поддерживаю твою скурпулезность в подходе к коду)) и еше терпеть ненавижу, когда дисплей блин помигивает пуковками (КОТОРЫЕ НЕ МЕНЯЮТСЯ) 1+ раз в сек на 16 МГц или ска ваще на 70 МГц арм стм - шоб у вас кварцы поотсыхали!)))

еще была функция "образец синусоиды" - если усилок в критическом режиме, например, или еще какая фигня - на вход синусоида, стоп кадр (или ран, пофиг) и снизу как шаблон другим цветом рисуется широкая правильная высчитанная синусоида под твоей (автоматом определенной) амплитудой/частотой. а ты гляди - влазит/вылазит)) вот микрофонный усилок паял - один транзистор, явно будут проблемы с перекосами при максимальной амплитуде. включил - сразу увидел искажения. сверху "круглая" синусоида, снизу "острая". и "на глаз" становится намного точнее. добавил резюк ООС. с ООС все уже ОК. можно и % искажения считать. но кому это надо при такой точности ацп...

еще: все мелкие функции, учавствующие в других при рисовании делай дефайнами. можно и не мелкие. у меня drawline полностью написан дефайном. жрет память, только если вызывать более чем в одном фрагменте кода. рисуем только в одном месте. ничего, кроме гиперскорости ты не получишь) каждый вызов функции отожрет 10+ тактов, а если на каждый пиксель/линию их вызывать по несколько... мелочь, но мы же маньяки) и никаких inline - скорее всего компилятор подумает, что ты дурак, и не оптимизирует твою увесистую функцию в инлайн. дефайн же решает. думаю, ты знаешь, как функцию сделать дефайном?

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

ЗЫ: все сжато и сумбурно, я плохой архиватор мыслей) сорцы, хелпы, мысли, посильное участие, фото, видео - будет нужно - попробую не забыть адрес этого форума, скину)))

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

а, еще фонты. везде только ручные функции и те-же принципы. только я на это пока забил. слишком просто)) графика в 1530 линий рисуется 16 раз в сек, а стандарт.функ. шрифтом 2 строки ну мс 150 пауза была, ужос)) когда-то делал для часов вместо шрифта функцию - помнила предшествующую цифру, чтоб закрашивать/стирать фоном только изменяемые сегменты - очень шустро. можно и здесь применить. например, 2,05 потом 2,06 - одно дело в последней цифре пририсовать левую нижнюю ногу - готово)) или рисовать все цифры и фон предварительно приведя в печатный вид с плавающей точкой и... ТА ну нахер эти библиотеки. я пошуметь люблю.)) но только не тактовыми кнопками. ничего нет хуже. я сделал тач. свип вправо - развертка+, влево -, клик - много чего и где угодно. в режиме пауза я лишился возможности нежно ласкаться в звуках тактовой кнопки ТИК-ТАК-ТИК-ТАК-ТИК-ТАК-ТИК-ТАК-ТИК-... с тачем у меня просто... шшш.. шшш.. т.. (это если очень сильно усилить))) автор вроде не осилил тач?...

блин, ну я и нудный когда трезвый))

всем удачи и с наступающими! :)

seri0shka
seri0shka аватар
Offline
Зарегистрирован: 19.11.2018

progrik пишет:

блин, ну я и нудный когда трезвый))

Я сразу наоборот подумал- такой поток мыслей ))) Кстати, половину я так и не понял.

У меня тоже есть некоторые измышления по-поводу, но я специально не высказывал, чтоб не отвлекать уважаемого Electronik83. Человек может уделить проекту полчаса в сутки перед сном, а вы ему столько интересного, в результате новую рабочую версию увидим через год, если доживём.

Я считаю, что нужно сделать сначала версию под стандартный Адафрут, а дальше уже химичить с библиотеками.

volodya198024
Offline
Зарегистрирован: 26.12.2016

Ну вот теперь будет чем позаниматся в выходные. Спасибо AS31979. и Всех поздравляю с наступающим "Новым годом" У меня он наступит через 11 часов 35 мин .

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

Всех с праздником! ковыряю адафрут.....

smokok
smokok аватар
Offline
Зарегистрирован: 08.06.2018

Всех с Наступающим Новым годом!!!

(а я руссифицировал голосовую озвучку функций китайской муз. колонки)))).

Удачи в творчестве!

volodya198024
Offline
Зарегистрирован: 26.12.2016

Очень интересно. Есть у меня MP-3 модуль встроенный в Радиотехнику У-101. И мне очень даже противно слышать это кряконье при переключение режимов. Лучше-бы просто пик-пик.