Мини осциллограф Arduino на LCD 5110

bpl
Offline
Зарегистрирован: 15.02.2016

cilentlekx пишет:

Доработал скетч с работой на дисплее ILI9163C,все работает прекрасно!

Здравствуйте хотел у вас уточнить, имею вот такой китайский модуль TFT  Color 1.44” 128x128 контроллер ILI9163. SPI он ли, по фото вроде похож, а также поинтересоваться делали ли вы новые версии прошивок . 

Xumuk
Xumuk аватар
Offline
Зарегистрирован: 03.03.2016

подскажите пожалуйста среда ардуино 1.6.6 и 1.6.7 ругаются вот так на скетч осцилографа тфт

In file included from C:\arduino-1.6.6\libraries\TFTLCD-Library-master\Adafruit_TFTLCD.cpp:19:0:
 
C:\arduino-1.6.6\libraries\TFTLCD-Library-master\pin_magic.h:280:33: warning: backslash and newline separated by space [enabled by default]
 
   #define read8inline(result) { \    
 
 ^

 

iamuran
Offline
Зарегистрирован: 26.05.2016

сенсорные функции здесь https://github.com/adafruit/Touch-Screen-Library

 

 

iamuran
Offline
Зарегистрирован: 26.05.2016

[quote=onegin]

Здравствуйте, господа. Имеется плата uno, и сенсорный экран на данный момент (код изначально не мой, я только немного подправил) реализован неплохой 2х канальный осциллограф. Хочу реализовать сенсорное управление режимами, но что то уже несколько дней  ничего не выходит. 

void setup(){
  tft.reset();
  tft.initDisplay();
  tft.setRotation(3);

    tft.setTextSize(1);
  tft.fillScreen(BGCOLOR);
   
  Serial.begin(9600);
  DrawGrid();
  DrawText();
}

Оригинал Вашего примера здесь http://forklg.ru/viewtopic.php?t=1041&p=3685

Вы подредактировали вывод текста на экран с задержкой на 2 сек. в setup() ?

Изначально было там это:

void setup() {
  tft.reset();
  //tft.initDisplay();
  tft.begin(0x9341); // SDFP5408
  tft.setRotation(3);

  tft.fillScreen(BGCOLOR);

  tft.setTextColor(WHITE);
  tft.setTextSize(2);
  tft.setCursor(25, 100);
  tft.print("Arduino OscilloScope");
  tft.setCursor(25, 120);
  tft.print(" 2 CHANNEL ");
  tft.setCursor(25, 140);
  tft.print("(c) NEWMAR.RU  - 2015. ");
  delay(2000);

  tft.fillScreen(BGCOLOR);

  Serial.begin(9600);
  DrawGrid();
  DrawText();
 
}

У этого чувака на сайте есть еще много вкусных примеров.

А сенсорные функции здесь https://github.com/adafruit/Touch-Screen-Library

iamuran
Offline
Зарегистрирован: 26.05.2016

fly245 пишет:

Вот подшаманил такой код под ST7781

...

Но надписи перед самой сеткой почему то в самом верху экрана и не видны 

А в чем шаманизм заключался?

GFX
Offline
Зарегистрирован: 24.04.2015

Logik пишет:

 общем не  советую я делать осцилограф на stm32f103c8t6. Да и воще на неё переходить не целесообразно. У меня просто так получилось, экран завалялся, на нем тач сдох, вот и валялся, STM попался на али пошти даром. Подумал прицеплю побыстрячку их плюс управление энкодером да фоторамкой пусть подрабатывает в свободное время. А вышло не так гладко. И это учитывая что экран знаком, к нему либка под AVR писаная мной есть. До этого на AVR и ОЛЕД делал осцелографик, ну так поигратся, так без проблемно без возни с платами. 

Нифига себе советы, stm32f103c8t6 рвет как тузик гнрелку все ардуинки и осцил на нем может не напрягаясь выдавать измерения на комп через юсб и wifi  одновременно, а ардуинка делает семплыт только. Пора выкидывать давно avr.

GFX
Offline
Зарегистрирован: 24.04.2015

bodriy2014 пишет:

Logik пишет:

...до 1.7 мегавыборок/сек при системной тактовой частоте 72 МГц и до 2 мегавыборок – при частоте 56 МГц....

Улыбнуло! Чудом не залез глубоко в STM, а собирался буквально пару недель назад, но работа помешала.

Теперь для постороения осциллографического пробника точно не буду!)

Спасибо за труд!!!

Я Вас прошу, вы газгоняете ардуино в два раза, а АЦП STM32 разогнать на 10% совесть не позволяет?)))

bodriy2014
bodriy2014 аватар
Offline
Зарегистрирован: 12.05.2015

GFX пишет:

Я Вас прошу, вы газгоняете ардуино в два раза, а АЦП STM32 разогнать на 10% совесть не позволяет?)))

Я на STM32 просто не пишу ничего,

а начинать чтоб получить ослик на 1-2MSPS не вижу смысла.

GFX
Offline
Зарегистрирован: 24.04.2015

bodriy2014 пишет:

GFX пишет:

Я Вас прошу, вы газгоняете ардуино в два раза, а АЦП STM32 разогнать на 10% совесть не позволяет?)))

Я на STM32 просто не пишу ничего,

а начинать чтоб получить ослик на 1-2MSPS не вижу смысла.

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

GFX
Offline
Зарегистрирован: 24.04.2015

bodriy2014 пишет:

