Так как стала появляться конкретика, и началась практическая работа (схема нарисована, платы делаются, компоненты заказаны), то я отделил этот топик от темы
USB-осциллограф. Проект получил рабочее название TNP Duo.
Добавлено спустя 55 секунд:Пока компоненты пакуют на складах, печатную плату делают на заводе, а потом все это летит на самолете
есть время немного подумать о программном обеспечении.
Фактически предстоит программировать 3 системы: Propeller, AT90USB162 и ПК, как минимум на 5 языках
SPIN и PASM для пропеллера, C и ассемблер для AT90USB, C++ для ПК.
С той частью, что располагается в приборе, более-менее все понятно. Работа с АЦП освоена на макете, для AT90USB есть готовые библиотеки и примеры. С ПК есть вопросы, над которыми стоит подумать.
Во-первых, программа должна быть кросс-платформенной. Значит, нужны гуйные либы соответствующие. Основные - wxWidgets и Qt. Я писал простенькие программы и с той, и с другой. Разницей между ними как-то не проникся, так что не уверен, что выбрать.
Второе - как работать с USB. kernel-space драйвера я писать не собираюсь. Все должно быть в юзерспэйсе. Смотрю на libusb. Версия 1.0 более продвинутая, но у нее нет Windows-версии. Вероятнее всего, буду использовать libusb0, но надо посмотреть, может еще какие решения есть.
И еще один важный вопрос - это протокол обмена между прибором и ПК. Тут пока всего пара мыслей:
- Проектировать его надо таким образом, чтобы ПК мог определить возможности прибора, в том числе подключенные модули расширения
- Протокол не должен быть привязан к USB.
Это даёт возможность создавать альтернативные GUI и новые приборы, без замены ПО на ПК. Второй пункт упрощает взаимодействие с приборами не использующими USB, например какой-нибудь пробник подключенный через последовательный порт. Также будет проще заменить ПК скажем на плату с ЖКИ.