Цифровой осциллограф с нуля.
- Реклама
-
linkov1959
- Держит паяльник хвостом
- Сообщения: 923
- Зарегистрирован: Пн сен 10, 2018 19:16:28
Re: Цифровой осциллограф с нуля.
240265, Через DMA в массив adc[8000] за 3mS. АЦП 21Мгц.
Re: Цифровой осциллограф с нуля.
[uquote="Martian",url="/forum/viewtopic.php?p=4147188#p4147188"]Вообще-то умножение не намного лучше. Нормально стараться использовать сдвиг, вместо деления или умножения.[/uquote]Вообще-то в CM3,CM4,CM7 умножение по скорости не отличается от отдельной команды сдвига. Ознакомьтесь с системой команд.
PS: И может просветите нас - как одним только сдвигом реализовать деление на 17, которое нужно ТС-у?
PS: И может просветите нас - как одним только сдвигом реализовать деление на 17, которое нужно ТС-у?
- 240265
- Электрический кот
- Сообщения: 1029
- Зарегистрирован: Сб мар 09, 2013 11:29:22
- Откуда: 40RUS, Жуков
Re: Цифровой осциллограф с нуля.
linkov1959, "На фронте нарушается чередование каналов" на "чудеса" похоже. Как в штатном режиме такое может быть? У меня просто сильно шумел. И GFX про это же писал.
Добавлено after 45 minutes 22 seconds:
А если разгон убрать?
Добавлено after 38 minutes 25 seconds:
У тебя буфер 16 битный, а ДМА забирает 32 бита.
Добавлено after 4 minutes 15 seconds:
Потом эти 32 бита нужно разделить на два 16 битных АЦП1 и АЦП2 и потом выводить в график.
Добавлено after 45 minutes 22 seconds:
А если разгон убрать?
Добавлено after 38 minutes 25 seconds:
У тебя буфер 16 битный, а ДМА забирает 32 бита.
Добавлено after 4 minutes 15 seconds:
Потом эти 32 бита нужно разделить на два 16 битных АЦП1 и АЦП2 и потом выводить в график.
IVL ex UA6PJ
-
linkov1959
- Держит паяльник хвостом
- Сообщения: 923
- Зарегистрирован: Пн сен 10, 2018 19:16:28
Re: Цифровой осциллограф с нуля.
240265, разгон убрал в первую очередь, не помогло и многое, что делал. Буфер 16 бит потому что АЦП в 32бит регистр пишет два канала по 16 и ДМА их сразу забирает.
Чудеса я вижу или в китайском камне или ошибкой CUBE библиотек. Ну не могут быстрый и медленный интерлив работать в одни такты. Проблема решена, ну и поехали дальше.
Пора синхронизацию писать. А чем регулировать уровень? Кнопками?
Чудеса я вижу или в китайском камне или ошибкой CUBE библиотек. Ну не могут быстрый и медленный интерлив работать в одни такты. Проблема решена, ну и поехали дальше.
Пора синхронизацию писать. А чем регулировать уровень? Кнопками?
- Реклама
Re: Цифровой осциллограф с нуля.
[uquote="jcxz",url="/forum/viewtopic.php?p=4147363#p4147363"]PS: И может просветите нас - как одним только сдвигом реализовать деление на 17, которое нужно ТС-у?
[/uquote]Вы какую-то ерунду пишите. Читайте внимательней.
Re: Цифровой осциллограф с нуля.
..Буфер 16 бит потому что АЦП в 32бит регистр пишет два канала по 16 и ДМА их сразу забирает...
Вы полагаете дма одной транзакцией забирает и двумя передает в память?
Вы полагаете дма одной транзакцией забирает и двумя передает в память?
-
linkov1959
- Держит паяльник хвостом
- Сообщения: 923
- Зарегистрирован: Пн сен 10, 2018 19:16:28
Re: Цифровой осциллограф с нуля.
a797945, ДМА ничего не знает про наши массивы 16бит, он знает только начальный адрес, регистр 32 бит(откуда забирать) и длину записи. Но мы знаем, что 32бит составлены из двух каналов по 16бит и при выводе на дисплей это учитываем.
Re: Цифровой осциллограф с нуля.
Вставлю свои 3 копейки.
Пытал АЦП на 407, потом 103, сейчас 303.
ИМХО, если конечная цель CM7, не тратьте время на младшие камни. Везде есть свои нюансы и при перетаскивании кода с камня на камень можно угробить уйму времени, лучше сразу на CM7.
Потом следующий вопрос - вывод осц-мы на экран. Я сначала добивался мах скорости вывода на экран. Если в камне есть FSMC(FMC) и в наличии есть экран с парал-ым интерфейфом - это одно. Если нет, тогда вывод по SPI с использованием DMA.
Еще совет - определиться со фреймом вывода, должны же быть надписи всякие и т.п., то есть размер буфера изображения можно уменьшить. 103 - 20кб, 303 - 40 кб оперативной памяти. Отрисовать осц-му в буфер и потом скинуть ее в дисплей с помощью DMA или FSMC.
У 103с8 АЦП нельзя переключить на разрешение 8 бит.
Пытал АЦП на 407, потом 103, сейчас 303.
ИМХО, если конечная цель CM7, не тратьте время на младшие камни. Везде есть свои нюансы и при перетаскивании кода с камня на камень можно угробить уйму времени, лучше сразу на CM7.
Потом следующий вопрос - вывод осц-мы на экран. Я сначала добивался мах скорости вывода на экран. Если в камне есть FSMC(FMC) и в наличии есть экран с парал-ым интерфейфом - это одно. Если нет, тогда вывод по SPI с использованием DMA.
Еще совет - определиться со фреймом вывода, должны же быть надписи всякие и т.п., то есть размер буфера изображения можно уменьшить. 103 - 20кб, 303 - 40 кб оперативной памяти. Отрисовать осц-му в буфер и потом скинуть ее в дисплей с помощью DMA или FSMC.
У 103с8 АЦП нельзя переключить на разрешение 8 бит.
-
linkov1959
- Держит паяльник хвостом
- Сообщения: 923
- Зарегистрирован: Пн сен 10, 2018 19:16:28
Re: Цифровой осциллограф с нуля.
mihlit2, на 103 камне я отрабатываю навыки работы со средой программирования CubeIDE, а на этот камень много примеров и уроков.
На самом деле CubeIDE не сложней, чем ардуино, баском или микробейсик, а возможностей больше, особенно на сложных камнях.
На самом деле CubeIDE не сложней, чем ардуино, баском или микробейсик, а возможностей больше, особенно на сложных камнях.
Re: Цифровой осциллограф с нуля.
взяли слово:
ст.>0001000F<мл. это >adc2,adc1<
сохранили в пямять как 32 р.
0F 00 01 00
читаем как 16 р.
1: 000F. -adc1
2: 0001. -adc2
но в интерливе adc2 стартует раньше
я ошибаюсь?
да еще, на преобразование минимум 14 тактов, если оно зациклено ( т.е. не ждет никакой триггер) - через 14 тактов обновленные данные в df . Если включен фаст - старт adc1 смещен на 7 тактов - т.е. через те же 14 тактов новые значения, но собраные через 7 тактов, а в лоу - adc1 стартует через 14 тактов. дальше сами понимаете.
ст.>0001000F<мл. это >adc2,adc1<
сохранили в пямять как 32 р.
0F 00 01 00
читаем как 16 р.
1: 000F. -adc1
2: 0001. -adc2
но в интерливе adc2 стартует раньше
я ошибаюсь?
да еще, на преобразование минимум 14 тактов, если оно зациклено ( т.е. не ждет никакой триггер) - через 14 тактов обновленные данные в df . Если включен фаст - старт adc1 смещен на 7 тактов - т.е. через те же 14 тактов новые значения, но собраные через 7 тактов, а в лоу - adc1 стартует через 14 тактов. дальше сами понимаете.
Re: Цифровой осциллограф с нуля.
[uquote="linkov1959",url="/forum/viewtopic.php?p=4147646#p4147646"]mihlit2На самом деле CubeIDE не сложней, чем ардуино, баском или микробейсик, а возможностей больше, особенно на сложных камнях.[/uquote]Ксожалению, это первое впечатление, которое обычно проходит. Там пока ещё хватает недоработок и ошибок (вызывающих у некоторых острую негативную реакцию). Но возможно, когда-нибудь этот кодогенератор станет достойным продуктом.
-
linkov1959
- Держит паяльник хвостом
- Сообщения: 923
- Зарегистрирован: Пн сен 10, 2018 19:16:28
Re: Цифровой осциллограф с нуля.
A new ADC2 start is automatically generated after 28 ADC clock cycles ( при смещении 14)
Добавлено after 4 minutes 50 seconds:
a797945, Я тоже так понимаю, но медленный интерлив 28тактов должен быть, а компилятор 14 делает.
Если АЦП2 стартует раньше, то и выводить его нужно первым?
Добавлено after 2 hours 23 minutes 35 seconds:
Наконец, разобрался! На пиле видно, что перепутан порядок вывода четных и нечетных пикселей. Нужно в массиве четные и нечетные поменять местами.
Сделал, как смог и пила стала чистой с полным разрешением. Я массив не трогал, а выводил четные и нечетные отдельно.
Добавлено after 28 minutes 42 seconds:
Замена четных и нечетных массива.
for (i = 0; i < 8000; i+=2) {
g=adc;
adc=adc[i+1];
adc[i+1]=g;
}
Добавлено after 4 minutes 50 seconds:
a797945, Я тоже так понимаю, но медленный интерлив 28тактов должен быть, а компилятор 14 делает.
Если АЦП2 стартует раньше, то и выводить его нужно первым?
Добавлено after 2 hours 23 minutes 35 seconds:
Наконец, разобрался! На пиле видно, что перепутан порядок вывода четных и нечетных пикселей. Нужно в массиве четные и нечетные поменять местами.
Сделал, как смог и пила стала чистой с полным разрешением. Я массив не трогал, а выводил четные и нечетные отдельно.
Добавлено after 28 minutes 42 seconds:
Замена четных и нечетных массива.
for (i = 0; i < 8000; i+=2) {
g=adc;
adc=adc[i+1];
adc[i+1]=g;
}
- Вложения
-
- slov.jpg
- (17.46 КБ) 112 скачиваний
- Fusion
- Грызет канифоль
- Сообщения: 272
- Зарегистрирован: Пт ноя 13, 2009 10:39:32
- Откуда: Москва
- Контактная информация:
Re: Цифровой осциллограф с нуля.
240265
У меня аналогичный шум в начале массива.
То ли АЦП не разогнался, то ли еще что нибудь.
Я пропускаю 16 первых значений при поиске синхронизации.
У меня аналогичный шум в начале массива.
То ли АЦП не разогнался, то ли еще что нибудь.
Я пропускаю 16 первых значений при поиске синхронизации.
-
linkov1959
- Держит паяльник хвостом
- Сообщения: 923
- Зарегистрирован: Пн сен 10, 2018 19:16:28
Re: Цифровой осциллограф с нуля.
Fusion, Я собрал Ваш ослик на 303CB.
http://ansvet.ru/stm/f3_osc_320x240/
Работает, но требует доработки и в проге и в схеме. Не могли бы скинуть мне весь проект в личку?
Добавлено after 38 minutes 49 seconds:
пила 50кГц меандр 50 кГц
http://ansvet.ru/stm/f3_osc_320x240/
Работает, но требует доработки и в проге и в схеме. Не могли бы скинуть мне весь проект в личку?
Добавлено after 38 minutes 49 seconds:
пила 50кГц меандр 50 кГц
Re: Цифровой осциллограф с нуля.
период полторы клетки ?
-
linkov1959
- Держит паяльник хвостом
- Сообщения: 923
- Зарегистрирован: Пн сен 10, 2018 19:16:28
Re: Цифровой осциллограф с нуля.
a797945, период 20мкС - 60 выборок, 3 мегасимпла. На одну клетку 13мкС.
Разогнал АЦП до 32Мгц. 4.6 мегасимпла. Частота 50кГц пила.
Добавлено after 42 minutes 48 seconds:
Меандр 100кГц. По моему неплохо для 103 камня.
Разогнал АЦП до 32Мгц. 4.6 мегасимпла. Частота 50кГц пила.
Добавлено after 42 minutes 48 seconds:
Меандр 100кГц. По моему неплохо для 103 камня.
-
linkov1959
- Держит паяльник хвостом
- Сообщения: 923
- Зарегистрирован: Пн сен 10, 2018 19:16:28
Re: Цифровой осциллограф с нуля.
АЦП 64МГц, 9 мегасиплов.
Пила 100кГц. Меандр 100кГц.
Пила 100кГц. Меандр 100кГц.
-
linkov1959
- Держит паяльник хвостом
- Сообщения: 923
- Зарегистрирован: Пн сен 10, 2018 19:16:28
Re: Цифровой осциллограф с нуля.
Решил перенести проект на H743, а библиотека ILI9341_GFX.c не работает. Там прописаны регистры SPI для F103, которых нет в H743, а есть много других регистров. И что теперь делать?
Re: Цифровой осциллограф с нуля.
[uquote="linkov1959",url="/forum/viewtopic.php?p=4149057#p4149057"]И что теперь делать?[/uquote]
Изучать новый SPI и переделывать, все равно библиотека ILI9341_GFX в концепцию осциллографа с нуля никак не вписывается
Для начала в либе стоить заменить на функции десятки раз вызываемые одинаковые фрагменты кода...
Изучать новый SPI и переделывать, все равно библиотека ILI9341_GFX в концепцию осциллографа с нуля никак не вписывается


