Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить

Re: Мелкие вопросы по МК и ПЛИС.

Сб ноя 27, 2021 05:38:04

1) микроконтроллер понимает только команды из даташита
2) вы хотите, чтобы лог. анализатор, ничего не зная про систему команд вашего контроллера, сам написал программу для генерации импульсов ????????????

Re: Мелкие вопросы по МК и ПЛИС.

Сб ноя 27, 2021 09:10:29

...Как дальше быть?

Эти "пачки импульсов" формируются согласно какого то протокола.
Остаётся узнать, что за протокол, и заставить Ваш контролер формировать их.
А уж если имеете анализатор - то узнаете и протокол, если конечно анализатор его поддерживает.

Re: Мелкие вопросы по МК и ПЛИС.

Пн ноя 29, 2021 02:20:52

Логический анализатор (самый недорогой китайский, аналог Saleae) В любом случае захватывает сигнал. То есть длительности импульсов и пробелов во времени. Но протоколов естественно так много, что по любому всех их нет в этом анализаторе (точнее в софте к нему по имени "Logic") Поэтому есть два варианта:
1) Протокол распознан и переведен в двоичную систему
2) Протокол неизвестный и данные записаны в exel-евскую таблицу.(формат CSV)
В случае первого варианта, как вписать в программный код микроконтроллера распознанные двоичные данные? И возможно ли вообще?
И как быть во втором случае?
По поводу второго варианта есть предположение: наверняка в одной из библиотек микроконтроллера есть готовый скетч, который нужно просто правильно заполнить, ну типа что-то копировать/вставить... как например записать звуковые колебания, речь, или музыку. Вот нужно такие же колебания (только в нашем случае импульсы" и записать через готовый скетч... Реально ли так? То есть не зная протокол, просто записать и воспроизвести из МК, как на магнитную ленту...

Добавлено after 20 minutes 43 seconds:
Может неправильно выразился... :oops: Типа способом аналого-цифрового преобразования. Только на аналоговый вход микроконтроллера будет поступать не синусоида, а импульсы. А они в МК уже сами преобразуются в нолики и единички...
Ну или может еще какой-нибудь более правильный способ есть? А то импульсы сами по себе не так много места в памяти занимают, а вот если их подать в МК как аналоговые, то тогда они все память МК займут... Как-то нерационально. :roll: Да и в частоте мы сильно ограничены.

Добавлено after 22 minutes 41 second:
Если нужно, то конкретный пример атмега 8. Ее можно разогнать до частоты 16 Мгц с внешним резонатором. 16 Мгц -импульсы мне хватит выше крыши:)

Re: Мелкие вопросы по МК и ПЛИС.

Пн ноя 29, 2021 11:09:01

16 Мгц -импульсы мне хватит выше крыши:)

Откуда там 16 MHz возьмутся? Если захваченный сигнал преобразовать в неупакованную последовательность бит которую скармливать SPI, то будет 8 MHz, а если сигнал хоть как-то упакован, то будет еще в разы медленнее. В любом случае задача достаточно простая, но если на каждой стадии возникают элементарные вопросы, то только и остается готовые скетчи искать :)

Re: Мелкие вопросы по МК и ПЛИС.

Пн ноя 29, 2021 13:09:02

но я хотя бы правильно рассуждаю? Через АЦП надо записывать в МК, или из EXEL вписать значения в программный код?

Добавлено after 25 minutes 17 seconds:
В таблице exel (формат CSV) в каждой ячейке столбца указано время в секундах и присвоенное ему значение нуля или единицы. Время каждого значения отсчитывается от самого начала. Очень удобно и наглядно. Но каждое значение записывать в программный код...За пол секунды 13 тыс значений набегает... Подскажите пожалуйста скетч или библиотеку, которая работает с CSV-данными.

Re: Мелкие вопросы по МК и ПЛИС.

Вт ноя 30, 2021 01:38:47

но я хотя бы правильно рассуждаю? ...

Для начала сделайте и покажите хотя бы скриншоты сигналов из анализатора.

Re: Мелкие вопросы по МК и ПЛИС.

Вт ноя 30, 2021 08:31:05

Типа способом аналого-цифрового преобразования. Только на аналоговый вход микроконтроллера будет поступать не синусоида, а импульсы.

АЦП тут вообще без нужды. Захват импульсного сигнала производят с помощью модуля Input Capture. Получают массив ДЛИТЕЛЬНОСТЕЙ низкого и высокого уровня (или периода и скважности). Воспроизведение захваченного сигнала делается модулем Output Compare, то есть по сути ШИМом.
Но позвольте полюбопытствовать о конечной цели вашей затеи. А то вполне вероятно, что ваши потуги будут напрасными.

Re: Мелкие вопросы по МК и ПЛИС.

Вт ноя 30, 2021 10:45:22

На примере стандартного сигнала из программы Logik 1.2.29 (канал №3)
Изображение

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

