Разработка в Linux — это просто!
Этот топик будет посвящен подключению программатора отладчика фирмы Olimex — ICD2 на Linux.
Так как в интернете я почти не нашел информации по этому поводу, позволю рассказать себе как я это сделал.
Не хитро догадаться, что нужно знать на какой дистрибутив будем ставить. Мой выбор пал на Ubuntu 8.10. Ядро на данный момент было установлено версии 2.6.27-11-generic ( анстейбл вобщем ).
Однако, это очень дружественный и простой в использовании дистрибутив, но граблей при подключении избежать не удалось.
И так, начнем по порядку.
- Устанавливаем последнюю версию piklab.
Устанавливаем командой:
$ sudo aptitude install piklab
Пакетный менеджер потянет зависимоти в виде KDE либ, получается довольно много если у Вас не KDE.
Так, установили мы piklab. Теперь нужно выполнить второй шаг:
- подключение программатора ICD2.
После того как подключили и подождали секунд 10, стоит выполнить команду lsusb.
bond@bond-desktop:~$ lsusb
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
…
Bus 001 Device 007: ID 04d8:8000 Microchip Technology, Inc. In-Circuit Debugger
…
Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Если Вы не увидели Ваш отладчик, то я думаю стоит притормозить чтение данной статьи на неопределенный срок и выяснить, почему его не видит. Если все ок — двигаемся дальше. Следующим шагом будет:
- Настройка ICD2 в программе Piklab
bond@bond-desktop:~$ sudo addgroup microchip && sudo addgroup bond microchip
Добавляется группа `microchip' (GID 1002)…
Готово.
Добавляется пользователь `bond' в группу `microchip'…
Добавление пользователя bond в группу microchip
Готово.
bond@bond-desktop:~$
Затем, если все прошло хорошо, нужно создать файл — правило. Ну что ж — создадим.
$ sudo touch /etc/udev/rules.d/026_microchip.rules
Затем, скопируйте этот текст в тот файл, что мы создали:
#PICKit
SYSFS{idVendor}=="04d8", SYSFS{idProduct}=="0032", MODE="0660", GROUP="microchip"
#PICKit2
SYSFS{idVendor}=="04d8", SYSFS{idProduct}=="0033", MODE="0660", GROUP="microchip"
#ICD2
SYSFS{idVendor}=="04d8", SYSFS{idProduct}=="8000", MODE="0660", GROUP="microchip"
#ICD21
SYSFS{idVendor}=="04d8", SYSFS{idProduct}=="8001", MODE="0660", GROUP="microchip"
А вот теперь загроздка — нам нужны HEX файлы от оригинальной программы MPLAB. Если нет винд параллельно, то придется пойти к другу и заинсталить у него оригинальный MPLAB IDE и из папки C:\program files\microchip\_где_то_тут Скопировать каталог ICD2. Там лежат прошивки для программатора.
Затем кладем наш каталог с прошивками куда угодно, главное чтоб не потерли. Запускаем Piklab.
Жмем на кнопочки: Programmer -> Settings -> Programmer selection Во вкладке Port Selection точечку на USB, переходим на вкладку правее — Specific там указывем путь к нашей папке с HEX файлами. Теперь можно закрыть окна и Piklab. Снова запустить и нажать в верхнем меню Programmer -> Connect
В логе ниже мы должны увидеть нечто вроде этого:
Connecting ICD2 Programmer on USB Port with device 16F876A…
Firmware id is 1 and we want 1
Firmware version is 2.7.2
Set target
Set target self powered: false
Hold reset
Programmer Vpp = 12.9406 V
Target Vdd = 5.04132 V
Target Vpp = 12.9406 V
Self-test
Connected.
Enter normal mode
Already in requested mode.
Read id: 16F876A (rev. 7)
Вот собственно и все :) Теперь можете создавать новый проект и писать програму для него. Установку хорошего компилятора, рассмотрю в следующей заметке.
Проблемы и пути их решения
Проблема: Piklab в логе пишет нечто подобное:Connecting ICD2 Programmer on USB Port with device 16F876A…
USB Port: Error resetting USB device. (err=could not reset: Operation not permitted).
Решение: Поставить права доступа (crw-rw-rw-)на файл устройства в каталоге /dev/bus/usb/[шина]/[устройство]
Эти данные мы уже видели ранее, повторите команду lsusb:
Bus 001 Device 008: ID 04d8:8001 Microchip Technology, Inc. ICD2 in-circuit debugger
Проблема: Piklab ругается и просит Firmwere.
Решение: Проверьте путь к HEX файлам каталога ICD2. Так же проверьте права на устройство. См выше.
Проблема: Piklab вылетает при попытке смены настроек из нижнего левого меню.
Решение: Увы, ничем помочь не могу — производите настройки с верхнего меню.