Мне пришлось восстанавливать прошивку трансиверов Quark версий v1.7 и v2.0, в которых не был прошит UART-загрузчик, с помощью программатора USBasp [2]. Для этой цели придется тонкими проводками припаяться к выводам микроконтроллера ATmega328P (корпус QFN32).
Процесс восстановления загрузчика и прошивки трансивера Quark по шагам:
1. Подключите ISP SPI интерфейс программатора USBasp к выводам микроконтроллера ATmega328P. Схема соединений с коннектором программатора USBasp:
вывод 15 (PB3) --<-- MOSI 1 [] [] 2 +VCC
3 [] [] 4
вывод 29 (RESET) -<- RST 5 [] [] 6
вывод 17 (PB5) --<-- SCK 7 [] [] 8 GND ----- к общему проводу трансивера
вывод 16 (PB4) -->-- MISO 9 [] [] 10 GND
2. С помощью программатора USBasp прошейте фьюзы ATmega328P:
HFUSE = DA LFUSE = FF EFUSE = FD LOCK = FF
3. Прошейте Arduino-загрузчик. Традиционный UART-загрузчик [7] не подойдет, потому что он обычно рассчитан на частоту кварца плат Arduino 16 МГц. Поскольку в трансивере Quark применен кварц на 20 МГц, нужна модифицированная версия Arduino-загрузчика, рассчитанная на эту частоту. Я использовал загрузчик AdaBoot, который скомпилировал на частоту кварца 20 МГц и скорость UART 57600 [4]. С помощью программатора USBasp прошейте файл bin/ATmegaBOOT_xx8_adaboot328-UART57600-20MHz.hex из архива [4].
4. Теперь можно прошивать firmware трансивера Quark традиционным способом, как скетч Arduino [5]. Для подключения USB-UART переходничка на плате трансивера Quark есть 3 контактные площадки, промаркированные как TXD, RXD, RST:
Подключите USB-UART переходник к этим контактам следующим образом:
USB-UART RX --------<------- TXD Quark
TX --------->------ RXD
DTR ---||---->---x-- RST
0.1 мкФ |
|
-----
\ /
-----
|
|
VCC (+5V)
Конденсатор 0.1 мкФ между сигналами DTR и RST нужен для формирования сигнала сброса микроконтроллера. Диод нужен для быстрого разряда конденсатора, когда на выходе DTR возникает положительный импульс.
5. Прошейте скетч Quark [5] в среде программирования Arduino IDE. Для этого выберите в меню Tools настройки Board: "Arduino Nano"и Processor: ATmega328P (Old Bootloader). В таком варианте данные будут передаваться в загрузчик на скорости 57600 бод.
[Ссылки]
1. uSDX: микро-трансивер SDR на AVR. 2. Утилиты для программатора USBasp с графическим интерфейсом. 3. EXtreme Burner: добавление микроконтроллеров AVR. 4. 231009AdaBoot.zip - загрузчики Arduino. 5. Трансивер uSDX Quark site:swling.ru. 6. 230928Quark.zip - скетч трансивера Quark, схема, даташиты. 7. Arduino bootloader. |