Как V-USB может работать при частоте контроллера 12 Мгц?
Заинтересовался темой USB шины, а так-же возможно ли реализовать программную поддержку на микроконтроллере atmega328.
Наткнулся на библиотеку V-USB, и в требованиях указано что она работает даже на частоте 12 МГц, правда в режиме low-speed. Но все равно, как это возможно?
Ведь low-speed преподлагает передачу со скоростью 1.5 МБит/с -> 1572864 Бит/с. Значит один бит передаётся где-то на протяжении 0.6357... микросекунд.
Тем временем при частоте контроллера 12 Мгц, время одного такта примерно равно 0.083 микросекунд. Тоесть, примерно 8 тактов на передачу/приём одного бита? Звучит как недостаточные условия, даже вход в прерывание, сьедает несколько тактов.
Я что-то не правильно считаю, или основательно ошибаюсь в целом о всём?
Рылся по "usb 2.0 datasheet", и наткнулся на табличку с разными скоростями работы в low-speed, насколько я понял при разных размерах пакета. В таком случае пересчитал и получил 683 такта на один бит, при самой низкой скорости из таблички.
Не понятно правда как устройства согласовывают скорость, возможно через SYNC сигнал, но в любом случае, это всё меняет. А я то думал там только одна скорость в виде 1.5 МБит, а всё остальное это задержки между пакетами, или не принятые итд.