Logik пишет:

.... До этого на AVR и ОЛЕД делал осцелографик, ну так поигратся, так без проблемно без возни с платами. 

Получается Ардуино+внешний быстрый АЦП дают самый класный результат из недорогих решений.Он делает больше семплов чем в теории может выдать STM32+DMA(2Гигасемпла).

Если сделать на более современной Atmege328(Arduino) тактировать все от 25-27МГц можно выжать 10-15Гигасемплов в секунду а это позволит синус показывать до 1,5МГц и меандр до 1МГц.

 

У вас что-то с математикой, вечно Гигасемплы всесто мегасемплов. нет тут ни в одном устройстве гигасемплов.

bodriy2014
bodriy2014 аватар
Offline
Зарегистрирован: 12.05.2015

GFX пишет:

bodriy2014 пишет:

Logik пишет:

.... До этого на AVR и ОЛЕД делал осцелографик, ну так поигратся, так без проблемно без возни с платами. 

Получается Ардуино+внешний быстрый АЦП дают самый класный результат из недорогих решений.Он делает больше семплов чем в теории может выдать STM32+DMA(2Гигасемпла).

Если сделать на более современной Atmege328(Arduino) тактировать все от 25-27МГц можно выжать 10-15Гигасемплов в секунду а это позволит синус показывать до 1,5МГц и меандр до 1МГц.

 

У вас что-то с математикой, вечно Гигасемплы всесто мегасемплов. нет тут ни в одном устройстве гигасемплов.

Описался, прошу простить везде MSPS(Мегасемплы.)

GFX
Offline
Зарегистрирован: 24.04.2015

А вам 56 МГц не хватает на что-то? В чем в общем проблема  "Технология называется D2D (от дибилов для дибилов).", чем вы не довольны? Вам должно не хватать 56МГц иначе ваш выброс непонятен, но на что вам их может не хватить если хватает 16МГц 8ми битного МК в ардуино, шум ради шума.

GFX
Offline
Зарегистрирован: 24.04.2015

В STM32 есть одно большое преимущество для использования в качестве пробника, да, частоты пусть более высокие и не нужны, но там 2 АЦП и можно сделать двух канальный пробник, два канала часто нужны. Частоты будут 800 ксемплов в секунду максимум по обоим каналам, но этого с головой для блоков питания и прочего где частоты редко за 100кГц вываливаются, плюс частоты сможет измерять до 28МГц точно. А для интерфейсов все равно удоьнее логический анализатор, явно смысла осциллографом их смотреть нет.

bodriy2014
bodriy2014 аватар
Offline
Зарегистрирован: 12.05.2015

GFX пишет:

А вам 56 МГц не хватает на что-то? В чем в общем проблема  "Технология называется D2D (от дибилов для дибилов).", чем вы не довольны? Вам должно не хватать 56МГц иначе ваш выброс непонятен, но на что вам их может не хватить если хватает 16МГц 8ми битного МК в ардуино, шум ради шума.

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

Или вы не мне?

Вы на форуме по Ардуино, причем здесь STM32?

GFX
Offline
Зарегистрирован: 24.04.2015

Я не вам, тут есть посты где делают на STM32 так как эта плата тоже есть в артуино, протеворечий не вижу

GFX
Offline
Зарегистрирован: 24.04.2015

Logik пишет:

Logik пишет:

завтра будет 2Мгц, посмотрел по ссылке как два АЦП запустить, самому уже рыть надоело, а чужое втяну

Дак вот. Не будет. Ни сегодня, ни потом. Потому что 72МГц:

В документах STMicroelectronics RM008 (раздел 11.9.3) кратко, а в AN3116 (раздел 2.2) более подробно рассматривается режим быстрых преобразований со смещением во времени. Используя этот режим, можно вдвое поднять и без того немалую скорость сэмплирования микроконтроллеров STM32F103xxx: до 1.7 мегавыборок/сек при системной тактовой частоте 72 МГц и до 2 мегавыборок – при частоте 56 МГц.

Почему при более низкой системной частоте тактирования (56 МГц) скорость сэмплирования получается выше, чем при максимальной (72 МГц)? Это связано с ограничением максимальной частоты тактирования модуля АЦП (14 МГц) и набором коэффициентов деления, которые доступны предделителю АЦП (2/4/6/8). В случае тактирования PCLK2 = 72 МГц минимальный коэффициент деления равен 6, при этом частота тактирования получается 12 МГц (при коэффициенте 4 она получилась бы равной 18 МГц, что больше максимально допустимой частоты в 14 МГц). В случае, если PCLK2 = 56 МГц, коэффициент деления предделителя АЦП можно настроить на 4 и получить частоту тактирования модуля АЦП в 14 МГц – в точности верхняя допустимая граница.

http://mcu8.ru/wp-gull/mylinks/2013/12/09/stm32f103-dual-fast-interleaving-mode/

Вот такой вот он, STM. Технология называется D2D (от дибилов для дибилов). В общем моя степень удовлетворения от процесса думаю понятна.

 

Вот это сообщение, на что ему не хватает 56МГц не знаю, но как он это преподносит как будно его обманул весь мир))

GFX
Offline
Зарегистрирован: 24.04.2015

bodriy2014 пишет:

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

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

bodriy2014
bodriy2014 аватар
Offline
Зарегистрирован: 12.05.2015

GFX пишет:

