Если исходить из необходимости работы "исключительно на асме", могу порекомендовать использовать не универсальный контроллер с USB интерфейсом, а специализированные USB-Host контроллеры. Сам я работал только с контроллером Vinculum VNC1L-1A от FTDI (правда, это было давно). Прелесть в том, что можно и USB операциями управлять с микроконтроллера сбора данных - используется сравнительно небольшой набор команд, похожих на AT-команды модемов, а всю низкоуровневую работу Host-контроллер делает сам. Интерфейс - SPI или UART по выбору. Недостаток - спец. контроллер будет скорее всего дороже среднего МК. Позже FTDI добавила Vinculum-II - это уже полноценный МК, куда можно добавить пользовательскую программу (правда, с проприетарной архитектурой и системой команд). Немножко погуглив и подняв свои записи, нашёл ещё микросхемы USB-host:
MAX3421
CH375B
μPD720150
FT311
FT313
Также для быстрого старта можно воспользоваться готовыми платами с USB-host. У FTDI такие платы позиционируются, как отладочные средства (модули VDIP, VMUSIC и т.п.), поэтому цена будет кусаться. А вот разнообразные USB Host Shields из экосистемы Arduino вполне можно купить на Ali за 500 руб (контроллер - MAX3421). Плюс - готовые библиотеки, котрые можно "изучить", минус - они написаны на С++.
P.S. В качестве примера - плата сбора данных
DLP-VLOG
Сообщение отредактировал varostov - Jan 13 2017, 09:49