Я бы хотел попробовать сделать "обманку" АКБ от современного телефона. Дело в том, что мне необходимо посмотреть сколько тока потребляет телефон. А от лабораторника не удается подключить, т.к. в оригинальный АКБ вшит микроконтроллер, который выдает по квадратной шине данные о его состоянии (температура, заряд, степень изношенности...) Я планировал захватить эти данные, записать в свой микроконтроллер (например в Атмега 8 ) и стартонуть телефон, посылая в него скопированные данные по квадратной шине... Других вариантов, кроме как испортить АКБ, вытащив из него начинку, увы нет.

Добавлено after 1 minute 31 second:
Второй момент, Хотелось бы повторить пару сигналов с пультов от телевизора. Но именно способом захвата сигнала логическим анализатором.

Добавлено after 8 minutes 49 seconds:
Захват импульсного сигнала производят с помощью модуля Input Capture. Получают массив ДЛИТЕЛЬНОСТЕЙ низкого и высокого уровня (или периода и скважности). Воспроизведение захваченного сигнала делается модулем Output Compare,

а где эти модули распологаются? в настройках самой программы я не нашел... Там только можно экспортировать данные в формате CSV. Либо если протокол распознан, то в bin. или в HEX.
Вложения
проба 3 канал.zip
(52.52 KiB) Скачиваний: 106

Re: Мелкие вопросы по МК и ПЛИС.

Вт ноя 30, 2021 13:10:49

...который выдает по квадратной шине данные...

Что за шина такая ?
I2C ? Если да, то там 2 провода SDA и SCL, и, как правило
даже самый простой анализатор умеет её расшифровывать.

Re: Мелкие вопросы по МК и ПЛИС.

Вт ноя 30, 2021 13:26:20

Допустим анализатор расшифровал, но как теперь эту последовательность импульсов воспроизвести?
А вот сигнал от пульта TV не расшифровал и как быть?

Re: Мелкие вопросы по МК и ПЛИС.

Вт ноя 30, 2021 18:47:39

Допустим анализатор расшифровал...

Не нужно всё сваливать в одну кучу, мухи отдельно, котлеты отдельно.
Для начала разберитесь с "квадратной" шиной :))
Если это стандартный протокол - берём контролер в котором есть его
аппаратная поддержка и реализуем. Даже если её нет, можно реализовать
программно, или применить другой контролер. Выбор всегда есть.
Но опять же, сначала определиться с протоколом и данными, которые через
него передаются.

Re: Мелкие вопросы по МК и ПЛИС.

Вт ноя 30, 2021 20:52:43

Я немного не догоняю... Для каждого протокола нужен свой микроконтроллер? То есть только одним AVR микроконтроллером не обойтись? Давайте рассмотрим вариант, когда протокол неизвестен. Допустим программа логического анализатора не распознала протокол, но сигнал и данные сигнала (временные длительности нулей и длительности единичек) захвачены и определены. Как действовать дальше?

Добавлено after 6 minutes 16 seconds:
Для понимания и чистоты эксперимента пусть это будет не I2C, а что-то еще, где нет тактирующего сигнала... просто беспорядочные последовательные пачки импульсов с разными длительностями

Re: Мелкие вопросы по МК и ПЛИС.

Вт ноя 30, 2021 21:07:00

Как действовать дальше?

Пишется конвертер из формата в котором сохраняет ЛА в свой упакованный формат, какой именно зависит от частоты, формы и размера захватываемого сигнала, а также от числа задействованных пинов. Затем пишется прога на меге которая будет заниматься выводом, но сильно в это углубляться не имеет смысла т.к. судя по задаваемым вопросам в обозримом будущем ты не напишешь ни первое, ни второе, тем более то и другое вместе.

Re: Мелкие вопросы по МК и ПЛИС.

Вт ноя 30, 2021 21:08:10

Я немного не догоняю... Для каждого протокола нужен свой микроконтроллер?...

Немного не так. К примеру нужен I2C
В одних контролерах есть аппаратный I2C в других нет.
Нужен UART - в одних есть аппаратный UART в других нет....
Вот тогда их реализуют программно. И т.д.
Но и I2C и UART и SPI и прочие стандартизованы.
... где нет тактирующего сигнала...

В таком случае там будут старт и стоп биты.
Последний раз редактировалось Dismas Вт ноя 30, 2021 21:12:56, всего редактировалось 2 раз(а).

Re: Мелкие вопросы по МК и ПЛИС.

Вт ноя 30, 2021 21:10:02

Олегыч1 писал(а):Как действовать дальше?
я вообще не понимаю, в чем проблема.
если вы не умеете программировать МК, то будет ли польза от того, что я расскажу, как действовать?
на пальцах так:
1. мы имеем столбик чисел, равных интервалам в мс между фронтами сигнала (откуда он взят - оставим пока за кадром)
2. устанавливаем начальный уровень сигнала, допустим 0.
3. берем первое число и записываем его в регистр таймера (заранее настроенного на прерывание по истечению интервала)
4. когда таймер сформировал прерывание, т.е. когда первый интервал времени в мс истек, переключаем уровень сигнала на противоположный, берем следующее число из столбика и снова пишем его в таймер.
5. и так до конца всего столбика, после чего останавливаем таймер и выключаем сигнал.