В STM32 есть одно большое преимущество для использования в качестве пробника, да, частоты пусть более высокие и не нужны, но там 2 АЦП и можно сделать двух канальный пробник, два канала часто нужны. Частоты будут 800 ксемплов в секунду максимум по обоим каналам, но этого с головой для блоков питания и прочего где частоты редко за 100кГц вываливаются, плюс частоты сможет измерять до 28МГц точно. А для интерфейсов все равно удоьнее логический анализатор, явно смысла осциллографом их смотреть нет.

800КSPS для блоков питания -это ни о чем!

Ничего не увидите ни помех, ни выбросов. Даже фронты ключа не посмотрите.

Предположим что у вас найдется блок питания с частотой работы 100КГц и что вы увидите? сигнал из 8-ми точек на дисплее. Это покажет только есть он или нет, вы даже его форму не оцените, я не говорю уже о фронтах.

Не нужно считать что ваш STM32 c его высокими частотами работы далеко ушел от Ардуино по части оцифровки сигнала, да он делает это быстрее но не на много.

bodriy2014
bodriy2014 аватар
Offline
Зарегистрирован: 12.05.2015

GFX пишет:

Logik пишет:

Logik пишет:

завтра будет 2Мгц, посмотрел по ссылке как два АЦП запустить, самому уже рыть надоело, а чужое втяну

Дак вот. Не будет. Ни сегодня, ни потом. Потому что 72МГц:

В документах STMicroelectronics RM008 (раздел 11.9.3) кратко, а в AN3116 (раздел 2.2) более подробно рассматривается режим быстрых преобразований со смещением во времени. Используя этот режим, можно вдвое поднять и без того немалую скорость сэмплирования микроконтроллеров STM32F103xxx: до 1.7 мегавыборок/сек при системной тактовой частоте 72 МГц и до 2 мегавыборок – при частоте 56 МГц.

Почему при более низкой системной частоте тактирования (56 МГц) скорость сэмплирования получается выше, чем при максимальной (72 МГц)? Это связано с ограничением максимальной частоты тактирования модуля АЦП (14 МГц) и набором коэффициентов деления, которые доступны предделителю АЦП (2/4/6/8). В случае тактирования PCLK2 = 72 МГц минимальный коэффициент деления равен 6, при этом частота тактирования получается 12 МГц (при коэффициенте 4 она получилась бы равной 18 МГц, что больше максимально допустимой частоты в 14 МГц). В случае, если PCLK2 = 56 МГц, коэффициент деления предделителя АЦП можно настроить на 4 и получить частоту тактирования модуля АЦП в 14 МГц – в точности верхняя допустимая граница.

http://mcu8.ru/wp-gull/mylinks/2013/12/09/stm32f103-dual-fast-interleaving-mode/

Вот такой вот он, STM. Технология называется D2D (от дибилов для дибилов). В общем моя степень удовлетворения от процесса думаю понятна.

 

Вот это сообщение, на что ему не хватает 56МГц не знаю, но как он это преподносит как будно его обманул весь мир))

Логик вообще человек не адекватный!

С ним не советую вступать в дискуссию, в этой ветке он показал свое истинное лицо!

http://arduino.ru/forum/programmirovanie/parallelnyi-atsp-i-arduino?page...

 

bodriy2014
bodriy2014 аватар
Offline
Зарегистрирован: 12.05.2015

СТМ быстрее Ардуино! Кто умеет его использовать,

тому конечно лучше для осциллографа позабыть об Ардуино и сделать на нем.

bodriy2014
bodriy2014 аватар
Offline
Зарегистрирован: 12.05.2015

/

GFX
Offline
Зарегистрирован: 24.04.2015

"800КSPS для блоков питания -это ни о чем!" - Для проектирования да ниочем, а для ремонта сойдет, коэффициент заполнения и примерно сигнал видно больше там и нечего смотреть при ремонте. 

bodriy2014
bodriy2014 аватар
Offline
Зарегистрирован: 12.05.2015

GFX пишет:

"800КSPS для блоков питания -это ни о чем!" - Для проектирования да ниочем, а для ремонта сойдет, коэффициент заполнения и примерно сигнал видно больше там и нечего смотреть при ремонте. 

Согласен если визуально оценить заполнение или просто наличие сигнала, то  можно применять.

GFX
Offline
Зарегистрирован: 24.04.2015

А почему дисплей подключен у вас не к SPI, а просто к выводам? 

GFX
Offline
Зарегистрирован: 24.04.2015

Сравнение того что я навоял и вашего осцилла https://youtu.be/-k0dUxQWjoE Это чисто так по скорости сравнение, мой осцилл еще не доделанный, так как ни кнопок, ни чего то другого я еще не прикрутил.

bodriy2014
bodriy2014 аватар
Offline
Зарегистрирован: 12.05.2015

GFX пишет:

Сравнение того что я навоял и вашего осцилла https://youtu.be/-k0dUxQWjoE Это чисто так по скорости сравнение, мой осцилл еще не доделанный, так как ни кнопок, ни чего то другого я еще не прикрутил.

Разные весовые категории, что там сравнивать .

800 000 против 300 000.

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

P.S. Почему на avr уровень синхронизации не подняли чтоб осциллограмма не дергалась?

 

GFX
Offline
Зарегистрирован: 24.04.2015

bodriy2014 пишет:

Разные весовые категории, что там сравнивать .

800 000 против 300 000.

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

P.S. Почему на avr уровень синхронизации не подняли чтоб осциллограмма не дергалась?

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

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

