http://www.forum.getchip.net/

Логический анализатор
http://www.forum.getchip.net/viewtopic.php?f=9&t=1116
Страница 1 из 1

Автор:  RockMANN [ 18 фев 2021, 19:22 ]
Заголовок сообщения:  Логический анализатор

Вот припёрло мне отладить мою плату и прошивку, стал искать логические анализаторы в инете, что почём. И тут подумал, а почему бы не сваять свой собственный. В закромах валялось несколько МЕГ и ТИНЕК, выбрал тиньку 2313, т.к. максимальная частота больше.
В итоге вот что удумал: частота максимальная 20МГц на кварце, порт В настроен на прерывания PIN CHANGE, таймер Timer1 с предделителем 1, тикает до 50000, затем сравнивается со значением OCR1A что равно 2,5 мкс.
Алгоритм следующий: создаётся 4 байтная переменная и инкрементируется в прерывании таймера по сравнению. Это у нас счётчик, кратный 2,5 микросекундам. Значение счётчика таймера TCNT1 записывается в отдельную переменную. Это счётчик, кратный 50 нс.
Далее, при появлении лог 0 или 1 на входах порта "В" срабатывает прерывание Pin_Change, в этом прерывании сохраняются значения регистра порта, значения счётчиков TCNT1 и 4 байтного. Получается переменная с указанием значения времени и логическими уровнями на входах порта. А дальше ещё не придумал) В плане создать массив в оперативке, куда будут скидываться данные, ну и алгоритм отправки массива по UART.
В итоге планируется получить достаточно точный анализатор, фиксирующий до 1МГц на 8 каналах. Единственное нет софта для пк, который сможет выводить данные. Данные планируется передавать через UART на макс скорости контроллера.
На этом реализован минимум функций. Где-то читал, что можно прикрутить библиотеки DLL Saleae Logic и использовать её.

Вложения:
2021-02-18_17-46-24.jpg
2021-02-18_17-46-24.jpg [ 61.6 КБ | Просмотров: 3641 ]

Страница 1 из 1 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/