Цитата(pil @ Mar 11 2011, 20:19)

ATmega32U4 не понял чем оно лучше?
А вот всего 32кб флеши не нравится никак.
Не ради флеши. Алгоритмически задача пересылки данных проста, и тут много флеши под программу не надо. Проблема в недостатке внутренней ОЗУ, которая тут зовется SRAM. Если вы возьмете AT90USB162, то его 16 К флеша для задачи вполне хватит, но 512 байт SRAM будет маловато.
ОЗУ нужна под буфера ввода-вывода. Ведь USB - "одностороний интерфейс", который управляется командами со стороны хоста (здесь персональным комьютером) где-то 1 раз в милисекунду (1000 гц). А при его сильной загруженности и того реже. Поэтому придется накапливать передаваемые байты в каких-то массивах, организуя FIFO, чтобы обеспечить непрерывность работы (копить, пока хост не запросит данные). Причем, очень возможно, что понадобится два отдельных буфера - один на передачу по USB, а другой на передачу по RS-232. Хотя для мышки и клавиатуры второй буфер не актуален.
Удобно брать буфер размером в 256 байт, тогда он очень просто сворачивается в кольцо, если для его индекса выбрать однобайтовую переменную или регистр. Но можно сделать и короче - 128 или 64, если при инкрементации индекса занулять старшие биты. Без промежуточного буфера стрёмно прогу написать, потому что те аппаратные буфера, который байты туда-сюда по USB отсылают, задействуются автоматически. И вам придется их наполнять и опустошать сразу по приходу прерывания готовности, а не ожидать пока по байтику перекапаете на медленный UART.
Промежуточные буфера традиционно используют во многих конверторах, когда скорости входных и выходных потоков отличаются или могут иметь вынужденные кратковременные задерки. Впрочем, я не стану так уж категорически утверждать, что без промежуточных буферов сделать надежной работу конвертора невозможно. Скажу лишь, что у меня это не получилось.
Так вот у AT90USB162 маловато SRAM для буферов, т.к. там еще стеки надо городить, а на это тоже память уходит. А следующим в линейке AT90USB будет уже AT90USB646, который по числу выводов уже монструозный (16х4), хотя SRAM у него достаточно - 4 КБайт. А вот ATmega32U4 по размеру SRAM составляет 2.5 КБайт, что уже вполне достаточно. Возможно, что уже ATmega16U4 вам годится, т.к. там 1.25 КБайт SRAM, т.е. в 2.5 раза больше, чем у AT90USB162.
Радует, что ATmega16U4 и ATmega32U4 по корпусам и выводам одинаковые. Поэтому вы можете ориентироваться на ATmega32U4, как вам верно подсказал Dx!, а когда на макете у вас все это нормально заработает, то можно испытать ATmega16U4, уменьшив размеры буферов. Или сразу писать прогу под ATmega16U4, а если не влезете, то впаивать ATmega32U4. В любом случае, вы не потратите лишних сил и времени, т.к. какой-то из этих МК наверняка удовлетворит ваши запросы.