П.С.2. Вот вы человек вроде адекватный и даже шаряжий, что заставляет вас писать в ардуино вместо нормальной атмел студии? Экран на ногодрыжке вместо имеющегося в МК аппаратного SPI, зачем так поступают люди, загадка для меня.

GFX
Offline
Зарегистрирован: 24.04.2015

[quote=bodriy2014]даже больше скажу есть целая ветка на другом форуме где это реализовали давно и лучше.

[/quote] кроме буржуйской ветки, где сделали на ардуино тормоза, который хуже и ничем не лучше, ничего не нашел... http://www.stm32duino.com/viewtopic.php?f=19&t=107&start=270

bpl
Offline
Зарегистрирован: 15.02.2016

  

Logik
Offline
Зарегистрирован: 05.08.2014

GFX пишет:

Ну по цене категории одинаковые, я понимаю ....

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

GFX пишет:

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

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

Почему - разясняю. Береш осцил на 328p, подключаеш к входу УЗЧ, смотриш сигнал на входе во всем диапазоне 20-20, смотриш на выходе аналогично. Береш осцил на stm, подключаеш к входу УЗЧ и получаеш хрень. Почему так - входное сопротивление 328p из даташита 100МОм а STM - хрензнает  по причине плохой документированости, но эксперементально, на хабре статья целая есть, порядка килоомов, и источник сигнала соответственно не более нескольких сотен омов. 

Потому поделка на 328p сразу хоть на чтото применима, а на stm - только видео поснимать скромно промолчав о входном сопротивлении и источнике сигнала.

Теперь что нужно сделать чтоб поднять stm до уровня 328p по этому параметру. Нужен усилитель на вход, желательно линейный и быстрый, не вносящий заметную затяжку фронта, иначе все семплирование на 1,7МГц накроется тазом. Далее, совсем не хочется лишится возможности смотреть малый сигнал, доли вольта (328р может ведь!), а значить ОУ нужен с двухполярным питанием а значить плюс либо БП либо конвертер в -5В. 

Теперь о деньгах ОУ с граничной частотой десятки МГц (граничная десятки чтоб на 1,7МГц фронт не затягивал и усиливал еще хоть раз в 100 для малого сигнала пригодится)  стоит  3-4$, плюс БП или конвертор плюс плата. Итого цена для STM практически удвоилась. 

Я поставил ОУ AD812 и конвертер в -5В. В общем такое решение пока без замечаний.

Стоит ли этим заниматся каждый сам решит ради перехода 300 в 800 (кстати а чего не 1,7 или 2 как Вы тут расказывали? ДаФФайте, кварц перепаяете, расскажите что вышло. )

Про преимущество SPI над паралельной шиной при подключении экрана - поржал. Вы скорости обмена прикидывали вообще?  А максимальную частоту обновления экрана 320Х240 при работ по SPI?

ПС. Там выше Вы кажется интересовались для чего мне нехватает частоты проца 56МГц - сообщаю, для БПФ по 512 точкам в реальном времени. Поможете может? ;) Еще скорость вывода jpg на экран при 72МГц больше нравится чем при 56МГц. Вы действительно не понимаете почему плохо если произаодитель заявляет что проц может 2 мегасемпла и 72МГц, а на самом деле оказывается 2 мегасемпла или 72МГц, и оказывается это только после подробного изучения хреновой документации?

GFX
Offline
Зарегистрирован: 24.04.2015

Logik, похоже вы не адекват)))

"Почему так - входное сопротивление 328p из даташита 100МОм а STM - хрензнает  по причине плохой документированости, но эксперементально, на хабре статья целая есть, порядка килоомов, и источник сигнала соответственно не более нескольких сотен омов. " - я знаю сколько входное сопротивление с точностью до Ома, оно расписано очень подробно с формулой расчета и таблицей значений, если вы не нашли, это не значит, что плохо документировано.

 "кстати а чего не 1,7 или 2 как Вы тут расказывали? ДаФФайте, кварц перепаяете, расскажите что вышло. " - потому что на 2х каналах 800 ксемплов максимум, на 1м - 2000 ксемплов, но есть свои минусы из-за которых я не стал делать два ацп на один канал. Кварц перепаивать вообще бред, если что тут он на 8 и дальше PLL, если хочеться, измените множитель PLL, но зачем выходить за рамки, чтобы глючило, может вы так привыкли делать, мне не хочется.

"Про преимущество SPI над паралельной шиной при подключении экрана - поржал." - в каком месте я такое писал прошу указать. На видео у меня график обновляется около 20 FPS, там видно это. Я писал что к328 подключен просто на выводы вместо SPI и если вы настолько глупы, что считаете, что так быстрее, разговаривать с вами не о чем, потому, что там программый, но тоже SPI, а не что-то параллельное мифическое.

ля чего мне нехватает частоты проца 56МГц - сообщаю, для БПФ по 512 точкам в реальном времени. Поможете может? ;) " - ага, а 72 хватало, не нужно сказки расказывать, какое реальное время? вы выборку делаете в массив и считаете сколько хотите, выводите на экран и т.п. И jpg и АЦП вам именно в одном проекте нужно? где вообще нужно АЦП на максимальной скорости? Не ужто вы напряжение на батарейке или на потенциометрах так часто измеряете? Или вы сделали осциллограф который и фоторамка заодно? Не чюдите.

