Этим занимается микросхема FT232. У нее внутри протокол USB с контролем ошибок. Нам надо выбрать скорость последовательного порта. И прикинуть, сможет ли с такой скоростью микроконтроллер готовить данные. Кварц возьмем 11.0592, чтобы точно установить скорость UART. Останавливать и возобновлять прием будет микроконтроллер. В FT232 есть буфер приемника.
Да, на мой взгляд, несколько секунд подождать - это не проблема. Даже для 128К.по факту же - программа для юзера будет стартовать "моментально" / сразу после "как-магнитофонной загрузки небольшого бейсик-файла"...
---------- Post added at 15:57 ---------- Previous post was at 15:17 ----------
Определим скорость UART.
Обычно на передачу одного байта надо передать 10 бит. Мы 48 килобайт можем загрузить за 1.05 секунды.
Значит в битах скорость нужна более 10*48*1024/1.05=468114 бит в секунду
У AVR Max Baud Rate = 230400. Маловато будет.
Значит мы сможем загружать со скоростью 230400/10 = 23040 байт в секунду.
Загрузка 48КB: 48*1024/23040 = 2.13 c
Загрузка 128КB: 128*1024/23040 = 5.69 c
Тоже неплохо.
---------- Post added at 16:53 ---------- Previous post was at 15:57 ----------
В справке по QSerialPort Max 115200 baud. Маловато будет.
Значит мы сможем загружать со скоростью 115200/10 = 11520 байт в секунду.
Загрузка 48КB: 48*1024/23040 = 4.26 c
Загрузка 128КB: 128*1024/23040 = 11.38 c
Не очень быстро, зато с SD-картами и прочими носителями ходить не надо. Можно добавить вычисление контрольных сумм.





Ответить с цитированием