Ниже представлено описание, как собрать и начать использовать , разработанный Некромантом , прибор который представляет из себя перепрограммируемый мультиинструмент . Включающий функции.

uisp_view.png

  • Программатор usbasp
  • Передатчик i2c
  • Передатчик UART
  • Передатчик SPI
  • Схемой предусмотрены: тестер, вольтметр, измерение сопротивлений и тестер

транзисторов, автору не хватает времени дописать адаптировать открытые наработки, но он будет рад патчам.

Надеюсь , сам автор ответит на ваши вопросы здесь в статье. Также , Спасибо! CYB3R-у , за помощь, а также прошивку и составление правил для udev.

Создание платы

Сразу скажу мы не изготавливали плату в домашних условиях, а купили её из партии, у автора , если вы захотите изготовить её самостоятельно вам понадобиться проект , сделанный в 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 в деревне Виларибо, паял в печке, с доводкой феном и паяльником, а я в Вилобаджо, только паяльником и контролем с помощью лупы…. Результат одинаковый))

ВАЖНО проверить, сверившись со схемой полярность диодов при их пайке, а также то что соседние ножки у микроконтроллера случайно не спаялись вместе(для этого нужен мультиметр с прозвоном смотри ниже).

uisp_component.png

Специально перед пайкой CYB3R подготовил, рабочую карту по этапам пайки, с начала SMD верхняя часть, начиная с микроконтроллера, потом нижняя часть, потом объемные компоненты.

uisp_multimetr.png

Прошивка загрузчика

Программатор BSD

Любой USB программатор, обладает проблемой курицы и яйца, т.е. для того чтобы создать такой программатор, уже нужен программатор. В нашем случае мы воспользовались программатором BSD (Brian Dean’s Programmer)(рис. ниже), сделанным из проводков, папы LPT и ферритового кольца,вешается на провода для того чтобы можно было пользоваться кабелем длинной 28 см. В принципе можно обойтись и без резисторов. Также если вы собрались изготавливать программатор, советуем сделать каждый пин отдельно, т.к. у uisp не совсем стандартный ISP_10 порт .

ВАЖНО Напряжение по VCC идет только во время прошивки.

uisp_bsd.png

uisp_bsd_real.png

Прошивка

На 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. Благодарим автора за проделаннную работу, это уже вторая версия устройст ва и возможно будут ещё!))

Приглашаем всех к тесту, также вы конечно можете задавать свои вопросы в комментариях.