"хреновой документации?" - интересно чем она хренова, все расписано от и до, читать нужно, а то и сопротивление вам не написали то еще что-то, сопротивление даже расчет есть для всех вариантов скоростей и да я в видео написал что оно низкое и сигнал проседает. Только что с того, вы внешний АЦП поставите и что будете напрямую на него сигнал подавать? Самаи зачем тогда операционник поставили?

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

 

GFX
Offline
Зарегистрирован: 24.04.2015

К слову 300 кГц для 328 это уже разгон и там не 10бит точности "By default, the successive approximation circuitry requires an input clock frequency between 50kHz and 200kHz to get maximum resolution." а еще вот что интересно "A normal conversion takes 13 ADC clock cycles. The first conversion after the ADC is switched on (ADEN in ADCSиRA is set) takes 25 ADC clock cycles in order to initialize the analog circuitry."  и "The actual sample-and-hold takes place 1.5 ADC clock cycles after the start of a normal conversion and 13.5 ADC clock cycles after the start of an first conversion."

Итого 200/13 =15 кsps - вот ваша частота семплирования, которая заявлена производителем для точности 10 бит, вот вам и входное сопротивление высокое. А какая там точность при 600 ksps я даже не знаю но, явно там погода. А в STM такой же стоимости честные 800 ksps причем для 2х каналов и 2000 для одного(но там есть заморочки и нужен операциооник 100% уже) Как вы читаете документацию и чем она хреновая у ST я не знаю. 

"The ADC is optimized for analog signals with an output impedance of approximately 10 k or less." и где ваш 1 МОм? Без комминтариев, лес темный, а все туда же, спорят, грубят.

Logik
Offline
Зарегистрирован: 05.08.2014

GFX пишет:

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

Так поделись тайным знанием! Ждем ссылочку на даташит. Иначе пиздоболом зачтешся.

GFX пишет:

 "кстати а чего не 1,7 или 2 как Вы тут расказывали? ДаФФайте, кварц перепаяете, расскажите что вышло. " - потому что на 2х каналах 800 ксемплов максимум, на 1м - 2000 ксемплов,

Еще раз, для тех кто в танке. Максимум семплов зависит от частоты проца.  И если оставатся в рамках спецификации, то для проца на 72МГц один АЦП обеспечивает частоту семплирования 0,857 МГц (это 12МГц/14тактов) два 0,857+0,857=1,7  Это максимальная возможность оцифровки чипа, как её разделять: всю на один канал, пополам на два или понемногу на десяток - вопрос вторичный и на возможность оцифровки чипа практически не влияет. Для  56МГц один АЦП 1 МГц, два АЦП 2МГц. Но 56МГц это пошти на 30% медленей обработка сигнала.

Теперь,  вооружившись знанием, перечитаем твой высер:

//что на 2х каналах 800 ксемплов максимум, на 1м - 2000 ксемплов, 

угу. только "800 ксемплов максимум" для 72МГц а "на 1м - 2000 ксемплов" для 56. Что с чем сравниваем?

GFX пишет:

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

 

))) знаю я этот минус, ненашел где код содрать. Обращайся, он есть у меня.

GFX пишет:

ага, а 72 хватало, не нужно сказки расказывать, какое реальное время? 

 

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

      
     {
       InpVal = adc_read_next(regs2);
      i++;
       if (InpVal > Bmax) Bmax = InpVal;
      if (InpVal < Bmin) Bmin = InpVal;
      
      Yi=20+((InpVal-Bmin1)*200)/(Bmax1-Bmin1);
      
      pbuf[i] =Yi;
}

Что дает? Ну умный и без меня догадался, а тебе поясню: int InpVal; byte pBuf[]; Что позволяет сохранить в том же обеме в 2 раза больше отсчетов, причем сразу в формате для вывода на экран. Так что беги правь свой код салабон)) 

Ну про БПФ не буду расказывать - бесполезно..

GFX пишет:

И jpg и АЦП вам именно в одном проекте нужно? ....  Или вы сделали осциллограф который и фоторамка заодно? Не чюдите.

Да. А чё? Нельзя. Он у меня 99% времени фоторамка, в то время как у тебя - черный квадрат. Ну если по теме дальше макета двинеш конечно, в чем я лично сомниваюсь. 

GFX пишет:

 где вообще нужно АЦП на максимальной скорости? Не ужто вы напряжение на батарейке или на потенциометрах так часто измеряете? 

Без коментариев сей бред оставлю я. 

GFX пишет:

 

"хреновой документации?" - интересно чем она хренова, все расписано от и до, читать нужно, а то и сопротивление вам не написали то еще что-то, сопротивление даже расчет есть для всех вариантов  

 Не хватает простой вещи - ссылки на хорошую доку. А из того что есть STM32F103x8 CD00161566.pdf 2Мб 166стр. супротив  Atmel-8271-8-bit-AVR-Microcontroller-ATmega48A-48PA-88A-88PA-168A-168PA-328-328P_datasheet_Complete.pdf 630стр. Вівод напрашивается. При том, что STM на порядок сложней. И

GFX пишет:

 расчет есть для всех вариантов скоростей и да я в видео написал что оно низкое и сигнал проседает.  

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

GFX пишет:

Только что с того, вы внешний АЦП поставите и что будете напрямую на него сигнал подавать?  

  

Может и будет так потом, если 1,7МГц мало будет. Только не напрямую, а через входную цепь, и с ОУ в составе.

GFX пишет:

 Самаи зачем тогда операционник поставили? 

