ibiza11 писал(а):не знаю, но попробуйте перенести проект поближе к корневому каталогу диска, без кириллических символов в пути.
Спасибо, за напоминания азбучных истин, поставлю поближе к корневому каталогу диска, без кириллических символов в пути. За 3 года таких проблем не имел при Ф1-дисковери, Ф4-дисковери и Ф3-дисковери, появилось оно первый раз на Ф3-дисковери где-то 4-5 дней назад и вчера потом после перезагрузки оно исчезло.
Поздравляю, осталось малость только причесать эти 4 суррогатных АЦП и привести к одному общему. А можно привести прямоуголку 500кГц от таймера.Через 3 одинаковых резистора по (430 – 560) Ом , где первый резистор подключен к выходу таймера 500кГц и входам АЦП1-4; второй и третий резисторы одним концом также подключены к входам АЦП1-4, а отставшие концы на землю и +3В.
Arpad и Kitano8, примите поздравления с победой над АЦП F303. Дополнительные сведения можно узнать? 1. Разрядность 10 или 12 бит 2. Режим работы DMA - каждый в свой массив или попарно 4 АЦП в 2 массива
Разрядность 12 бит, это видно по значениям графика, 4 ацп - 4 массива. При работе двух ацп в режиме интерлива и одном запросе ДМА возможны сбои (см. errata). Удалось более-менее настроить при индивидуальных запросах ДМА от каждого АЦП. У Arpad'а интересный прибор, где бы описание посмотреть? Есть ли интерполяция?
Разрядность 10 бит, видно по значениям ADC1-4, с 4-х ADC - в 2 массива; Без ДМА, интерполяции нет, желаю видеть, что есть, на самом деле подавая известное, а не дополнительные артефакты еще с суррогатных 12-битных ADC.
И успевает оно за 12 тактов сохранить 2 32 битных значения в массивы от АЦП, увеличить 2 раза указатель, проверить флаг завершения цикла, синхронизироваться (подождать) флаг готовности периферии, проверить окончание буфера и начать оба буфера сначала при необходимости? Что то меня мучают сомнения по этому поводу. Особенно когда наступит переполнение буфера (долго ждем одиночного импульса). Все таки dma для таких целей лучше использовать. Включил и ждешь. Событие синхронизации (аналоговая сторож собака) запустила таймер, который отсчитал заданное время == времени заполнения половины буферов. По окончании отсчета этого времени таймер, который запустился от аналог сторож собаки остановил таймер запуска АЦП, вызвал прерывание. В прерывании установить флаг захвата. В основном цикле дождались установки флага захвата, и отрисовали буфера. Положение события захвата расчитывается исходя из задержки отключения и состояния DMA. Буфера можно отрисовывать с разным масштабом, по какому нибудь алгоритму соединения нескольких точек в одну (среднее, мин-макс например). Если есть желание сделать стробоскоп - тогда запускающий АЦП таймер нужно запускать от другого таймера. После каждого запуска сдвигать управл выход этого таймера на 1 такт. В результате за 3 таких подхода можно достичь 72 мегагерц выборки 10 бит на один канал. Если два канала - то за 6 подходов. Кстати если использовать стробоскопич режим - то можно увеличить количество подходов и разрядность до 12 бит. Ну это так, мысли вслух. p.s. Еще обнаружил небольшое несовпадение отрицат и положит импульсов по длительности на осцилограмме 3 мегагерца. Каким образом удалось совместить 24 мегагерца и 0,2 микросек на деление? Получается по 4.8 точки на деление. Лучше взять 6 целых точек на деление и соотв получится 0.250 микросекунд на деление. Нестандартно конечно(0,25 - 0,5 - 1 - 2 - 5 - 10 .... ), но целые точки - это по моему хорошо. Для 3 мегагерц должно быть 8 точек на периоде. У меня такое ощущение что там точек побольше, какими то скругленными выглядят переходы от крыши импульса к фронтам.
Последний раз редактировалось Galizin Ср ноя 27, 2013 14:40:37, всего редактировалось 1 раз.
Задание МК надо давать в меру возможностей Ф303 и ассемблером брезговать не надо. Все упрощено до минимума – и критерий лишь бы получить стабильное и заданное изображение на экране. Сигнал, который не разваливается после появления на экране и более менее соответствует форме поданному на входы 4-х АЦП работающем в режиме чередования. (Уже при 4 МГц пол экрана залит крякозабрями, а не меандром.) «Все таки dma для таких целей лучше использовать. Включил и ждешь» – Согласен, но это надо кому-то понимающем в этом сделать!! «Долго ждем одиночного импульса» задача такая не ставилась Может и поймаем случайно Буфера по 2*4Кслов. На осциллограмме 2 мегагерца период в среднем занимает около 37-38 пикселей 15 пикселей = 0.2мкс/дел 1пиксель равно = 0.013333 мкс 0.013333 мкс * 37.5 пикселей = 0.333мкс = 0.495 мкс = 2.02 МГц. «Для 3 МГц должно быть 8 точек на периоде. У меня такое ощущение что там точек побольше, какими то скругленными выглядят переходы от крыши импульса к фронтам. » на осциллограмме 3 мегагерца период в среднем занимает около 25 пикселей 15 пикселей = 0.2мкс/дел 1пиксель равно = 0.013333 мкс 0.013333 мкс * 25 пикселей = 0.333мкс = 3.003 МГц. Приложение Обведенные овалом фронты утолщенные и еще есть иногда прыжки периода на 1-2 пиксель местами или дрожание, но причины толком (муар и др) не занимался.
Уже при 4 МГц пол экрана залит крякозабрями, а не меандром
опишите как делали. ADC1/2/3/4 тактируются от разных ШИМов, ADC1 привязан к DMA1, 2/3/4 - DMA2. настройка должна быть тривиальной. возможно, лучше распределить запуск каналов как 1-3-2-4.
на осциллограмме 3 мегагерца период в среднем занимает около 25 пикселей
Arpad писал(а):
интерполяции нет
Вот тут я не понимаю как это работает. С одной стороны нет интерполяции, с другой 25 пикселей на 3 мегагерцах. АЦП работает на 24 мегагерцах. 3 МГц на периоде АЦП оцифровывает 24/3 = 8 точек. Откуда беруться дополнительные? Непонятно. Должны были бы браться из алгоритма интерполяции. так что интерполяция должна быть. Нужно же как то заполнять оставшиеся 25-8 пикселей. Хотя возможно что Вы просто считывали выходной регистр АЦП и сохраняли его в памяти в цикле. Ну итак пока весь буфер не заполнится. Потом анализировали буфер для синхронизации. Тогда можно сделать предположение о причинах неравномерности. Сначала считывается первый двойной регистр, потом второй двойной регистр (ADCx_CDR). Потом нужно проверить счетчик, увеличить его и перейти на начало. На последние операции требуется дополнительное время. Отсюда может быть и неравномерность. Также можно сделать предположение почему может разваливаться картинка на 4 мегагерцах. Если запуск АЦП как 1-3-2-4 (что логично) то потом нужно будет для отображения собирать их в том же порядке. Возможно сборка для отображения производится не в том порядке. Такое предположение конечно слабо, но что либо более конкретное без кода тяжело предположить. А по поводу программирования. У меня нет 303. так что пробовать не на чем. Конечно можно купить discovery. Но я пока не отважился на сборку осциллографа.
Интерполяцией называют такую разновидность аппроксимации, при которой кривая построенной функции проходит точно через имеющиеся точки данных. Программа рисования на ЖКИ заполняет пробелы между имеющими точками по своему усмотрению и это мне тяжело назвать интерполяцией, ибо реальность может быть совсем другим. Любые виды интерполяции при определенных моментах могут дать все, что угодно при неизвестном входном сигнале. По принципу: какой закажете – такой сделаем.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 41
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения