Ключевое ?лово

vk

 Превращаем программатор USBasp в I2C-USB переходник:

SAM 2685

 Если Вы уже знакомы с USBasp программатором,то  вы знаете,что это очень простое и дешевое устройство для программирования м/к ATmega,но оказывается программатор , используя проект i2c tiny usb можно превратить в полноценный дешевый переходник I2C to USB.

В итоге мы получаем возможность подключать разные устройства I2C к компьютеру всего за 100 рублей (3$).Например мы можем подключить датчик давления BMP085 или микросхемы ввода/вывода MCP23017 для подключения кнопок или управления нагрузкой через реле.

 

USBasp прошивается стандартно как при обновлении прошивки и прошивается так же через arduino как программатор или используя другой USBasp программатор.Для программирования используются те же выводы SCK,MISO,MOSI,RESET ,но прошивка идет через утилиту avrdude ,а не из среды Arduino IDE.

Порядок действий для прошивки через arduino:

1. Подключаем выводы SCK,MISO,MOSI,RESET к Arduino согласно инструкции.

2. Установавливаем перемычку self programming (на фото обозначена как JP2),обычно место для перемычки не распаяно.

3. Качаем скомпилированную прошивку под USBasp  тут и кидаем в папку путь_к_папке_ардуины_/hardware/tools/.

4. Перейдем в консоль (cmd или bash) Вашей операционной системы в папку через команду cd путь_к_папке_ардуины_/hardware/tools/ и далее вводим команды для Windows,не забывем указать верный порт,на котором подключена Arduina:

avrdude -C avrdude.conf -c avrisp -P COM1 -b 19200 -p m8 -v  

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

Если Вы видите такие сообщения- значит подключено все правельно и можно прошивать командой:

avrdude -C avrdude.conf -c avrisp -P COM1 -b 19200 -p m8 -U flash:w:i2c_tiny_usb.hex -U lfuse:w:0x9f:m -U hfuse:w:0xc9:m

 

Для прошивки из Linux все аналогично, заменяется часть строки:

./avrdude -C avrdude.conf -c avrisp -P /dev/ttyUSB0 ...

 

Порядок действий для прошивки через другую USBasp:

Подключаем выводы SCK,MISO,MOSI,RESET один в один.Можно просто подключить через шлейф,идущий в комплекте с программатором.

Указываем опцию -c usbasp вместо -c avrisp

 

usbisp toi2cПосле успешной прошивки устройство опознается как i2c-tiny-usb и выводы программатора будут иметь другое назначение: SDA и SDL ,к которым мы можем уже подключать I2C устройства согласно справочной информации.

 

 

 

Работа переходника I2C-USB в Linux:

Драйвера в Linux не требуются ,но по умолчанию модуль i2c-dev не загружен и его необходимо установить в автозагрузку выполнив команду echo "i2c-dev" >>/etc/modules или/и загрузить модуль немедленно командой modprobe i2c-dev .В папке /dev/ Вы увидите возможно несколько устройств вида -i2c-X,наше скорее всего будет последним.Зная номер сейчас можно работать с устройствами подключенные на данной шине согласно примеров и инструкций к устройствам.Рекомдуется установить пакет программ i2c-tools (через управление ПО Вашей операционной системы)  -поможет для поиска I2C устройств командой i2cdetect -y Х ,где Х - это номер i2c шины:

i2cdetect

 На скриншоте мы видим сообщение команды i2cdetect ,где выводит подключенные устройства ,а именно устройство 77 (шестнадцатиричное) - BMP085 ,а так же запуск демо программы датчика давления BMP085 ,которая вывела текущее давление и температуру.

 Приложения с данным переходником i2c_tiny_usb могут работать как с USB устройством -в этом случае загрузка модуля i2c-dev не нужна.

Работа переходника I2C-USB в Windows:

Для работы переходника требуются драйвера i2c_tiny_usb .В windows приложения работают только как с USB устройством,а не с шиной I2C.

 

Материалы и ссылки:
Прошивка i2c_tiny_usb.hex.
Страничка проекта i2c_tiny_usb.

Home`s Smart © 2013-2016. г.Киров.
Цитирование материалов возможно только со ссылкой на сайт. Использование фотоматериалов только с разрешения авторов.