[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 2 из 2
  • «
  • 1
  • 2
Модератор форума: RD3AVJ  
Форум » форумы » В разработке » осциллограф (начинаем...)
осциллограф
bulatДата: Вторник, 04.07.2017, 22:30 | Сообщение # 51
Группа: Проверенные
Сообщений: 96

Статус: Offline
наконец то я и дома!
удалось обрезать библиотеку ili9341,теперь памяти занято 66 %,первая версия готова,но думаю все таки переделывать на тачскрин,оба варианта выложу


 
bulatДата: Понедельник, 02.10.2017, 19:40 | Сообщение # 52
Группа: Проверенные
Сообщений: 96

Статус: Offline
Вот,все в архиве



Сообщение отредактировал bulat - Вторник, 03.10.2017, 06:34
 
pchela5Дата: Пятница, 06.10.2017, 12:22 | Сообщение # 53
Группа: Проверенные
Сообщений: 84

Статус: Offline
Куда девал сокровища убенной тобой тещи? архив?

 
bulatДата: Суббота, 07.10.2017, 19:11 | Сообщение # 54
Группа: Проверенные
Сообщений: 96

Статус: Offline
увы,все работало,но при попытке вставить в корпус треснул экран (кривые руки...),есть пееделанный хамелеон,готовлюсь выложить...
вот файлы
Прикрепления: 05_10_2017_001.bas(12.6 Kb) · hx8357_11_16.inc(13.4 Kb) · 9982071.font(4.0 Kb) · 7128995.font(11.3 Kb) · ADCREAD_asm_15.inc(50.8 Kb) · 05_10_2017_001.hex(66.7 Kb)


 
bulatДата: Четверг, 09.11.2017, 17:46 | Сообщение # 55
Группа: Проверенные
Сообщений: 96

Статус: Offline
а это хамелеон
наверно никого не интересует,выложу на коте
Прикрепления: 4776154.jpg(175.5 Kb)




Сообщение отредактировал bulat - Пятница, 10.11.2017, 20:19
 
bulatДата: Вторник, 28.11.2017, 15:27 | Сообщение # 56
Группа: Проверенные
Сообщений: 96

Статус: Offline
продолжение на коте
Прикрепления: 7118944.jpg(201.4 Kb)




Сообщение отредактировал bulat - Вторник, 28.11.2017, 15:27
 
bulatДата: Понедельник, 08.01.2018, 09:56 | Сообщение # 57
Группа: Проверенные
Сообщений: 96

Статус: Offline
Итоговая прошивка,схема,плата,исходники варианта Хамелеона на ILI9341 SPI,кварц 16 МГц,для своего кварца достаточно перекомпилировать,изменив значение кварца в 2-х строчках
$crystal = 16000000       'частота кваца для компилятора
const f_qvarca = 16       'частота кварца в мгц  для подсчета развертки
будут вопросы задавайте
Прикрепления: HAMELEON_D2_ILI.zip(461.8 Kb)


 
kip96Дата: Понедельник, 08.01.2018, 21:42 | Сообщение # 58
Группа: Свой человек
Сообщений: 170

Статус: Offline
Отлично, и плата есть. Проверенная. Заказывал, или сам делал? Много переходных отверстий.

 
bulatДата: Понедельник, 08.01.2018, 21:57 | Сообщение # 59
Группа: Проверенные
Сообщений: 96

Статус: Offline
первую плату заказывал у влада с кота,собран по схеме D2 CUBE на LS020,работает до сих пор,вторую плату-для ILI9341, делал сам лутом

 
pchela5Дата: Вторник, 09.01.2018, 16:56 | Сообщение # 60
Группа: Проверенные
Сообщений: 84

Статус: Offline
Молодец! Дожал-таки!

 
bulatДата: Четверг, 11.01.2018, 20:21 | Сообщение # 61
Группа: Проверенные
Сообщений: 96

Статус: Offline
дожал,сам не верил,по быстроте быстрее разогнанного DSO138,результатом доволен,осталось дело за корпусом

 
pchela5Дата: Пятница, 12.01.2018, 10:00 | Сообщение # 62
Группа: Проверенные
Сообщений: 84

Статус: Offline
На 27Мгц устойчиво работает?

 
bulatДата: Пятница, 12.01.2018, 17:49 | Сообщение # 63
Группа: Проверенные
Сообщений: 96

Статус: Offline
устойчиво,ничего такого не заметил

 
bulatДата: Понедельник, 18.06.2018, 19:46 | Сообщение # 64
Группа: Проверенные
Сообщений: 96

Статус: Offline
Переделал на нокиа5110,красота!

 
pchela5Дата: Среда, 04.07.2018, 10:54 | Сообщение # 65
Группа: Проверенные
Сообщений: 84

Статус: Offline
Цитата bulat ()
Переделал на нокиа5110,красота!
Где красота? Не запостил - не было ничего! ))))))) Выложишь исходники? Это дисплей от 3110? Монохром?


 
bulatДата: Пятница, 06.07.2018, 21:21 | Сообщение # 66
Группа: Проверенные
Сообщений: 96

