Home Проекты Програмно-Аппаратные V-USB IO (управление МК по USB)

Случайная новость

Добавлены проекты программатора USB ASP  и защиты JTAG отладчика

V-USB IO (управление МК по USB) PDF Печать E-mail
Автор: Sinopteek   
26.02.2011 19:24

Идея заключается в описании библиотеки описывающей конкретный микроктроллер и последующей реализации устройства как экземляра класса и управления непосредственно из программы ПК по USB.

Проект создан по идее поданной Microsin на своём сайте. Был показан и реализован пример на С++.

На основе этого примера был написан код реализующий подобную функциональность на Python с использованием библиотеки libusb.
Вся суть заключается в упаковке адресса и команды на стороне ПК, передачи по USB, распаковке на стороне МК и выполнении.
Пример работы со стороны ПК будет выглядеть следующим образом:

VUSB_test.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# -*- coding: UTF8 -*-
from ATMEGA16 import *
import usb
 
#u"используем экземпляр класса"
MC = ATMega16()
 
#находим устроство
MC.find_device()
 
MC.open()
 
 
#u"если меняем vid и pid"
vid = 0x16C0
pid = 0x05DC
 
#u'проверка работы ATMEGA16.py'
print "MC.DDRA=",hex(MC.DDRA)
 
MC.DDRA = 0xFF
MC.DDRB = 1
 
MC.PORTB = 0x01
MC.PORTB = 0x00
print "MC.PORTB=",hex(MC.PORTB)
 
 
#u'мигаем лампочкой'
for x in range (1000000):
if ((x % 10000) < 5000):
MC.PORTB = 0x01
else:
MC.PORTB = 0x00
MC.close()

На основе данного модуля был реализован проект SFR , таким образом(за счёт расширения функциональности), что они совместимы и всё описанное можно испытывать на плате SFR.


Преимушества перед оригинальным проектом:

  • лёгкость изменений (не надо компилировать),
  • наглядность,
  • кроссплатформенность (Windows, Linux, MacOS)


Таким образом,используя описанный выше метод, можно легко реализовать модуль простого ввода вывода, при этом получить доступ к практически всем возможностям микроконтролера. При этом варинты примения проекта IMHO гораздо шире, чем просто быстрое прототипирование. Например, системы ввода вывода для ПК - по сути практически нет доступных и простых систем воода вывода с ПК. Тем более кроссплатформенных. Точнее не было Laughing Теперь можно реализовать простенькую систему регистрации или не очень скоростную управления.


Все необходимые файлы(проекты, прошивка) можно найти в файловом архиве.

 

по просьбе Андрея Синюткина написал статью по быстрому старту.

 

заметки:

  • опытным путём была достигнута скорость опроса в 10 кГц.
  • Пример предназначал для ATMega16, но отлино работает и на ATMega8, т.к. большинство адресов совпадает. Для переноса на другой МК необходимо всего лишь подправить адресса регистров в описании модуля МК.
  • Пока работает с одной платой, подключённой к ПК, но есть варианты с несколькими, по мере готовности появление модификации достаточно вероятно


p.s. Может быть пример и был совместим с родоначальником, но не уже не помню, т.к. это было давно(года полтора назад). Сейчас же понадобилось переработать проект, вот и описал его здесьLaughing

Обновлено 27.02.2011 13:31
 

Добавить комментарий


Защитный код
Обновить

Облако тегов

usb   libusb   AVR   sfr   USB   V-USB   avr   python  
Joomla Extensions