Ууууу... да вам учится надо... Для повышения входного сопротивления как раз.  Прочитал ваш следующий пост, вижу прогресс! Незабудте про двухполярное питание.

GFX пишет:

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

  

Это форум детка! Здесь тупых не любят. Особенно я, вас же предупреждали не лезть, а то достанется ))))

GFX
Offline
Зарегистрирован: 24.04.2015

Logik пишет:

Так поделись тайным знанием! Ждем ссылочку на даташит. Иначе пиздоболом зачтешся.

 Ты даун, тебе никаких даташитов присылать не буду. Для совместной работы нужен режим ADC_Mode_FastInterl, че его сдирать.

 

Logik пишет:
 Еще раз, для тех кто в танке. Максимум семплов зависит от частоты проца.  И если оставатся в рамках спецификации, то для проца на 72МГц один АЦП обеспечивает частоту семплирования 0,857 МГц (это 12МГц/14тактов) два 0,857+0,857=1,7 

 

Теперь,  вооружившись знанием, перечитаем твой высер:

//что на 2х каналах 800 ксемплов максимум, на 1м - 2000 ксемплов, 

угу. только "800 ксемплов максимум" для 72МГц а "на 1м - 2000 ксемплов" для 56. Что с чем сравниваем?

Ты даун откуда твой голимый расчет? ты настолько туп, что не понимаешь, что на 14 делить можно только в режиме совместной работы? Иди читай даташит, на 56МГц АЦП работает на 14МГц и минимальное время получения отчета 14 тактов, но при работе 1 канала такого нет, почему спросишь? иди дубина и читай, или ты пиздабол раз мне тут чушь свою пишешь не разобравшись, лошара?

Logik пишет:

))) знаю я этот минус, ненашел где код содрать. Обращайся, он есть у меня.

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

Logik пишет:

Что дает? Ну умный и без меня догадался, а тебе поясню: int InpVal; byte pBuf[]; Что позволяет сохранить в том же обеме в 2 раза больше отсчетов, причем сразу в формате для вывода на экран. Так что беги правь свой код салабон)) 

Ну про БПФ не буду расказывать - бесполезно..

Классное решение, браво) Много памяти наэкономил? особенно испугал форматом сразу для вывода на экран) ТОлько я не понял ты что ситаешь с АЦП и тут же перекладываешь в ручную в свой массив? если так, то ты тупее, чем кажешься и ДМА тебе не знакомо, подсказка, конвертацию твою можно делать по прерыванию половинного заполнения буфера ДМА и забивай свой байтовый массив.

Logik пишет:

Да. А чё? Нельзя. Он у меня 99% времени фоторамка, в то время как у тебя - черный квадрат. Ну если по теме дальше макета двинеш конечно, в чем я лично сомниваюсь. 

 плату за 130 рублей? да мусье у нас жмот, мороженное стоит 40, я их за сегодня 2 штуки съел, и вы заморачиваетесь с переносом этой платы, то туда ,то сюда, вы по 2 раза одно и тоже не едите случаем??? 

Logik пишет:

 Не хватает простой вещи - ссылки на хорошую доку. А из того что есть STM32F103x8 CD00161566.pdf 2Мб 166стр. супротив  Atmel-8271-8-bit-AVR-Microcontroller-ATmega48A-48PA-88A-88PA-168A-168PA-328-328P_datasheet_Complete.pdf 630стр. Вівод напрашивается. При том, что STM на порядок сложней.   

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

Logik пишет:

Это форум детка! Здесь тупых не любят. Особенно я, вас же предупреждали не лезть, а то достанется ))))

Ты не любишь тупых а сам туришь да еще быдло и пиздабол

Logik
Offline
Зарегистрирован: 05.08.2014

GFX пишет:

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

Ты не любишь тупых а сам туришь да еще быдло и пиздабол

Владееш слогом )))

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

- входное сопротивление АЦП у STM явно недостаточное для повседневного применения. Решение известно но удорожает на 60-100% и требует самопальной платы.

- проблема необходимости выбора 2мегасемпла и 56МГц или 1,7мегасемпл и 72МГц очевидно никуда не делась, но не всеми понимается. Не понятны последствия перевода (и каким способом?) платы мапле мини с 72МГц на 56.

-тема преимущества SPI над паралельной шиной при подключении экрана не раскрыта, что не удевительно, их нет кроме меншего числа проводов и выводов.

Как и следовало ожидать никаких ссылок на хорошую доку по STM не последовало. "У нас есть такие приборы, но мы вам о них не расскажем!"

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

GFX
Offline
Зарегистрирован: 24.04.2015

Logik, частота в 328 в 15кГц не смущает, а тут проблемы с опорным? https://www.dropbox.com/s/nncab3pb8xby909/%D0%A1%D0%BA%D1%80%D0%B8%D0%BD%D1%88%D0%BE%D1%82%202016-06-19%2000.43.33.png?dl=0, учись

Logik, можно объяснить откуда такая злоба? 

Logik
Offline
Зарегистрирован: 05.08.2014

GFX пишет:

Logik, можно объяснить откуда такая злоба? 

Конечно. Яж уже писал, достали тупые  полуучки. Вот не будем ходить далеко. От шо ты это запостил?!

GFX пишет:

Logik, частота в 328 в 15кГц не смущает, а тут проблемы с опорным? https://www.dropbox.com/s/nncab3pb8xby909/%D0%A1%D0%BA%D1%80%D0%B8%D0%BD%D1%88%D0%BE%D1%82%202016-06-19%2000.43.33.png?dl=0, учись