Статус: Offline
к сожалению здесь это никого не заинтересовало,выложил  тут


 
pchela5Дата: Пятница, 06.07.2018, 21:59 | Сообщение # 67
Группа: Проверенные
Сообщений: 84

Статус: Offline
Цитата bulat ()
к сожалению здесь это никого не заинтересовало
Я списывался с Виктором, он сильно занят и забросил этот замечательный сайт. По хорошему, надо пару модераторов, тогда можно воскресить.


 
pchela5Дата: Суббота, 07.07.2018, 14:08 | Сообщение # 68
Группа: Проверенные
Сообщений: 84

Статус: Offline
Цитата bulat ()
,выложил  тут
не могу я там зарегестрироваться - выложи здесь, плиз


 
pchela5Дата: Понедельник, 09.07.2018, 14:24 | Сообщение # 69
Группа: Проверенные
Сообщений: 84

Статус: Offline
Цитата pchela5 ()
не могу я там зарегестрироваться - выложи здесь, плиз
Зашел с другого браузера - кинь исходник в личку плиз - я хочу на другой АЦП перевести схему.


 
bulatДата: Понедельник, 09.07.2018, 21:02 | Сообщение # 70
Группа: Проверенные
Сообщений: 96

Статус: Offline
Отправил,надеюсь,вы там подскажете что можно улучшить и оптимизировать

 
pchela5Дата: Вторник, 10.07.2018, 13:23 | Сообщение # 71
Группа: Проверенные
Сообщений: 84

Статус: Offline
Архив битый

 
bulatДата: Вторник, 10.07.2018, 18:08 | Сообщение # 72
Группа: Проверенные
Сообщений: 96

Статус: Offline
странно,вот



Сообщение отредактировал bulat - Вторник, 10.07.2018, 20:01
 
pchela5Дата: Среда, 11.07.2018, 09:53 | Сообщение # 73
Группа: Проверенные
Сообщений: 84

Статус: Offline
Может у тебя RAR какой нибудь-особенный? Перезалей в зип например.

 
bulatДата: Среда, 11.07.2018, 22:48 | Сообщение # 74
Группа: Проверенные
Сообщений: 96

Статус: Offline
удалил архив



Сообщение отредактировал bulat - Четверг, 12.07.2018, 18:59
 
pchela5Дата: Четверг, 12.07.2018, 09:48 | Сообщение # 75
Группа: Проверенные
Сообщений: 84

Статус: Offline
Начиная с версии 5 в WinRAR добавлена поддержка нового архивного формата RAR5, несовместимого с предыдущим форматом, но использующего то же расширение RAR. С появлением RAR5 предыдущий формат файлов RAR теперь именуется RAR4. WinRAR версии 5 может создавать/изменять/распаковывать архивы RAR4, тогда как более старые версии WinRAR несовместимы с архивами RAR5 (при попытке распаковать архив RAR5 с помощью WinRAR версии 4 и ниже выдаётся сообщение о том, что архив повреждён или имеет неизвестный формат).

