Перейти к содержанию
    

flammmable

Свой
  • Постов

    293
  • Зарегистрирован

  • Посещение

Весь контент flammmable


  1. Позвольте узнать, а зачем же вы тогда приводите в качестве примера наивысшей точности то устройство, о точности которого вы "без понятия"? Вам не кажется это нелогичным? )))))))))))))))))))))))) Кроме этого. Если вдруг ваше устройство не внесено в реестр СИ, и вы в ходе измерений получили значение длительность входного импульса в 1пс, что вас убеждает в том, что это действительно 1пс, а не 1,01пс или 100500пс?
  2. Не хочу вас расстраивать, но СКО у ГЭТ 1-2022 при измерении одной секунды составляет одну фемтосекунду. При измерении более коротких длительностей СКО соответственно уменьшится. Да, ГЭТ 1-2022 не получится напрямую использовать для измерения пикосекундных длительностей. Ну так и у эталона длины ГЭТ 2-2021 диапазон передачи единицы от 1нм до 30м. Но это не значит, что, скажем, геодезические тахеометры, измеряющие расстояние на 5000 метров, выкинуты из поверочной схемы.
  3. И вы, разумеется, способны привести пример такого средства измерения, а также назвать измеряемую им физическую величину?
  4. Его вариант - синхросигнал обязателен. Ваш вариант - его вариант тоже имеет право на жизнь, но синхросигнал не обязателен. Держу себя в руках изо всех сил. Нет. Мы ищем не единичный, а наихудший джиттер. Тот, при котором возможно повреждение данных. Я утверждаю, что наихудшим является последний бит последовательности перед пересинхронизацией. Первая мысль, которая у меня возникла: "А с чего бы ему не быть гауссовым? А каким ещё ему быть, как не гауссовым?". Но я быстро сообразил, что здесь есть большой простор для софистики. Ведь если, к примеру, вершина распределения смещена на бесконечно малое эпсилон, это уже как бы и не гауссово распределение вовсе. И вообще, что такое гауссово распределение, как не некая идеализированная абстракция? Поэтому давайте представим, что у нас последовательность из двух бит, и неизвестным распределением джиттера. Передний, так скажем фронт первого бита "закреплён". Задний - колеблется. При этом задний фронт первого бита одновременно является передним фронтом второго бита. Можем ли мы утверждать, что задний фронт второго бита будет колебаться ещё сильнее (относительно переднего, "закреплённого" фронта первого бита)? Если да, то далее рассматриваем последовательность из трёх бит. А затем по индукции последовательность в которой есть N и N-1 биты. Я утверждаю, что N бит всегда будет дрожать сильнее, чем N-1 бит. Вы утверждаете, что такое справедливо лишь для нормально распределённого джиттера. Крайне любопытно, что за тип распределения, на ваш взгляд, может дать иную картину? И почему джиттер в битовой последовательности может, даже ультратеоретически, быть распределён таким образом? Так. Предположим у нас есть передатчик битовой последовательности и приёмник битовой последовательности, синхросигнала нет. Передатчик и приёмник в 0 времени синхронизированы. Ввиду тактирования от разных источников, в некий момент t произойдёт рассинхронизация. Чтобы данные передавались стабильно, протокол - любой протокол - должен будет предусматривать пересинхронизацию до наступления момента t (пока предположим для простоты, что t - фиксирована). Предположим, мы записали осциллограмму длительностью M*t. То есть за это время произошло, как минимум, M-1 синхронизаций. И соответственно, M-1 скачков фазы идеального синхросигнала. Мы выделяем из передаваемых данных частоту синхросигнала. А фазу синхросигнала ставим на 0 записанной осциллограммы. Какой будет прок от этого синхросигнала в момент времени, скажем, (M-1)*t, когда фаза реального синхросигнала (относительно 0 времени) прыгнула уже M-2 раз? Если мы в соответствии с нашим аналитическим сигналом нарубим осциллограмму на глазковую диаграмму, то она покажет, что глаз закрыт. В то время, как в реальности данные бодро и безошибочно передавались. Попробую последовать вашей просьбе и уточню два важные детали. У нас имеется система: передатчик -> линия_передачи -> приёмник. Вопрос: куда вы подключите осциллограф, чтобы снять глазковую диаграмму? Если до приёмника, то что за компаратор вы имеете ввиду? Смотрите. По определению, в мире не существует средств измерения точнее, чем международные первичные эталоны. А в стране не существует средств измерения точнее, чем национальные первичные эталоны. Иначе почему первичным эталоном является эталон, а не является это "самое точное средство измерения"? Далее, чтобы адекватно производить передачу единицы измерения от первичных эталонов к рабочим средствам измерения необходимо, чтобы ступени этой метрологической пирамиды отличались друг от друга по точности в несколько раз. Иначе невозможна корректная передача единицы при поверке. Кроме этого, средств измерений вне метрологической пирамиды не существует. По определению. Не может быть "просто очень точный микрометр", "просто очень точные часы" и "просто очень точный осциллограф". Так вот. Осциллографы, реализующие функцию построения глазковой диаграммы являются рабочими средствами измерения и встроены в поверочную иерархию. То, что вы пытаетесь вывести, является на мой взгляд формой какого-то бытового агностицизма. На мой взгляд это достаточно сомнительное занятие.
  5. Нет. То есть _4afc_ ошибается, верно? Говоря чуть строже, джиттер N-ого бита будет равен корню из N, умноженному на джиттер первого после пересинхронизации бита (так скажем, на элементарный джиттер). Корень из N, он больше, чем корень из N-1. И больше, чем корень из N-2. И больше, чем корень из N-K, где N и К целые положительные числа и N больше, чем K. Поэтому возникает вопрос... ...с чего бы, если последний бит в пакете имеет наибольшее N? Я понимаю, что это, типа, интернет-дискуссия и здесь вместо тезисов, аргументов и контраргументов можно даже ммм... пукнуть подмышкой, заложив туда ладонь противоположной руки и резко прижав одноимённую руку к корпусу. Но всё же. Можно как-то аргументировать свои "нет, это так/нет, это не так". А то у меня ощущение, что половина здесь - доктора технических наук и как минимум член-корреспонденты - по стилю безапелляционности, конечно. Кроме безапелляционности мне ещё нравится в интернет-дискуссиях отвечают не на вопросы/аргументы/комментарии собеседника, а на что-то своё. - Частоту "идеального" сигнала можно выделить из анализируемого сигнала. А от чего отсчитывается фаза "идеального" сигнала? - Идеальный сигнал полностью аналитический. - Частоту "идеального" сигнала можно выделить из анализируемого сигнала. А от чего отсчитывается фаза "идеального" сигнала? - офицрованный сигнал нарезается на равные кусочки и складывается. - Частоту "идеального" сигнала можно выделить из анализируемого сигнала. А от чего отсчитывается фаза "идеального" сигнала? - Размер кусочка вычисляется аналитически. Нашёлся даже комментатор, который говорил, что ничего такого нет и я в своей статье слишком сгустил краски ))))) Тем не менее. От чего, на ваш взгляд, отсчитывается фаза идеального, и, разумеется, полностью аналитического сигнала? Сдвигается уровень сигнала, сдвигается порог компаратора. Если они в пределах одной микросхемы - этот сдвиг идентичен. Откуда взяться амплитудозависимому джиттеру - решительно непонятно. Первое. Да, идеальных средств измерения не существует. Но это весьма инфантильная позиция: "как же вы вообще что-либо можете измерять, раз всегда есть погрешность???". В реальной жизни вопрос с идеальным триггером, а также с идеальным вольтметром, идеальным штангенциркулем, идеальным секундомером и так далее решается так. Если вам нужна точность X, вы берёте средство измерение примерно в 10 раз точнее X. И считаете, что оно идеальное. И опять же, вот эта интонация "...который в реале не факт что реализуем", заставляет вспомнить нестареющую классику: Я сомневаюсь, что Маркс прав, поэтому он неправ
  6. Ага. Правильно ли я понимаю, что если мы строим глазковую диаграмму, у нас помимо сигнала с данными как бы в комплекте должен отдельно идти синхросигнал? Если так, то верно ли, что разговоры о выделении опорной частоты (либо битрейта, не суть) из сигнала данных - это ну... дичь какая-то, потому, что частота, точнее клок нам как бы уже должен быть отдельно предоставлен? И если интерфейс синхронный, значит джиттер не накапливается. Вот он какой есть, относительно синхроимульсов, такой и есть. Чем тогда обуславливается его наличие? Разным временем перещёлкивания логических элементов? Если у нас, скажем, фиксирована температура и прочие внешние параметры, то почему образуется джиттер? Из-за разного времени прохождения сигнала, скажем, по различным внутренним цепям передающей микросхемы? Но тогда он должен быть по идее детерминирован в нескольких фиксированных состояниях - их количество должно соответствовать количеству возможных путей прохождения сигнала. Или здесь как раз играет роль, что полупроводник логических элементов - нелинейная среда, и при определённых условиях предыдущие сигналы могут воздействовать на последующие? Опять же, чем тогда отличается глазковая диаграмма от простого накопления кривых по триггеру фронта клока? Или глазковая диаграмма - это и есть накопление сигналов по триггеру клока?
  7. Святая корова!!!! А ничего, что сигналы в многопроводной шине (для которой и характерен кроссток) тактируются, по сути, от одного источника тактирования и, да, они могут проникать в соседние линии, но не могут влиять на джиттер, потому, что он у всех линий шины одинаковый? Не люблю играть в шахматы с голубями )))))
  8. И вы сможете описать механизм этого "способен"? ))))))
  9. Иначе говоря, есть некоторые встроенные средства, которые строят глазковую диаграмму. Как именно они работают - вы объяснить не в состоянии (скорее всего не особо знаете), как эти средства ищут фазу сигнала, как нарезают сигнал на куски и как накладывают куски друг на друга - вы не знаете. У вас просто есть некий инструмент, который показывает нечто. Типа как мультиметр с прозвонкой (мы же обычно задаёмся вопросами, каким именно напряжением мультиметр тестирует линию и каково пороговое сопротивление, которое мультиметр уже считает отсутствием контакта), но посложнее и подороже. Вы им пользуетесь, не вдаваясь в подробности. Это хорошо и уж точно не зазорно. Но это не совсем тот опыт, который мне бы нужен.
  10. Которая снимается на векторном анализаторе путём подачи синусов разной частоты. Что проверяется однократной подачей ступеньки лог.0->лог.1 Плюс, канал передачи не способен добавлять сигналу джиттер. Причём здесь глазковая диаграмма?
  11. Ну так этот джиттер не накапливается со временем. Триггер по восходящему фронту SCK, накопление следующего нисходящего фронта SCK. Измерение ширины "размазывания" нисходящего фронта. Всё. Причём здесь глазковая диаграмма и I2S? Да. Именно такие комментарии, не говорящие ничего конкретного, но демонстрирующие, что говорящий что-то где-то слышал я и отшифровываю способом, который вы процитировали.
  12. Увеличивает по сравнению с чем? С глазковой диаграммой? А при её генерации, по вашему, типа, нет накопления и она появляется как-то сразу? В чём общий, глобальный смысл что глазковой диаграммы, что простого накопления? В том, чтобы передать N единиц информации и выяснить, сколько из этих N потерялось бы. Вот вы знаете, что один бит, очень-очень условно, дрожит по длительности максимум на 1%. Значит два бита будут максимум дрожать на 2%. Да, они могут дёрнуться в разные стороны. И тогда всё ок. Но могут дёрнутся и в разные. И этот факт, эта возможность для нас является ключевой. Подобные объяснения я для себя отшифровываю так: "Эта какая-то модная магическая штуковина. Модная, в смысле, что о ней надо говорить с умным видом и показывать, что слышал подобные термины. Иначе засмеют и выгонят из песочницы. Магическая, в смысле, что я понятия не имею, что это такое, как оно работает и зачем нужно. Но умные мудрецы где-то там в небесных сферах говорили, что это ого-го!" Кто не имеет ни начала ни конца?? Тактовый сигнал? Эээ. Да там же три провода, почти как в SPI: клок, данные и стробирование пакета (WS). То есть мало того, что отдельная линия под клоки, так ещё и линия, которая позволяет нарубать поток данных на пакеты. Этот протокол, как бы, вдвойне защищён от набегания разности фаз. Определяющим что? Предвосхищая общие слова вроде "Ну как - что, качество звука" - как джиттер тактового сигнала I2S хоть что-то может определять?
  13. Я уверен, что джиттер остальнях битов будет статистически меньше, чем джиттер последнего. Какого именно генератора? Ну, я смотрю на микросхему DS90C365 - LVDS, но при этом есть отдельная линия для тактирования. А значит можно триггериться по восходящему фронту тактирования и разглядывать последний бит в пакете. Статистически, два устройства с различными опорными генераторами рано или поздно рассогласуются на 100%. Поэтому в любом протоколе будет как-то обеспечен регулярный сброс рассогласования. Раз есть сброс и раз последний бит перед сбросом "разносит" джиттером сильнее всего, то почему не триггериться по паттерну сброса и не рассматривать последний бит? Приведите конкретный пример протокола, где нужна была бы глазковая диаграмма.
  14. Это всё столь же прекрасно, сколь и расплывчато. Почему вместо глазковой диаграммы нельзя снимать в режиме накопления просто последний бит пакета?
  15. В отличие от кучи бит просто наловленных по восходящему фронту и демонстрирующих джиттер в пределах одного бита, глазковая диаграмма демонстрирует совокупный джиттер за множество бит. Однако многие протоколы, в которых нет отдельных линий для синохроимпульсов предусматривают наличие синхронизирующей последовательности, по которой обнуляется разность фаз между источником и приёмником. При наличие такой последовательности наихудшим с точки зрения джиттера битом является бит перед синхронизирующей последовательностью. Ну или же последний бит пакета. Вопросы: - зачем нужна глазковая диаграмма, если можно установить триггер осциллографа на срабатывание по синхронизирующей последовательности и пронаблюдать дрожание фронтов в последнем бите? - частоту "идеального" сигнала для построения глазковой диаграммы можно выделить из анализируемого сигнала. Но от чего отсчитывается фаза "идеалтного" сигнала? От синхронизирующей последовательности? - зачем нужна глазковая диаграмма?
  16. Читаю статьи про глазковые диаграммы (Anatomy of an Eye Diagram, Глазковые диаграммы инструмент для анализа серийных данных) - везде в описании метода формирования диаграммы говорится про множественное наложение паттернов, про 001,010,100,011,110 и прочее бла-бла-бла. Но вот непонятно, каким образом определяется начало очередного паттерна? По пересечению некой отсечки фронта? Но тогда на левой части глазковой диаграммы был бы узел - точка, которую пересекают все паттерны. И сама левая часть была бы максимально тонкая. А правую глазковой диаграммы "разносило" бы из-за джиттера. Однако нередко, что глазковые диаграммы практически симметричны. По центру бита? Но по центру бита - пустота, там не за что зацепиться. Можно было бы цепляться за середину между восходящим и нисходящим фронтом, но как тогда навешивать паттерн 110, у которого только один фронт (и вообще, любой паттерн с нечётным количеством фронтов)? В общем, как ловятся паттерны для глазковой диаграммы?
  17. Нужно просто взять всего лишь 20-кратный запас по скорости - и всё будет гарантировано хорошо :)
  18. А, собственно, почему избавляться? Вот, к примеру, на определённую операцию, которая должна быть выполнена гарантированно и максимально быстро, периодически не хватает времени. Кто виноват в первую очередь: прерывание, другой мастер на шине или не оптимально скомпилированный код? Вы утверждаете, что нужно стать на позицию агностицизма. Но тогда решением остаётся либо повышение частоты, либо "урезание осетра" - ограничение скорости работы критического кода. Частоту не получится повышать до бесконечности. А "урезание"... Ну заявили вы заказчику, что данная операция не будет выполняться на N микросекунд, а будет выполняться за, скажем, 0,7*N микросекунд. А вероятность невыполнения критического кода взяла и не упала до нуля. И до скольки теперь откручивать N ?
  19. Предположим, что условия запуска приведённого кода наименее экзотичны. В том числе, программа исполняется не из SRAM, а из памяти программ.
  20. Чтобы вам было проще и понятнее, положим, частота - 8 МГц, от внутреннего HSI, все переключаемые делители в единице. PLL выключен. Температура корпуса микроконтроллера +20 градусов по Цельсию. Атмосферное давление - норма. Солнечная активность - на минимуме. Марс - в созвездии Девы. Вроде всё. Отличие, очевидно, в вопросе - возможно ли посчитать максимальное время исполнения участка кода в тактах?
  21. Спасибо за наводку на DWT. Погуглил - здесь про него написано весьма неплохо. Однако я бы хотел узнать несколько другое - как узнать среднее и максимальное время исполнения участка кода? В DWT можно всматриваться N минут. И за это время найти максимальное и среднее число тактов, за которые выполняется участок кода. Но при работе устройства длительностью M минут (M >> N) данные значения могут оказаться иными. Нельзя ли узнать точно, за какое максимальное количество тактов выполняется тот или иной код и быть спокойным, что данный показатель (в отсутствие всяких там прерываний, разумеется) не будет превзойдён никогда?
  22. Добрый день! Имеется два кода на ассемблере, которые я запускаю на Nucleo-F103RB. Первый: LDR R0, =0x00000000 LDR R1, =0x0000FFFF LDR R2, =GPIOA_ODR turnON: STR R1, [R2] turnOFF: STR R0, [R2] delayDone: B turnON Второй: LDR R0, =0x00000000 LDR R1, =0x0000FFFF LDR R2, =GPIOA_ODR turnON: STR R1, [R2] B turnOFF turnOFF: STR R0, [R2] delayDone: B turnON Я вывел SYSCLK на MCO и подключил один щуп осциллографа к порту А, а другой к MCO. Графики я прилагаю. Инструкции STR у первого кода выполняются с интервалами 2-2-2-4 такта. Соответственно, минимальное время итерации цикла составляет 4 такта среднее время итерации цикла составляет 5 тактов максимальное время итерации цикла составляет 6 тактов Инструкции STR у второго кода выполняются с интервалами 3-3-3-3 такта. То есть минимальное, среднее и максимальное время итерации цикла равны 6 тактам. Видимо, подобное поведение происходит из-за работы системы предсказания ветвления. Документации по детальному алгоритму работы данной системы я не нашёл. Хотелось бы понять, возможно ли как-нибудь посчитать или просимулировать среднее и максимальное время исполнения участка кода (вроде макроса или процедуры) на ассемблере у STM32F103 ?
  23. Всем спасибо, но короче отбой. Я затупился и в сгенерённый Кубом код скопипастил инициализацию тактирования с включённым PLL. Когда я нашёл ошибку и переключился на чистый HSI всё заработало как надо - GPIO щёлкают исключительно по восходящему фронту HSI.
  24. Добрый день. Если в качестве источника тактирования STM32F103 выбран внутренний высокоскоростной источник HSI (8 МГц), а все делители в древе тактирования установлены в единицу, то на какой частоте будет работать АЛУ? Я пишу прошивку для STM32F103 и некоторые её фрагменты необходимо выполнять за минимально возможное время. В ходе отладки я вывел на пин MCO тактирование HSI и обнаружил, что GPIO переключается то по переднему фронту HSI, то по заднему, то ровно посередине между фронтами. Такое ощущение, что АЛУ работает в 4 раза быстрее, чем HSI. Я попробовал вывести на MCO тактирование от SYSCLK (путём установки RCC_MCO1SOURCE_SYSCLK в функции HAL_RCC_MCOConfig), но линия MCO установилась в верхний уровень и не выдала ничего. Собственно, основной вопрос: на какой частоте будет работать АЛУ? И побочный - почему SYSCLK не выводится на MCO, хотя HSI - вполне выводится.
  25. The harsh truth is that the OP post date is December 24, 2020. My project where I tried to use on-chip memory has stalled. Now I can not explain to you all the details about using on-chip memory in MAX-10 immediately. Thus you can try to analyze the above example or wait several moungth for my article about on-chip memory.
×
×
  • Создать...