МАРСОХОД

Open Source Hardware Project

FPGA & CPLD Блогchips

САПР Altera Quartus II / Quartus Prime, язык Verilog HDL, ПЛИС Cyclone III, Cyclone IV, MAX II, MAX10.
Платы разработчика серии Марсоход, Марсоход2, Марсоход3.


Отрисовка спектра сигнала в программе на Python

scipy

Меня тут немного покритиковали за мою предыдущую статью. Я сделал генератор псевдослучайных чисел в ПЛИС платы Марсоход3бис и сказал, что мол визуально шумит - значит работает. Визуально распределение равномерное - значит - работает.

Но нет. Мне Alexandr говорит, что нужно найти периодичность, спектр, автокорреляцию и только потом что-то утверждать. Чтобы хоть как-то оправдаться, решил хотя бы найти и показать спектр шумового сигнала, полученного из моего генератора LFSR.

Кто не знает, что такое спектр, пожалуй дам ссылку на свою же очень давнюю статью.

Теперь к делу..

Простой генератор псевдослучайных чисел

lfsr, Регистр сдвига с линейной обратной связью
Давно ничего не писал в блоге Марсохода - много всякого навалилось, всякие дела, командировка, встречи..
Вот решил восполнить пробел и сделать очень простой проект. Простые проекты ведь тоже нужны, особенно тем, кто только начинает изучать ПЛИС. Это проект выходного дня. Собственно я его в воскресенье и сделал, а вот описать его - это то же работа требующая времени и внимания.

Очень простой генератор случайных чисел. Такой простой, что я его даже и не придумывал, а просто взял описание в википедии: Регистр сдвига с линейной обратной связью. В англоязычной литературе такой метод генерации псевдослучайных чисел называется linear feedback shift register, LFSR.

Берется сдвиговый регистр и по каждому такту сдвигается вправо, а новый, вычисленный бит задвигается в регистр слева. Вычисление нового бита ведется операцией исключающего ИЛИ (XOR).

Немного самолетов.

Шереметьево

Текущие проекты (да-да, проект marsohod.org - не единственный наш проект) иногда требуют жертв. Вот пришлось ехать в командировку на неделю. Всего каких-то 15 часов пути и три самолета в Европу..

Вот несколько фоток. Вверху - Москва, аэропорт Шереметьево, Терминал D.

Демонстрация работы USB хоста для платы Марсоход3bis

Компьютерный хаос на столе

В предыдущей статье я рассказывал, как делал USB хост, как симулировал его с помощью тестбенча. Сейчас я встроил его уже в реальный проект квартуса. Сделал интеграцию verilog модуля usb11ctrl.v в свой проект USBTerm для среды Altera Quartus.

Это фото показывает весь ужас разработки USB11 хоста на плате Марсоход3bis.

  • сама плата Марсоход3bis подключена к ноутбуку кабелем USB2 для скоростной передачи данных в плату (отрисовка изображений на экране и команды в USB11 хост) и передачи данных из платы в ноутбук (результат исполнения USB команд на шине);
  • так же, к плате подсоединен программатор MBFTDI для программирования ПЛИС и отладки проектов в среде Quartus SignalTap;
  • к плате, через разъем HDMI, подключен монитор (на самом деле телевизор) для отображения изображений переданных из ноутбука в плату;
  • на плату Марсоход3bis установлен шилд разъемов для подключения USB мыши и (в будущем) клавиатуры;
  • для контроля и отладки контроллера USB используется аппаратный USB анализатор - устройство подслушивающее весь USB трафик и показывающей его на ноутбуке; подключается по третьему кабелю USB к ноутбуку.

Сложности разработки USB хоста для проекта USBTerm.

mouse+Marsohod3bis

Мне для проекта USBTerm нужен USB11 хост, так как к моему тонкому клиенту я собираюсь подключить USB мышь и USB клавиатуру. В принципе, я думал, ничего особо сложного там быть не должно. Я ведь уже когда-то занимался USB проектами: когда-то делал и простое USB устройство в плате Марсоход, и USB трекер из платы Марсоход2. В общем, тема мне довольно знакомая, хоть и не любимая.

Почему не любимая? Слишком уж сложен USB протокол. Даже для USB11 низкоскоростных устройств слишком все сложно и запутанно. Если пытаться сделать машину состояний по обслуживанию этого протокола, то получается очень много состояний, много условий, вариантов движения данных, правила очередности пакетов. В общем не просто это. Вот зарылся я с головой в реализацию хоста и потратил на это очень много времени. Прямо неприлично много.. Жаль.

Ну вот попытаюсь рассказать, что и как я делаю.


GitHub YouTube Twitter
Вы здесь: Начало