Я стар, я просто супер стар!!! Пришлось качать и устанавливать. Буду смотреть. СПАСИБО!


 
pchela5Дата: Четверг, 12.07.2018, 11:30 | Сообщение # 76
Группа: Проверенные
Сообщений: 84

Статус: Offline
По схемотехнике - у меги328 фьюзом можно задать выход тактирования системной шины на ногу PB0 CLKO, Divided System Clock
Это буферированный выход системного тактового сигнала. Если включен прескалер (регистр CLKPR), то и на этот выход идет после прескалера. Увеличится помехоустойчивость системы, ИМХО. Оять же, можно данную фичу использовать для снижения тактирования АЦП аж до 256 раз, тем самым повысив кол-во режимов развертки. 
На вход можно попробовать подключить трансил диоды на 5 вольт - они помогут спасти ОУ от статики или большого напряжения.
Выковырять их можно из материнских плат возле ЮСБ 6-тиногие SOT-23 ну или из винчестеров по каналу 5 вольт.
Для контроля вкл/выключения и питания АЦП есть резон поставить стабилизатор типа LP2985-3.3 вольта, а его включать ногой контроллера, который будет ложиться спать и просыпаться от внешнего прерывания. Как это сделать, я покажу - сам я разобрался. Это будет хорошая замена ключам на транзисторах.
Для большей гибкости в библиотеке можно при необходимости заменить SPI на шифтаут:
' Spiout D3310value , 1
Shiftout D3310da , D3310clk , D3310value , 1
Таким образом, нам не нужен будет программный эмулятор SPI и повесить дисплей можно на любые ноги.
Также можно удалить из библы ненужные символы - снизится объем памяти.
Остальное погляжу, но работа проделана хорошая! Молодец!
PS Поглядел. Если прибор дальше не будет усовершенствоваться, то либу ADCREAD_vers_5 можно оставить как есть. В противном случае надо ее причесать - уж больно грубо решены временные задержки. http://www.bretmulvey.com/avrdelay.html - вот тебе в помощь.
В материнках кварцы кажется на 25 МГц стоят - с ними удобней будет делать стандартную шкалу развертки: http://www.electroclub.info/article/oscillograf_files/ris-18.jpg




Сообщение отредактировал pchela5 - Четверг, 12.07.2018, 16:07
 
bulatДата: Четверг, 12.07.2018, 18:54 | Сообщение # 77
Группа: Проверенные
Сообщений: 96

Статус: Offline
Насчет PB0  знаю,но проще тактировать прямо от кварца атмеги328,работает на ура
Контроль питания-пробовал как вы описали,мои LP2985 почему-то не выключаются до конца при 0 вольт на выв 3-на выходе около полувольта,китай,что скажешь...
Выводы подключения к 5110-так сделано специально,чтоб было проще заменить дисплей (при соответствующей прошивке),пробовал переделывать на ILI9341,ST7735,там программный аппаратный SPI работает быстро
Символы можно и удалить-не вопрос
Никаких материнок у меня нет,и не было никогда,покупать ее ради раздербана на запчасти слишком дорого
насчет винрар-если снес 5.50 и поставлю 4-ю




Сообщение отредактировал bulat - Четверг, 12.07.2018, 19:09
 
pchela5Дата: Четверг, 12.07.2018, 19:28 | Сообщение # 78
Группа: Проверенные
Сообщений: 84

Статус: Offline
Цитата bulat ()
LP2985 почему-то не выключаются до конца при 0 вольт на выв 3-на выходе около полувольта,китай,что скажешь...
Что-то с схемотехникой не так, вряд ли китай виноват. Может паразитное питание идет через диоды атмеги. Если старых материнок нет - можно поставить стабилитрона на 4.7 встречно-параллельно. Жалко ОУ. В программу отрисовки надо въезжать - сходу не сообразишь. Видео понравилось.


 
bulatДата: Четверг, 12.07.2018, 20:24 | Сообщение # 79
Группа: Проверенные
Сообщений: 96