Разбираем по тезисам.

\\ Logik, частота в 328 в 15кГц не смущает

Почему меня чтото должно смущать? Я не делаю осцилограф на 328р. Его проблемы я не трогаю. Я только о проблемах использования Мапле мини с процем STM32F103C8T6Ты видео делал где сравнивал STM & 328p я тебе расписал что некоректно сравнивать,  из за входного сопротивления STM так просто не применим. Далее. Чего меня должно смущать 15КГц? К тому же, когда в свое время я игрался с скоростю 328р, то получал много выше, и общепринятая цифра там 13мкс те 78КГц. Но мне как бы пофиг, тут много народу с руками из жопы не могущими получить то, что делают другие.

Дальше ссылка. Нафига ты её в дропбокс совал, если это лежит открыто здесь? ))) - http://www.st.com/content/ccc/resource/technical/document/application_note/c4/63/a9/f4/ae/f2/48/5d/CD00258017.pdf/files/CD00258017.pdf/jcr:content/translations/en.CD00258017.pdf

Ну читаем по ссылке:

2.2.2 Example of application This mode is used to speed up the sampling rate of the ADC when 2 Msamples/second are needed with 1.5 cycle of sampling time. ADC1 and ADC2 convert the same channel alternately to reduce the conversion time. While ADC1 samples channel CHx, ADC2 converts the previous sample. For example if a signal to be converted has a maximum frequency of 800 kHz, the sampling rate frequency should be higher than or equal to twice the frequency of the signal to be converted (in accordance with Shannon-Nyquist criteria).

Так вот откуда у тя цыфра 800 вылезла!!!

Так читай и перевди чувак: For example if a signal...

Я думаю понятно чего я злой на таких обдаренных...

GFX
Offline
Зарегистрирован: 24.04.2015

Ну может и прочитал бегло, что-то для 2х указана частота для одного нет, ну тогда даже лечше 1000 ксемпов значит выдает, да проверил в режиме непрерывного преобразования выдает 1 000 000. Я твоей реализации не видел еще, нашелся умник. Но спасибо за поправку.

И при чем тут что я не могу получить с 328 то что получают другие? Я прочитал даташит по даташиту он больше 15кгц не выдает, все остальное насилование и ни о каких параметрах речи нет. прочитайте даташит и убедитесь или переубедите меня.

Logik
Offline
Зарегистрирован: 05.08.2014

GFX пишет:

Ну может и прочитал бегло, что-то для 2х указана частота для одного нет, ну тогда даже лечше 1000 ксемпов значит выдает, да проверил в режиме непрерывного преобразования выдает 1 000 000. Я твоей реализации не видел еще, нашелся умник. Но спасибо за поправку.

 

Та незашто )))

GFX пишет:

И при чем тут что я не могу получить с 328 то что получают другие? Я прочитал даташит по даташиту он больше 15кгц не выдает, все остальное насилование и ни о каких параметрах речи нет. прочитайте даташит и убедитесь или переубедите меня.

Та выдает и по даташиту. Стр.237 вышеупомянутого

 • 13 - 260μs Conversion Time

Но мне эта тема не интересна, потому как не актуальна. Тут ребята ковыряют его, они лучше обяснят сколько и откуда.

По принципиальным моментам из http://arduino.ru/forum/proekty/mini-ostsillograf-arduino-na-lcd-5110?page=7#comment-201753  я возражений не вижу. Ну и чудненько. Ссылок на нормальную доку по STM правда тоже нет. Ну и ладненько.

GFX
Offline
Зарегистрирован: 24.04.2015

Не ужели до сих пор не нашли ссылку, ну вот дроб бокс мне лень копать сайт ST ? https://www.dropbox.com/s/vdoqba40i5iz71h/STM32F103x8%20ref%20manual.pdf?dl=0

13uS это 1000 0000/13=77 ксемплов, что тоже не 300, но вашей странице написано то что я говорил про 10 бит и дальше я ссылки по тексту писал ничего тут не противоречит "Up to 76.9kSPS (Up to 15kSPS at Maximum Resolution)" - это прямо жирным в начале текста написано, так что на 8ми битах максимум 76,9 на 10 около 15, как я и утверждал, ана STM 103м 1000 ксемплов как вы поменя поправили, и 12 бит разрешение.

https://www.dropbox.com/s/v3wxpmfc008az6l/%D0%A1%D0%BA%D1%80%D0%B8%D0%BD...

 

 

GFX
Offline
Зарегистрирован: 24.04.2015

Logik пишет:

По принципиальным моментам из http://arduino.ru/forum/proekty/mini-ostsillograf-arduino-na-lcd-5110?page=7#comment-201753  я возражений не вижу. Ну и чудненько. Ссылок на нормальную доку по STM правда тоже нет. Ну и ладненько.

а какие там моменты? там написано очевидное поп поводу входного сопротивления ну и что теперь, доку я скинул зачитаешься овер 1000 листов. Преимущества SPI только то что у меня такой экран есть, я не утверждал что это преимущество, 15-20 кадров выдает и ладно, дисплей с параллельным интерфейсом конечно лучше только и МК нужен другой более ногастый с FSMC

Logik
Offline
Зарегистрирован: 05.08.2014

GFX пишет:

 доку я скинул зачитаешься овер 1000 листов.

Вчера была ссылка

 https://www.dropbox.com/s/nncab3pb8xby909/%D0%A1%D0%BA%D1%80%D0%B8%D0%BD%D1%88%D0%BE%D1%82%202016-06-19%2000.43.33.png?dl=0,

