Ниже представлено описание, как собрать и начать использовать , разработанный Некромантом , прибор который представляет из себя перепрограммируемый мультиинструмент . Включающий функции.
- Программатор usbasp
- Передатчик i2c
- Передатчик UART
- Передатчик SPI
- Схемой предусмотрены: тестер, вольтметр, измерение сопротивлений и тестер
транзисторов, автору не хватает времени дописать адаптировать открытые наработки, но он будет рад патчам.
Надеюсь , сам автор ответит на ваши вопросы здесь в статье. Также , Спасибо! CYB3R-у , за помощь, а также прошивку и составление правил для udev.
Table of Contents
Создание платы
Сразу скажу мы не изготавливали плату в домашних условиях, а купили её из партии, у автора , если вы захотите изготовить её самостоятельно вам понадобиться проект , сделанный в KiCAD
git clone https://github.com/uISP/uisp-schematics.git
Теперь необходимо выкачать все библиотеки и модули необходимые для проекта.
cd uisp-schematics/
make update
Собственно ,вот , правда тут примечание автору, компонент ATMEGA берется из стандартной библиотеки и видимо его обновили, так как на скриншоте у автора, подключение выглядит иначе.
Все необходимые для производства файлы лежат в папке uisp2.0
Необходимые компоненты и пайка
Вы можете скачать список необходимых компонентов или просмотреть его ниже в таблице.
Номинал/Название | Тип | Корпус | Количество |
---|---|---|---|
27 пкФ | Конденсатор | SM0805 | 2 |
0.1 мкФ | Конденсатор | SM0806 | 3 |
Светодиод | LED0805 | 1 | |
ATMEGA8-AI | Микросхема | TQFP32 | 1 |
68 Ом | Резистор | SM0805 | 2 |
120 Ом | Резистор | SM0805 | 2 |
220 Ом | Резистор | SM0805 | 4 |
680 Ом | Резистор | SM0805 | 3 |
1.5 кОм | Резистор | SM0805 | 1 |
4.7 кОм | Резистор | SM0805 | 5 |
10 кОм | Резистор | SM0805 | 1 |
470 кОм | Резистор | SM0805 | 3 |
470 Ом | Резистор | SM0805 | 1 |
370 Ом | Резистор | SM0805 | 1 |
12 МГц | Кристалл | HC-49U | 1 |
JUMPER | Перемычка | 4 | |
ISP_10 5×2 | Разъем | Штыри | 5×2 |
ISP6 | Разъем | Штыри | 3×2 |
CONN_i2c | Разъем | Штыри | 4×1 |
CONN_4 | Разъем | Штыри | 4×1 |
PWM/ICP | Разъем | Штыри | 4×1 |
CONN_TESTER | Разъем | Штыри | 3×1 |
CONN_VMETER | Разъем | Штыри | 4×1 |
EXT_PD | Разъем | Штыри | 5×1 |
RST\RUN\TARGET | Переключатели | TS-A3PS-130 | 3 |
AMS1117-ADJ(LM317) | Стабилизатор напряжения | SOT223 | 1 |
Zener пробой 3.6В | Зенер диод | SM1206 | 2 |
10 кОм | Резистор | Обычный | 1 |
Компоненты не обязательно обладают такими названиями, мы например взяли наиболее близкий по корпусу зенер диод с пробоем не ниже 3,6В. А также в схеме используется настраиваемый стабилизатор напряжения AMS1117(ADJ) или LM317 , тоже настраиваемая модель. Все штырьковые разъемы с расстоянием между пинами 2,54 мм.
CYB3R в деревне Виларибо, паял в печке, с доводкой феном и паяльником, а я в Вилобаджо, только паяльником и контролем с помощью лупы…. Результат одинаковый))
ВАЖНО проверить, сверившись со схемой полярность диодов при их пайке, а также то что соседние ножки у микроконтроллера случайно не спаялись вместе(для этого нужен мультиметр с прозвоном смотри ниже).
Специально перед пайкой CYB3R подготовил, рабочую карту по этапам пайки, с начала SMD верхняя часть, начиная с микроконтроллера, потом нижняя часть, потом объемные компоненты.
Прошивка загрузчика
Программатор BSD
Любой USB программатор, обладает проблемой курицы и яйца, т.е. для того чтобы создать такой программатор, уже нужен программатор. В нашем случае мы воспользовались программатором BSD (Brian Dean’s Programmer)(рис. ниже), сделанным из проводков, папы LPT и ферритового кольца,вешается на провода для того чтобы можно было пользоваться кабелем длинной 28 см. В принципе можно обойтись и без резисторов. Также если вы собрались изготавливать программатор, советуем сделать каждый пин отдельно, т.к. у uisp не совсем стандартный ISP_10 порт .
ВАЖНО Напряжение по VCC идет только во время прошивки.
Прошивка
На UISP необходимо установить JUMPER-ы в двух местах, это двухпиновый вывод с подписью 5V , а также не обозначенный двухпиновый вывод рядом со светодиодом и ISP_10PIN. Прошивали мы как раз через разъем ISP_10PIN т.к. на нем есть хоть и смещенное обозначение.
Теперь мы качаем прошивку bootloader-а
git clone https://github.com/uISP/uisp-bootloader
cd prebuilt/
Прошиваем подключив программатор
avrdude -c bsd -p m8 -U lfuse:w:0xff:m -U hfuse:w:0xc0:m -U flash:w:uisp-r2-loader.hex
Установка необходимого ПО
Необходим libusb
Arch Linux
CYB3R создал PKGBUILD а также правила для udev, так что здесь проще всего.
Debian/Ubuntu
Возможно, когда нибудь я смогу начать, мейнтейнить пакеты, но сейчас.. в лом. Ставим утилиту checkinstall
apt-get install checkinstall
Ну тут все просто, качаем наши исходники и собираем их.
git clone https://github.com/uISP/uisp-userspace
cd uisp-userspace
make clean
make
make deb
В конце , утилита checkinstall начнет создавать пакет , измените не соответствующие пункты как показано ниже.(кроме мейнтенера и архитектуры)
Этот пакет был создан с использованием данных значений: 0 - Maintainer: [ root@Asuka ] 1 - Summary: [ Spectial driver and tools for UISP2.0 device ] 2 - Name: [ uisp-ncmnt ] 3 - Version: [ 2.0 ] 4 - Release: [ 1 ] 5 - License: [ GPL ] 6 - Group: [ checkinstall ] 7 - Architecture: [ amd64 ] 8 - Source location: [ uisp-userspace ] 9 - Alternate source location: [ ] 10 - Requires: [ libusb-dev git ] 11 - Provides: [ uisp ] 12 - Conflicts: [ ] 13 - Replaces: [ ] Введите номер для изменения параметра или нажмите ВВОД для продолжения: Installing with make install... ========================= Результаты установки =========================== strip uisptool install uisptool //usr/local/bin/ install uappmgr //usr/local/bin/ install 10-uisp.rules //lib/udev/rules.d/ ======================== Установка успешно завершена ====================== Copying documentation directory... ./ ./README Some of the files created by the installation are inside the home directory: /home You probably don' t want them to be included in the package. Вы хотите посмотреть их список? [n]: n Исключить их из пакета? (ответить ДА-хорошая идея) [n]: y Файлы копируются во временный каталог...OK Stripping ELF binaries and libraries...OK Сжимаются страницы руководства...OK Построение списка файлов...OK Собирается Debian-пакет...OK Устанавливается Debian-пакет...OK Удаляются временные файлы...OK Записывается пакет с резервной копией...OK OK Удаляется временный каталог...OK ********************************************************************** Done. The new package has been installed and saved to /home/valber/forge/uisp-userspace/uisp-ncmnt_2.0-1_amd64.deb You can remove it from your system anytime using: dpkg -r uisp-ncmnt **********************************************************************
Ну вот и все, теперь вы можете увидеть в synaptic-е или другом пакетном менеджере, установленный вами пакет.
Теперь если вы смотрели файл 10-uisp.rules , там написано что права на доступ к устройству , есть у группы users, смотрите в файле /etc/group , состоите ли вы в группе users, и если нет .
usermod -G users -a ВашЛогин
К сожалению на убунте пришлось реально перезагрузиться чтобы новые правила вступили в силу, я не знаю , не столь компетентен в этом вопросе, если кто сможет обновить и рестартнуть udev без перезагрузки… напишите. Проверить что подключение удалось, можно вставив UISP и набрав команду
$ uisptool -i Necromant' s uISP Tool Serial Number: Alaine Device health: 99.997002% (3/100000) Application: cdc-spi-bridge App version: 2010-02-06uisp1
Использование и загрузка прошивок
Как вы видели выше при просмотре информации указывается текущая прошивка. Загрузить базу готовых прошивок нужно командой
uappmgr update
Теперь, может е зашит ь прошивку
$ uappmgr uISP Tool Q&D Application Manager/updater (c) Necromant 2012 :: ncrmnt.org Necromant' s uISP Tool Serial Number: Alaine Device health: 99.997002% (3/100000) Application: cdc-spi-bridge App version: 2010-02-06uisp1 Pick an app to download 1) cdc-spi 3) i2c_tiny_usb 5) run 2) cdc-uart 4) usbasp \#? 4 Will now download usbasp Serial Number: Alaine Upload dance... Page size = 64 (0x40) Device size = 8192 (0x2000); 6144 bytes remaining Uploading 4608 (0x1200) bytes starting at 0 (0x0) 0x01180 ... 0x01200 Updated dev info to: USBasp 2011-05-28uisp1 Necromant' s uISP Tool Serial Number: Alaine Device health: 99.996002% (4/100000) Application: USBasp App version: 2011-05-28uisp1 Serial Number: Alaine Error sending message: error sending control message: Protocol error
Теперь надо запустить
uisptool -r
и вы увидите что прошивка изменилась теперь там другое устройство. Если знакомы со схемотехникой, можно эксперементировать и прошивать свои hex файлы, командой
uisptool -f fw.hex -r
А также ещё можно прошить и eeprom ,флагом -u
isptool -f fw.hex -u eepprfile -r
Флаг -r , сразу запускает прошивку. Важен порядок, флагов, в примерах они указаны правильно . Также надо отметить что вшитый бутлоадер занимает 2k флеш памяти из 8k.
Позже мы добавим уже прикладные практические применения uISP. Благодарим автора за проделаннную работу, это уже вторая версия устройст ва и возможно будут ещё!))
Приглашаем всех к тесту, также вы конечно можете задавать свои вопросы в комментариях.