Статус: Offline
Цитата pchela5 ()
В программу отрисовки надо въезжать - сходу не сообразишь
экран 5110-48*84,вернее 6 строк по 84 точки по горизонтали,итого 6*84=504
создан экраный буфер на 504 значения,очищаем буфер,потом заполняем его точками(buffer_pset(x , y )),после весь буфер загружаем в 5110 как картинку
все делал сам,для 5110 (3310) нигде подобного не встречал,получается около 5 кадров в секунду (если нет задержек в программе)




Сообщение отредактировал bulat - Четверг, 12.07.2018, 20:25
 
pchela5Дата: Четверг, 12.07.2018, 22:17 | Сообщение # 80
Группа: Проверенные
Сообщений: 84

Статус: Offline
Про буфер понятно, само формирование картинки - точки, сетки и прочая.

 
pchela5Дата: Пятница, 13.07.2018, 11:28 | Сообщение # 81
Группа: Проверенные
Сообщений: 84

Статус: Offline
Нет ли тут в библиотеке ошибки:
if D3310x > 83 then D3310x = 83
if D3310y > 47 then D3310x = 47

и во втором месте

if D3310x > 83 then D3310x = 83
if D3310y > 5 then D3310x = 5

Как-то нелогично выглядит


 
bulatДата: Пятница, 13.07.2018, 14:32 | Сообщение # 82
Группа: Проверенные
Сообщений: 96

Статус: Offline
В первом случае ограничивается максимальное значение по вертикали в пикселях ,во втором-в номерах строк
по вертикали максимум  48 точек(от 0 до 47),или 6 строк(0...5)
Библиотеку толком не разглядывал,просто добавил рисование точек и наверно так получилось


 
pchela5Дата: Понедельник, 16.07.2018, 13:37 | Сообщение # 83
Группа: Проверенные
Сообщений: 84

Статус: Offline
Цитата bulat ()
В первом случае ограничивается максимальное значение по вертикали в пикселях ,во втором-в номерах строкпо вертикали максимум  48 точек(от 0 до 47),или 6 строк(0...5)
Это понятно, только у тебя  if D3310y > 47 then D3310x = 47 в данной строке проверка по у, а меняешь х - здесь косяк, новерное. Должно быть так: if D3310y > 47 then D3310у = 47??? Я попробовал нарисовать произвольный график на дисплее, используя вертикальный режим адресации - подпрограмма заполнения буфера дисплея получилась в 65 строчек на ассемблере. Попробую дальше позаполнять ее сеткой.


 
bulatДата: Среда, 18.07.2018, 17:02 | Сообщение # 84
Группа: Проверенные
Сообщений: 96

Статус: Offline
Теперь понял,спасибо за поправку! видимо еще не выходил за предел D3310y > 47 иначе сразу увидел косяк на экране
Переделал под ST7735 почти,скоро выложу на радиоскот


 
pchela5Дата: Среда, 18.07.2018, 19:35 | Сообщение # 85
Группа: Проверенные
Сообщений: 84

Статус: Offline
Для причесывания твоей вырвиглазной библиотеки опроса АЦП предлагаю сделать следующее:
- я тебе ее переделаю как подпрограмму, которую ты будешь вызывать со следующими параметрами: Call sample_load (byte 1) где
byte 1 - номер длительности развертки - от 3 циклов частоты кварца до где-то 48000 - задаешь от 0 до 14 номер развертки и программа сама берет байты 2 и 3 и засовывает их в цикл при необходимости;
byte 2 - делитель 1  цикла;
byte 3 -  делитель 2  цикла.

- ты со своей стороны массив ОЗУ сделаешь или 256 ячеек или 512, т.к. 255 - ни туда ни сюда

Вот пример для 24 МГц - частота опроса либо 2 мс либо 5, т.е. для заполнения массива в 256 байт полный цикл составит от 0,5 до 1,25 секунды