там только Скриншот 2016-06-19 00.43.33.png

А вот эту https://www.dropbox.com/s/vdoqba40i5iz71h/STM32F103x8%20ref%20manual.pdf?dl=0 вы первый раз даете )))

Но в любом случае, спасиба, скачал, посмотрю. Может в нем найдется инфа к примеру по калибровке АЦП, как часто выполнять, как долго длится и т.д. Да и как правильно включать Dual fast interleaved mode не лишне почитать, а то метод тыка череват сюрпрайзами.

 

GFX
Offline
Зарегистрирован: 24.04.2015

В режиме дуал ADC есть глук с пилой,  я в начале подумал, что это из-за совсем маленького входнго сопротивления проседает источник, но вот у людей тоже самое https://www.youtube.com/watch?v=RQmDzVx8ovQ из-за этого я и отказался от использования этого режима, но вот в чем странность, еще его погонял вчера и пришел к выводу, что это какой-то глюк или несовсем правильная настройка режима, т.к. он возникает при смене  времени семплирования  и если его сразу выставить в  ADC_SampleTime_1Cycles5 и потом не трогать, то пилы нет и можно юзать 2мсепла все ок, но частоты АЦП нам-то менять нужно, синус 50 Гц не хочется так семплировать то, да и входное сопротивление выростает на несколько порядков если перерйти на ADC_SampleTime_239Cycles5 и все бы хорошо но при обратном переходе на ADC_SampleTime_1Cycles5 начинается эта пила причем даже если нет вообще сигнала, что за глюк хрен проссышь.

ADC_RegularChannelConfig(ADC1, ADC_Channel_1, 1, ADC_SampleTime_1Cycles5);

ADC_RegularChannelConfig(ADC2, ADC_Channel_1, 1, ADC_SampleTime_1Cycles5);

https://www.dropbox.com/s/xqsdu3uahgnt4rn/2016-06-19%2010.41.44.jpg?dl=0

https://www.dropbox.com/s/85qaospci92ox52/2016-06-19%2010.59.27.jpg?dl=0 Частота везьде 2000000, просто я вручную установил показания на экране не обновлялись. Но сам факт то работает то перестает если тронуть то опять работат если еще раз туда сюда переключить, вот эта магия мне не нравится

GFX
Offline
Зарегистрирован: 24.04.2015

Калибровка делается просто вроде 

 // калибровка АЦП
  ADC_ResetCalibration(ADC1);
  while (ADC_GetResetCalibrationStatus(ADC1));
  ADC_StartCalibration(ADC1);
  while (ADC_GetCalibrationStatus(ADC1));
ADC_Cmd(ADC1, ENABLE);
 
 // калибровка АЦП
 ADC_ResetCalibration(ADC2);
 while (ADC_GetResetCalibrationStatus(ADC2));
 ADC_StartCalibration(ADC2);
 while (ADC_GetCalibrationStatus(ADC2));
 ADC_Cmd(ADC2, ENABLE);
 
Сколько длится там написано было или в том доке с которого ссылку на сраничку читал. Это ладно еще, а вот пляски с несинхронной работой в двойном режиме самое непонятное.
Logik
Offline
Зарегистрирован: 05.08.2014

GFX пишет:

, но частоты АЦП нам-то менять нужно, синус 50 Гц не хочется так семплировать 

Довольно интересный вопрос. Я не меняю на каждой величине развертки. Держу два алгоритма ввода, быстрый - захватываем 6000 семплов в массив на максимальной скорости 1,7мсемпл, получаем 3,5 мсек сигнала и  при выводе соответственно отображаю некоторую часть. И медленный - ввод нескольких семплов подряд, усреднение, отображение этой одной точки и пауза до нужного времени для формирования интервала семплирования. Ну еще кое что есть (захват с просмотром захваченого, оверсемплинг,..), но то отдельная тема. Пока так, может еще поменяю.

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

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

ПС. Гдето в статьях  упоминалось, что при dual fast только 1,5 цикла, может это так.

GFX
Offline
Зарегистрирован: 24.04.2015

Победил я эту фигню. Все норм теперь. Я меняю частоту семплирования, например, сейчас от 100 ксемплов до 2 000 0000, можно меньше. Я  видео снял, щас загрузится сброшу на ютуб, но синхронизация вышла из строя) не справляется что-то мой алгоритм, ну или повределся когда я с 2х каналов на один переделал, так что не пинать. Самое главное что алгоритм смены частоты норм работает, могу выставлять хоть от герца, иначе никак буфер памяти нужен огромный чтобы смотреть медленные процессы.

GFX
Offline
Зарегистрирован: 24.04.2015

Да говорилось, что при dual fast только 1,5 цикла, но это для достижения масимума, а так работает и с меньшими, с меньшими выростает входное сопротивление и плюс точнее, поэтому я переключаюсь ступенчато все на большее время при снижении частоты.

GFX
Offline
Зарегистрирован: 24.04.2015

исправил синхронизацию https://youtu.be/9lhvwoavjq0

доработал напильником https://youtu.be/XwjNY_HyPWU

GFX
Offline
Зарегистрирован: 24.04.2015

https://youtu.be/sa7qA1C4IIk Добавил режим паузы и прокрутку памяти. Если кому интересно, могу hex скинуть.

Logik
Offline
Зарегистрирован: 05.08.2014

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