Re: Мелкие вопросы по МК и ПЛИС.

Вт ноя 30, 2021 21:11:15

Но и I2C и UART и SPI и прочие стандартизованы.

Только не SPI :)

Re: Мелкие вопросы по МК и ПЛИС.

Вт ноя 30, 2021 21:18:05

Только не SPI :)

Чем он не стандартный ?

Re: Мелкие вопросы по МК и ПЛИС.

Вт ноя 30, 2021 22:04:44

если вы не умеете программировать МК, то будет ли польза от того, что я расскажу, как действовать?
на пальцах так:
1. мы имеем столбик чисел, равных интервалам в мс между фронтами сигнала (откуда он взят - оставим пока за кадром)
2. устанавливаем начальный уровень сигнала, допустим 0.
3. берем первое число и записываем его в регистр таймера (заранее настроенного на прерывание по истечению интервала)
4. когда таймер сформировал прерывание, т.е. когда первый интервал времени в мс истек, переключаем уровень сигнала на противоположный, берем следующее число из столбика и снова пишем его в таймер.
5. и так до конца всего столбика, после чего останавливаем таймер и выключаем сигнал.

Как раз это мне понятно. Я так себе и представлял. но дело в том, что там за пол секунды более 13 тыс импульсов набежало. А мне нужно допустим минуту повторить. Это я только неделю с утра до вечера буду писать программный код....
Может есть более рациональный вариант? Например, настроить один из выводов микроконтроллера на ввод, а другой на вывод. Первая ножка будет собирать информацию. А вторая по команде выводить их. Или так нельзя?

Добавлено after 24 minutes:
Я все надеялся, что существует готовая библиотека, которая поможет написать программный код одним кликом, что то вроде скопировать/ вставить CSV файл в нее... Прога, в которой планировалось писать программный код для AVR - это Atmel Studio 6. Я очень надеялся, что в ней есть сто-то подобное.
Но в моем случае все в конечном итоге сводится к тому, что если протокол неизвестен, то мы как ни как имеем аналоговый сигнал... Просто длительности импульсов, привязанные ко времени. Ну пусть так, для меня не это важно. Главное просто повторить точно такие же длительности импульсов и паузы между ними. Задача вроде бы простая до безобразия, но не могу догнать, как это осуществить. :)) Я просто предположил что через микроконтроллер можно. Но может как-то еще это можно сделать? Может каким-то другим электронно-механическим устройством. Что-то типа диктофона, только чтобы частота была дальше чем звуковой диапазон. или может есть уже готовые такие гаджеты?

Добавлено after 8 minutes 48 seconds:
а может быть есть готовый софт специально для таких частот. Полный аналог звукового редактора, только выводить импульсы не через звуковую карту, через USB, или через COM-порт прямо из ПК... :dont_know:

Re: Мелкие вопросы по МК и ПЛИС.

Вт ноя 30, 2021 22:22:37

Олегыч1 писал(а):за пол секунды более 13 тыс импульсов набежало. А мне нужно допустим минуту повторить.
частота 26 килогерц... то есть 52000 фронтов импульсов в секунду, в минуту в 60 раз больше. это вам нужно МК с таймером, который очень-очень быстро считает. да и памяти под "столбик" значений интервалов надо под 400 килобайт - это неплохой такой микроконтроллер нужен, либо городить целый огород с внешним ОЗУ.
Олегыч1 писал(а):Это я только неделю с утра до вечера буду писать программный код
зачем?! ваш "программный код", грубо говоря, будет сводиться к описанным мной 5 строкам. ну, плюс еще пару строк на организацию цикла - итого не больше 10 строк на основную часть. плюс всякая инициализация, то-сё - в пару сотен строк основной код уложится, как пить дать. что вы там писать собрались круглосуточно?!
Олегыч1 писал(а):скопировать/ вставить CSV файл в нее
можно и так, если немного этот CSV-файл руками подправить. но тогда получится вариант "одна прошивка - один генерируемый код", никакой универсальности.
Олегыч1 писал(а):Главное просто повторить точно такие же длительности импульсов и паузы между ними.
а универсальное решение состоит из двух частей: сначала захватываем при помощи таймера длительности промежутков между фронтами сигнала и запоминаем их, а потом делаем наоборот, как я уже описал - берем запомненные длительности и формируем сигнал. только, как я ранее писал, быстродействие для вашего сигнала нужно дикое и памяти овердохрена... вы точно правильно условие задачи формируете?

Re: Мелкие вопросы по МК и ПЛИС.

Вт ноя 30, 2021 22:34:04

можно и так, если немного этот CSV-файл руками подправить. но тогда получится вариант "одна прошивка - один генерируемый код", никакой универсальности.

Такой вариант меня бы вполне устроил. Я, кстати, на него и рассчитывал 8) А что именно нужно подправить в CSV файле? И подскажите пожалуйста библиотеку из Atmel Studio 6 где можно применить этот подправленный CSV-файлик.

Добавлено after 34 seconds:
Я был бы вам мега-признателен :beer:
Ответить