Народный осциллограф "Мурзик" на базе STM32F303VCT6 - проект
- 240265
- Электрический кот
- Сообщения: 1029
- Зарегистрирован: Сб мар 09, 2013 11:29:22
- Откуда: 40RUS, Жуков
Re: Народный осциллограф "Мурзик" на базе STM32F303VCT6 - пр
//================== DISPLAY 384 x 240 =====
if (fft ==0)
{
SendCMD(ILI9341_MAC);
SendData(Orient_Book1); //88
SendCMD(ILI9341_PAGE_ADDR);// ILI9486_PAGE_ADDR
SendData(0);
SendData(10); // 47
SendData(0x01);
SendData(0xDF); //479
SendCMD(ILI9341_COLUMN_ADDR);// ILI9486_COLUMN_ADDR
SendData(0);
SendData(43); // 43
SendData(0x01);
SendData(0x19); // 281
SendCMD(ILI9341_GRAM); // ILI9486_GRAM
LCD_CS0; //
LCD_DC1; // data
GPIOB->BSRR = 0x80; // set PB7 dlya izmereniya vremeni cykla
register int ar __asm("r3");
register int br __asm("r6");
for (uint16_t j = 1; j < 384; j++) {
ar = buffer[sdvig+j];
br = buffer[sdvig+j-1];
for (uint16_t i = 1; i < 240; i++) {
color = 0;
if (!(i - (i * 43691 >> 20) * 24) || !(j - (j * 43691 >> 20) * 24)) color = 16;// Grid
if (i==120) {color = 4;} // Centr
if (j==192) {color = 4;} // Centr
if (OSD==1) {
if (i == SynU) {color = 54;}
if (i == U_0) {color = 231;}
}
//if (i == buffer [j+sdvig] ) color = 255; // otrisovka tochkami
if (ar > br)
{
if ((i<=1+ar)&(i>=1+br)) {color = 255;}
}
else{if ((i>=1+ar)&(i<=1+br)) {color = 255;}}
__asm { STRB color,[#0x48000415]}
WR_STROBE;
WR_STROBE; //
}
}
GPIOB->BRR = 0x80; // reset PB7 dlya izmereniya vremeni cykla
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
55 mS
Спасибо!
Добавлено after 26 minutes 34 seconds:
Re: Народный осциллограф "Мурзик" на базе STM32F303VCT6 - проект
Блин, что делает компилятор?
Если сделать так
// LCD_CS0; //
// LCD_DC1; // data
то время отрисовки увеличивается до 64 милисекунды ???
Эти сигналы мне не нужны
CS - аппаратно на земле
DC - возвращается в 1 по выходу из SendCMD
if (fft ==0)
{
SendCMD(ILI9341_MAC);
SendData(Orient_Book1); //88
SendCMD(ILI9341_PAGE_ADDR);// ILI9486_PAGE_ADDR
SendData(0);
SendData(10); // 47
SendData(0x01);
SendData(0xDF); //479
SendCMD(ILI9341_COLUMN_ADDR);// ILI9486_COLUMN_ADDR
SendData(0);
SendData(43); // 43
SendData(0x01);
SendData(0x19); // 281
SendCMD(ILI9341_GRAM); // ILI9486_GRAM
LCD_CS0; //
LCD_DC1; // data
GPIOB->BSRR = 0x80; // set PB7 dlya izmereniya vremeni cykla
register int ar __asm("r3");
register int br __asm("r6");
for (uint16_t j = 1; j < 384; j++) {
ar = buffer[sdvig+j];
br = buffer[sdvig+j-1];
for (uint16_t i = 1; i < 240; i++) {
color = 0;
if (!(i - (i * 43691 >> 20) * 24) || !(j - (j * 43691 >> 20) * 24)) color = 16;// Grid
if (i==120) {color = 4;} // Centr
if (j==192) {color = 4;} // Centr
if (OSD==1) {
if (i == SynU) {color = 54;}
if (i == U_0) {color = 231;}
}
//if (i == buffer [j+sdvig] ) color = 255; // otrisovka tochkami
if (ar > br)
{
if ((i<=1+ar)&(i>=1+br)) {color = 255;}
}
else{if ((i>=1+ar)&(i<=1+br)) {color = 255;}}
__asm { STRB color,[#0x48000415]}
WR_STROBE;
WR_STROBE; //
}
}
GPIOB->BRR = 0x80; // reset PB7 dlya izmereniya vremeni cykla
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
55 mS
Спасибо!
Добавлено after 26 minutes 34 seconds:
Re: Народный осциллограф "Мурзик" на базе STM32F303VCT6 - проект
Блин, что делает компилятор?
Если сделать так
// LCD_CS0; //
// LCD_DC1; // data
то время отрисовки увеличивается до 64 милисекунды ???
Эти сигналы мне не нужны
CS - аппаратно на земле
DC - возвращается в 1 по выходу из SendCMD
IVL ex UA6PJ
- Реклама
Re: Народный осциллограф "Мурзик" на базе STM32F303VCT6 - пр
Кстати, 120MHz - это минимум 2WS, у меня было 3, по правилам должно 4, а при выполнении из CCM будет 0, потому перенеся свою функцию в CCM я получил 13 ms 
Re: Народный осциллограф "Мурзик" на базе STM32F303VCT6 - пр
"Блин, что делает компилятор?"
это вопрос к компилятору
а так, как бе теоретически (но по дилетантски): от реального расположения куска кода в нем может измениться способ адресации, в одном случае применит просто смещение к инфе, что уже есть в каком-нибудь регистре, а в другом будет подгружать адрес из флэша.
"перенеся свою функцию в CCM"
этот пилотаж пока не про меня, я даже не знаю в каких камнях это водится.
это вопрос к компилятору
а так, как бе теоретически (но по дилетантски): от реального расположения куска кода в нем может измениться способ адресации, в одном случае применит просто смещение к инфе, что уже есть в каком-нибудь регистре, а в другом будет подгружать адрес из флэша.
"перенеся свою функцию в CCM"
этот пилотаж пока не про меня, я даже не знаю в каких камнях это водится.
Re: Народный осциллограф "Мурзик" на базе STM32F303VCT6 - пр
[uquote="a797945",url="/forum/viewtopic.php?p=3891399#p3891399"]этот пилотаж пока не про меня, я даже не знаю в каких камнях это водится.
[/uquote]
F3/G4/F7/H7... У F4 CCM как бы есть, но только для данных, код из нее выполнять нельзя. На F3 у меня и раньше использовалось, можно за 2 такта с порта читать.
F3/G4/F7/H7... У F4 CCM как бы есть, но только для данных, код из нее выполнять нельзя. На F3 у меня и раньше использовалось, можно за 2 такта с порта читать.
Re: Народный осциллограф "Мурзик" на базе STM32F303VCT6 - пр
вот, поэтому и не в курсе - мне по развлекаться и f103 пока выше крыши.
- Реклама
- 240265
- Электрический кот
- Сообщения: 1029
- Зарегистрирован: Сб мар 09, 2013 11:29:22
- Откуда: 40RUS, Жуков
Re: Народный осциллограф "Мурзик" на базе STM32F303VCT6 - пр
"этот пилотаж пока не про меня" , для меня тоже. В принципе 16-17 fps вполне устраивают. Я стм и кейл начал изучать с первых исходников от Fusion углубляюсь потихоньку, но времени мало.
Добавлено after 12 minutes 21 second:
Re: Народный осциллограф "Мурзик" на базе STM32F303VCT6 - проект
Мурзик с экраном 480х320 от FLY IQ239
Добавлено after 12 minutes 21 second:
Re: Народный осциллограф "Мурзик" на базе STM32F303VCT6 - проект
Мурзик с экраном 480х320 от FLY IQ239
- Вложения
-
- 084_cr.jpg
- (239.46 КБ) 352 скачивания
IVL ex UA6PJ
Re: Народный осциллограф "Мурзик" на базе STM32F303VCT6 - пр
У меня очередной теоретический вопрос. Есть фрейм вывода осциллограммы, тут же рисуется сетка. Количество отсчетов в одном делении сетки(по Х) и количество пикселей дисплея на один отсчет? Кто и как решил для себя этот вопрос?
У меня два дисплея: 320х240 3,2 дюйма и 480х320 3,5 дюйма. Диагональ почти одинаковая, у второго получается кол-во пикселей по Х в 1,5 больше, т.е. осциллограмма визуально будет сжата.
У меня два дисплея: 320х240 3,2 дюйма и 480х320 3,5 дюйма. Диагональ почти одинаковая, у второго получается кол-во пикселей по Х в 1,5 больше, т.е. осциллограмма визуально будет сжата.
Re: Народный осциллограф "Мурзик" на базе STM32F303VCT6 - пр
держите теоретический ответ от не профессионала:
Вы же, по любому, выбираете решение из компромисса между желаниями и возможностями. какие критерии назначите - такие пути к решениям и сложатся.
решил "поменьше объем кода" - то "один пиксель - один замер"и"сетка по степени 2" - в результате получил начало разверток "2,4,10,20", а не типовое "1,2,5".
а захотел бы (при тех же технических данных) и ряд разверток типовой и чтоб начинался от 0.2 - то и сетка была б другая и "луч" по огибающей (по функции), за-то килограммы математики.
или вот у Вас - применяете "видео буфер" в озу МК, прикрутите к нему формирование синхронизации и можете выводить хоть на матрицу от ноута. а на методе, что в мурзике это невозможно - там "видео буфер" должен быть в контроллере дисплея.
или я опять не понял вопроса. тогда так: начните делать, если использовать минимум преобразований, вариантов останется не много. например: сколько у Вас отсчетов на 1 мкс? ну и сколько сделаете сетку? это вяжется на делителях таймера для шага развертки 1,2,5? совместите все это и получите искомое число.
Вы же, по любому, выбираете решение из компромисса между желаниями и возможностями. какие критерии назначите - такие пути к решениям и сложатся.
решил "поменьше объем кода" - то "один пиксель - один замер"и"сетка по степени 2" - в результате получил начало разверток "2,4,10,20", а не типовое "1,2,5".
а захотел бы (при тех же технических данных) и ряд разверток типовой и чтоб начинался от 0.2 - то и сетка была б другая и "луч" по огибающей (по функции), за-то килограммы математики.
или вот у Вас - применяете "видео буфер" в озу МК, прикрутите к нему формирование синхронизации и можете выводить хоть на матрицу от ноута. а на методе, что в мурзике это невозможно - там "видео буфер" должен быть в контроллере дисплея.
или я опять не понял вопроса. тогда так: начните делать, если использовать минимум преобразований, вариантов останется не много. например: сколько у Вас отсчетов на 1 мкс? ну и сколько сделаете сетку? это вяжется на делителях таймера для шага развертки 1,2,5? совместите все это и получите искомое число.
Последний раз редактировалось a797945 Вс сен 13, 2020 11:44:13, всего редактировалось 1 раз.
- 240265
- Электрический кот
- Сообщения: 1029
- Зарегистрирован: Сб мар 09, 2013 11:29:22
- Откуда: 40RUS, Жуков
Re: Народный осциллограф "Мурзик" на базе STM32F303VCT6 - пр
Да , шаг сетки делается кратным максимальному количеству преобразований в секунду (сэмплов). В Мурзике максимум 48 мегасемплов, потому я сделал сетку 24 пикселя, получилось минимальное время развертки 0.5 мкСек/деление. Если сделать сетку 48 пикселей будет 1 мкСек/деление и т. д.. а дальше увеличиваете период опроса АЦП с шагом 1,2,5.
Добавлено after 3 minutes 28 seconds:
Re: Народный осциллограф "Мурзик" на базе STM32F303VCT6 - проект
Первые 2 диапазона я опрашиваю порт на ассемблере, дальше ДМА и таймер.
Добавлено after 3 minutes 28 seconds:
Re: Народный осциллограф "Мурзик" на базе STM32F303VCT6 - проект
Первые 2 диапазона я опрашиваю порт на ассемблере, дальше ДМА и таймер.
IVL ex UA6PJ
Re: Народный осциллограф "Мурзик" на базе STM32F303VCT6 - пр
У меня сейчас 10 мегасемплов. Рисовал 40 и 50 пикселей сетку, получается 4 и 5 микросекунд. 4 мкс не вяжется с 1-2-5. Попробую 20 пикселей и я кнопку у себя предусмотрел, изменение кол-ва пикселей на отсчет х1, х2, х5. Такой вот немудреный zoom. Спасибо за подсказку, буду пробовать
- 240265
- Электрический кот
- Сообщения: 1029
- Зарегистрирован: Сб мар 09, 2013 11:29:22
- Откуда: 40RUS, Жуков
Re: Народный осциллограф "Мурзик" на базе STM32F303VCT6 - пр
20 пикселей мелковато будет , переводи АЦП в Triple Mode и делай 30 точек. Или внешний АЦП.
IVL ex UA6PJ
Re: Народный осциллограф "Мурзик" на базе STM32F303VCT6 - пр
[uquote="240265",url="/forum/viewtopic.php?p=3892057#p3892057"]20 пикселей мелковато будет , переводи АЦП в Triple Mode и делай 30 точек. Или внешний АЦП.[/uquote]
"Мурзик с экраном 480х320 от FLY IQ239" - а здесь сколько, интересно.
С внешним АЦП - это вторая часть балета. Я на этом проекте хочу мозги себе (и Вам
повынести. А с Triple Mode я ковырялся,сейчач уже не помню, что то мне в нем не понравилось.
При 240MHz Triple Mode 12MSPS. Если задирать частоту выше, у АЦП начинались глюки - маленькую( до 1вольта он оцифровывал, потом переставал реагировать на увеличение амплитуды и где то после 2,2 вольта входных он резко выдавал амплитуду 3,3 вольта, хотя на входе у него было 2,5. Вот почему я и выбрал Dual mode и 240MHz.
"Мурзик с экраном 480х320 от FLY IQ239" - а здесь сколько, интересно.
С внешним АЦП - это вторая часть балета. Я на этом проекте хочу мозги себе (и Вам
При 240MHz Triple Mode 12MSPS. Если задирать частоту выше, у АЦП начинались глюки - маленькую( до 1вольта он оцифровывал, потом переставал реагировать на увеличение амплитуды и где то после 2,2 вольта входных он резко выдавал амплитуду 3,3 вольта, хотя на входе у него было 2,5. Вот почему я и выбрал Dual mode и 240MHz.
- Theodoro
- Грызет канифоль
- Сообщения: 290
- Зарегистрирован: Чт янв 11, 2018 14:32:00
- Откуда: Новгородская обл.
Re: Народный осциллограф "Мурзик" на базе STM32F303VCT6 - пр
Приехали новые AD9280. Маркировка облезла, но однако рабочие. Начал настройку, и сразу вопрос.
Реле переключения входного делителя работает наоборот. Реле применил обычное неполяризованное, электролит закорочен.
После старта на затворах полевиков 0, реле включено. Как проще исправить ситуацию с минимальной переделкой схемы и печатки? Может оставить один 2N7002 в качестве ключа и всё? Придется резать дорожки бросать перемычки.
Хорошо бы програмно инвертировать сигнал, но это фантастика, сынок.
Реле переключения входного делителя работает наоборот. Реле применил обычное неполяризованное, электролит закорочен.
После старта на затворах полевиков 0, реле включено. Как проще исправить ситуацию с минимальной переделкой схемы и печатки? Может оставить один 2N7002 в качестве ключа и всё? Придется резать дорожки бросать перемычки.
Хорошо бы програмно инвертировать сигнал, но это фантастика, сынок.
-
man_200
- Вымогатель припоя
- Сообщения: 507
- Зарегистрирован: Вс янв 20, 2013 12:45:25
- Откуда: Астана, Казахстан
Re: Народный осциллограф "Мурзик" на базе STM32F303VCT6 - пр
Этот вопрос многократно задавался. Я поменял местами выводы обмотки реле, но оно поляризованное. Его применение уменьшает ток потребления. Как вариант - ставь переключатель
- 240265
- Электрический кот
- Сообщения: 1029
- Зарегистрирован: Сб мар 09, 2013 11:29:22
- Откуда: 40RUS, Жуков
Re: Народный осциллограф "Мурзик" на базе STM32F303VCT6 - пр
"Мурзик с экраном 480х320 от FLY IQ239" 24 пикселя на клетку (48 Мегасэмплов/Сек).
Theodoro, Инвертируй сигнал аппаратно , под каждую "хотелку"..........
Theodoro, Инвертируй сигнал аппаратно , под каждую "хотелку"..........
IVL ex UA6PJ
- Theodoro
- Грызет канифоль
- Сообщения: 290
- Зарегистрирован: Чт янв 11, 2018 14:32:00
- Откуда: Новгородская обл.
Re: Народный осциллограф "Мурзик" на базе STM32F303VCT6 - пр
Подключил реле через n-канальный 2N7002. Переключаться стало правильно, но есть вопрос. При старте происходит кратковременное включение реле. Это что переходные процессы или програмно?. Вообще то сие не есть гуд, и видимо придется заказывать IM41.
- 240265
- Электрический кот
- Сообщения: 1029
- Зарегистрирован: Сб мар 09, 2013 11:29:22
- Откуда: 40RUS, Жуков
Re: Народный осциллограф "Мурзик" на базе STM32F303VCT6 - пр
Программно, так сказать "инициализация" IM41.
IVL ex UA6PJ
- Theodoro
- Грызет канифоль
- Сообщения: 290
- Зарегистрирован: Чт янв 11, 2018 14:32:00
- Откуда: Новгородская обл.
Re: Народный осциллограф "Мурзик" на базе STM32F303VCT6 - пр
Ведь говорила мама советовали добрые люди питать 1-ю ногу МК от батарейки. Все откладывал. В результате подал на схему по запарке 9 В.
Все выжило и работает, а вход "BAT" конечно - гвоздь.
Но это - пол беды. Запаял новый STM32F303CBT6 и вижу такую картину:

Брал здесь. Судя по отзывам, жалоб нет.
Так что только моему МК мозгов не доложили, или у меня их не хватает?
Что то у Мурзика аппетит разыгрался, почти как у моего Мартына (см. аватарку)
Но это - пол беды. Запаял новый STM32F303CBT6 и вижу такую картину:
Брал здесь. Судя по отзывам, жалоб нет.
Так что только моему МК мозгов не доложили, или у меня их не хватает?
Что то у Мурзика аппетит разыгрался, почти как у моего Мартына (см. аватарку)
- 240265
- Электрический кот
- Сообщения: 1029
- Зарегистрирован: Сб мар 09, 2013 11:29:22
- Откуда: 40RUS, Жуков
Re: Народный осциллограф "Мурзик" на базе STM32F303VCT6 - пр
Загрузил в ST-LINK говорит размер 0xF420 что есть 62496 Байт.
Добавлено after 1 minute 11 seconds:
Re: Народный осциллограф "Мурзик" на базе STM32F303VCT6 - проект
А МК у Вас похоже не тот.
Добавлено after 1 minute 11 seconds:
Re: Народный осциллограф "Мурзик" на базе STM32F303VCT6 - проект
А МК у Вас похоже не тот.
IVL ex UA6PJ
Re: Народный осциллограф "Мурзик" на базе STM32F303VCT6 - пр
Интересует мнение, за и против использования исходников от осцилла dso 202 или 212.
Есть плюсы:
- поддержка двух лучей,
- 10 Мсэмплов на канал,
- usb диск для скриншотов и обновлений,
- открытые исходники,
- генератор сигнала,
- параллельная 16 битная шина дисплея,
- можно адаптировать под дисплей 320х480,
Я щас занимаюсь адаптацией под дисплей fly iq 239, взял версию исходников 212 модели, схемы под нее нет, в исходниках не все понятно, поэтому методом тыка разбираюсь с ножками и куда что идет.
Купил у бурундуков stm32, распаял на китайском переходнике, в таком виде разбираюсь.
Исходники компилятся под iar 6.5 без проблем.
Для ковыряния в импульсных бп самое то, 700 кгц показывает, нежалко сжечь проц и дисплей, закупил партию fly iq 230 и 239.
https://yadi.sk/d/MZwJ0NqGODwczg?w=1
Куча исходников под dso есть на китайском сайте, гуглится легко.
Есть плюсы:
- поддержка двух лучей,
- 10 Мсэмплов на канал,
- usb диск для скриншотов и обновлений,
- открытые исходники,
- генератор сигнала,
- параллельная 16 битная шина дисплея,
- можно адаптировать под дисплей 320х480,
Я щас занимаюсь адаптацией под дисплей fly iq 239, взял версию исходников 212 модели, схемы под нее нет, в исходниках не все понятно, поэтому методом тыка разбираюсь с ножками и куда что идет.
Купил у бурундуков stm32, распаял на китайском переходнике, в таком виде разбираюсь.
Исходники компилятся под iar 6.5 без проблем.
Для ковыряния в импульсных бп самое то, 700 кгц показывает, нежалко сжечь проц и дисплей, закупил партию fly iq 230 и 239.
https://yadi.sk/d/MZwJ0NqGODwczg?w=1
Куча исходников под dso есть на китайском сайте, гуглится легко.