Loop_big_ms:
' 2 мс: R17 = 83, R18 = 63; 5 мс: R17 = 213, R18 = 156;
MOV R19,R17 ' - загружаем младший байт - 1 такт
MOV R20,R18 ' - загружаем старший байт - 1 такт
Count_big_ms:
DEC R19 ' вычитаем - 1 такт
BRNE Count_big_ms ' перейти на начало счетчика - 2 такта, пропустить - 1 такт
DEC R20 ' вычитаем - 1 такт
BRNE Count_big_ms ' перейти на начало счетчика - 2 такта, пропустить - 1 такт
NOP ' 1 такт
NOP ' 1 такт
IN R21, PINC ' считываем порт - 1 такт
ST X+, R21 ' пишем в озу и увеличиваем указатель на единицу - 2 такта
CPI XH, $05 ' проверяем если старший регистр больше конца массива то прыгаем на выход иначе - 1 такт
BRLO LOOP_big_ms ' перейти на начало цикла - 2 такта
JMP EXIT_READ

Я не очень понял алгоритм растягивания - объясни на пальцах. Есть ли видео работы?Так же как организован механизм синхронизации и захвата? 

Подумай насчет следующей фичи, как реализовать переход от 256 битов к 48 без операций деления, которые занимают много времени:
У нас есть переменная типа Word, т.е. 2 байта. Ты ей присваиваешь значение АЦП, т.е. попадаешь в младший байт и умножаешь на 48 / 96 / 192 а берешь значение из старшего байта - таким образом реализуется переход с умножением на 1 / 2 / 4 ну или любое число.




Сообщение отредактировал pchela5 - Четверг, 19.07.2018, 09:47
 
bulatДата: Вторник, 24.07.2018, 20:08 | Сообщение # 86
Группа: Проверенные
Сообщений: 96

Статус: Offline
На вряд ли додумаюсь )))
Расстягивание-просто между двумя  соседними выборками делаю еще одну искусственную-среднеарифметическое


 
pchela5Дата: Среда, 25.07.2018, 12:37 | Сообщение # 87
Группа: Проверенные
Сообщений: 84

Статус: Offline
Буду оптимизировать тогда сам. Любую работу с массивами лучше делать на асме, оставив для бейсика только умножение, работа с текстом и прочее. Смотри, как это выглядит:

For A = 3 To 170
If Osc(a -1) => N And Osc(a) => N And Osc(a + 1) <= N And Osc(a + 2) <= N Then
     Sinhr = A  
End If
Next A 

А вот на ассемблере эта же подпрограмма в 34 строки, включая сохранение и возврат из стека:
LDS R18,{sinhr_level} ' sinhr_level = 127 (default)
LDI YH, 2
LDS YL,{Start_of_window} ' Начало окна
Next_step_sinhr:
CPI YH,3  
BREQ EXIT_Sinhr
LD R20,Y+  
CP R20,R18 ' Если R18 >= R20
BRLO Next_step_sinhr
LD R20,Y
CP R20,R18 ' Если R18 >= R20
BRLO Next_step_sinhr
LDD R20,Y+1
CP R18,R20 ' Если R20 >= R18
BRLO Next_step_sinhr
LDD R20,Y+2
CP R18,R20 ' Если R20 >= R18
BRLO Next_step_sinhr
STS {sinhr_cell},YL ' сохраняем значение индекса
Exit_sinhr: 
Вольтметр - 29 строк, вывод графика на дисплей с масштабированием по осям - 41 строка, рисование графика - 65 строк, опрос АДС без большой простыни - 200 строк.


 
bulatДата: Четверг, 26.07.2018, 21:25 | Сообщение # 88
Группа: Проверенные
Сообщений: 96

Статус: Offline
Спасибо,но в асм я ноль...



Сообщение отредактировал bulat - Пятница, 27.07.2018, 17:19
 
bulatДата: Пятница, 27.07.2018, 21:02 | Сообщение # 89
Группа: Проверенные
Сообщений: 96

Статус: Offline
Воде разобрался с калькулятором задержек,спасибо!

 
Форум » форумы » В разработке » осциллограф (начинаем...)
  • Страница 2 из 2
  • «
  • 1
  • 2
Поиск: