Управление силовыми приборами через USB ПК
- Left Radio
- Прорезались зубы
- Сообщения: 235
- Зарегистрирован: Пт авг 22, 2008 03:58:30
- Откуда: Union Soviet Socialist Republics
- Контактная информация:
- Left Radio
- Прорезались зубы
- Сообщения: 235
- Зарегистрирован: Пт авг 22, 2008 03:58:30
- Откуда: Union Soviet Socialist Republics
- Контактная информация:
Ну первым делом надо скачать USBXpress и заодно Keil uVision for C51 8.12, устанавливаем все это дело, создаем проект в Keil, присоединяем к проекту USBX_F320_1.LIB предварительно скопировав этот файл в папку с проектом. Затем пишем:
Компилируем и прошиваем, затем устанавливаем дрова входящие в комплект USBXpress, подключаем устройство и устанавливаем новое устройство если винда потребует. На этом все, пора писать прогу для компа...
Код: Выделить всё
//----------
// Includes
//----------
#include "c8051f320.h"
#include "USB_API.h"
xdata BYTE In_Packet[3]; //массив для принимаемых данных с компа
/*** [BEGIN] USB Descriptor Information [BEGIN] ***/
code const UINT USB_VID = 0x10C4;
code const UINT USB_PID = 0xEA61;
code const BYTE USB_MfrStr[] = {0x1A,0x03,'S',0,'i',0,'l',0,'i',0,'c',0,'o',0,'n',0,' ',0,'L',0,'a',0,'b',0,'s',0}; // Manufacturer String
code const BYTE USB_ProductStr[] = {0x10,0x03,'U',0,'S',0,'B',0,' ',0,'A',0,'P',0,'I',0}; // Product Desc. String
code const BYTE USB_SerialStr[] = {0x0A,0x03,'4',0,'3',0,'2',0,'1',0};
code const BYTE USB_MaxPower = 150; // Max current = 300 mA (15 * 2)
code const BYTE USB_PwAttributes = 0x80; // Bus-powered, remote wakeup not supported
code const UINT USB_bcdDevice = 0x0100; // Device release number 1.00
/*** [ END ] USB Descriptor Information [ END ] ***/
void Port_Init(void)
{
/* Initialize Crossbar and GPIO */
/* Все порты настроены на выход */
P0MDOUT = 0xFF;
P1MDOUT = 0xFF;
P2MDOUT = 0xFF;
P3MDOUT = 0x01;
XBR1 = 0x40;
}
void Initialize(void)
{
Port_Init(); // Initialize crossbar and GPIO
}
//----------
// Main Routine
//----------
void main(void)
{
PCA0MD &= ~0x40; // Disable Watchdog timer
USB_Clock_Start(); // Init USB clock *before* calling USB_Init
USB_Init(USB_VID,USB_PID,USB_MfrStr,USB_ProductStr,USB_SerialStr,USB_MaxPower,USB_PwAttributes,USB_bcdDevice);
Initialize();
USB_Int_Enable();
while (1); //вечный цикл в ожидании прерывания USB
}
//----------
// Interrupt Service Routines
//----------
void USB_API_TEST_ISR(void) interrupt 16 // ISR for USB_API
{
bit temp_Chanel;
BYTE INTVAL = Get_Interrupt_Source();
if (INTVAL & TX_COMPLETE)
{
USB_TX_READY = 1;
}
if (INTVAL & RX_COMPLETE)
{
Block_Read(In_Packet, 3);
P0 = In_Packet[0];
P1 = In_Packet[1];
P2 = In_Packet[2];
}
if (INTVAL & DEVICE_OPEN)
{
USB_START = 1;
}
}
Компилируем и прошиваем, затем устанавливаем дрова входящие в комплект USBXpress, подключаем устройство и устанавливаем новое устройство если винда потребует. На этом все, пора писать прогу для компа...
Крылья... Крылья.... Хвост! 
Нестрашно не знать, страшно не стремиться знать.

Нестрашно не знать, страшно не стремиться знать.
- Left Radio
- Прорезались зубы
- Сообщения: 235
- Зарегистрирован: Пт авг 22, 2008 03:58:30
- Откуда: Union Soviet Socialist Republics
- Контактная информация:
Э... А что тут удивительного?
Все три порта назначены как пуш-пул выход, а в прерывании при получении трех байт от компа, соответсвенно выводим эти три байта на порты, что тут страшного? Ведь именно это и требовалось, переслали инфу с компа - реле вкл./выкл.
Если не надо задействовать все порты, то можно например ничего к ним не подсоединять
, или переназначить на I2C/SPI/UART, или на вход.
Короче нахрена оно мне надо? Не хотите читать, разбераться и т. д. Ваше дело. Я и так выложил Вам готовую программу.....
Все три порта назначены как пуш-пул выход, а в прерывании при получении трех байт от компа, соответсвенно выводим эти три байта на порты, что тут страшного? Ведь именно это и требовалось, переслали инфу с компа - реле вкл./выкл.
Если не надо задействовать все порты, то можно например ничего к ним не подсоединять
Короче нахрена оно мне надо? Не хотите читать, разбераться и т. д. Ваше дело. Я и так выложил Вам готовую программу.....
Крылья... Крылья.... Хвост! 
Нестрашно не знать, страшно не стремиться знать.

Нестрашно не знать, страшно не стремиться знать.
- Left Radio
- Прорезались зубы
- Сообщения: 235
- Зарегистрирован: Пт авг 22, 2008 03:58:30
- Откуда: Union Soviet Socialist Republics
- Контактная информация:
Да, наверно погорячился, не принимайте на свой счет
Я тоже когда то начинал... с чтения даташитов(тем более есть на русском),апнотов, форумов и т.д.
По программированию данных МК написано в апнотах(с примерами кода) например - http://www.electrosnab.ru/silabs/sil_appl.htm.
Программу я выложил полную, компилируйте, прошивайте, потом видно будет....
Я тоже когда то начинал... с чтения даташитов(тем более есть на русском),апнотов, форумов и т.д.
По программированию данных МК написано в апнотах(с примерами кода) например - http://www.electrosnab.ru/silabs/sil_appl.htm.
Программу я выложил полную, компилируйте, прошивайте, потом видно будет....
Крылья... Крылья.... Хвост! 
Нестрашно не знать, страшно не стремиться знать.

Нестрашно не знать, страшно не стремиться знать.
- Left Radio
- Прорезались зубы
- Сообщения: 235
- Зарегистрирован: Пт авг 22, 2008 03:58:30
- Откуда: Union Soviet Socialist Republics
- Контактная информация:
От себя дополню вашу тему. Использую камни фирмы микрочип, 18 ой серии с поддержкой USB. Скачиваем компилятор фирмы MikroE под любой удобный вам язык. Там есть замечательная тулза - HID генератор скрипта для работы с USB. А встроенные библиотеки позволяют одной командой принимать байт из USB и отсылать его. На компе запускаю VB6, там у меня уже готовый модуль для работы с USB, который легко перестраивается под любые нужды. Драйвера на ваше устройство не требуются т.к. определяется оно как HID.
Нужно будет подробнее, выложу в картинках.
Использую камень PIC18F2450. Стоит он не дорого и возможности его позволяют очень много.
Нужно будет подробнее, выложу в картинках.
Использую камень PIC18F2450. Стоит он не дорого и возможности его позволяют очень много.
- Left Radio
- Прорезались зубы
- Сообщения: 235
- Зарегистрирован: Пт авг 22, 2008 03:58:30
- Откуда: Union Soviet Socialist Republics
- Контактная информация:
На GMR можете не обращать внимания, это насколько я помню тип припоя.... Если есть возможность возьмите лучше 320 его удобней паять.
Аналогично....
У Silabs тоже полно примеров для HID, но я с ним не работал, не было надобности...
На самом деле выбор камня не принципиален... Главное желание самому что то делать
.
Easyrider писал(а):встроенные библиотеки позволяют одной командой принимать байт из USB и отсылать его
Аналогично....
Easyrider писал(а):Там есть замечательная тулза - HID генератор скрипта для работы с USB.
У Silabs тоже полно примеров для HID, но я с ним не работал, не было надобности...
На самом деле выбор камня не принципиален... Главное желание самому что то делать
Крылья... Крылья.... Хвост! 
Нестрашно не знать, страшно не стремиться знать.

Нестрашно не знать, страшно не стремиться знать.
Re: Управление силовыми приборами через USB ПК
Все дядьки.... Вы меня добили окончательно... Долго долго в сети ищу как сделать на ЮСБ вот это http://www.pcports.ru/articles/6.php, при чем нужна статья в томже стиле. А затем нужна статья в таком стиле http://www.pcports.ru/articles/8.php Но сколько не искал нигде не нашел. Неужели никто не написал статейку для полного чайника вроде меня? Может где валяется кто знает? Такой каши в голове у меня небыло с тех давних пор когда я в институте изучал волновую теорию. Да я конечно видел вот это http://www.pcports.ru/articles/usb3.php, но платить 1500р за то что при наличии LPT дается бесплатно религия не позволяет. Может я не туда смотрю, может в поиске не те слова использую? Может производители офисной USB ракетницы и т.п. магией моторы крутят? Короче задача: Переключать 8 светодиодов из собственной программы на MVС++ через USB. При чем не сломав при этом мозг. Так вот, вы не вкурсе решил ее ктонибудь? Буду премного благодарен тем кто не отошлет меня в поиск, ибо расценю это как отсыл на 3 буквы. Сижу в гугле 2 недели. Вся проблема в том что я не занимался подобными воросами и => даже правильно написать строку поиска это уже задача. Всем спасибо за прочтение моего крика души)).
- NiTr0
- Друг Кота
- Сообщения: 3051
- Зарегистрирован: Пт авг 10, 2007 12:49:55
- Откуда: kr.ua
- Контактная информация:
Re: Управление силовыми приборами через USB ПК
Берете исходники USBtinyISP, и пытаетесь переписывать под свои реалии...
Re: Управление силовыми приборами через USB ПК
Берете исходники USBtinyISP, и пытаетесь переписывать под свои реалии...
......................
Я боюсь что вы не правильно меня поняли....... Где я их беру? Что это? Я набрал в гугле.... И.. Я переворотил весь форум, для того чтобы мне чтото здесь понять, надо читать еще 2 месяца..
Я как раз прошу дать мне ссылку на какойнибудь ресурс типа pcports.ru где языком понятным для ламера было бы все описано. Я уверен что я не одинок в своих желаниях, иначе небыло бы столько вопросов на форуме, каждая десятая тема содержит слова USB и LPT. Вот вам тема для сайта"сопряжения ПК с внешними устройствами по USB" посетители гарантированны. Я лично по 10 раз перейду по каждой рекламной ссылке на этом сайте)). Из перелопаченного материала я понял что мне надо двигаться в сторону FT232 + какойнибудь МК,который в дальнейшем я буду использовать для всего. Почемуто мне кажется, что я хочу начать с Меги 16. Или я вообще ничего не понял? Короче посоветуйте еще и первый МК для изучения). Да кстати у меня нет готовых устройств ни для ЛПТ ни для СОМ, поэтому мне абсолютно всеравно как поджигать диоды по ЮСБ. Мне надо превратить ПК в некое подобие МК, так сказать припаять к юсб ножки от МК)) и спомощью программы на ПК ими дрыгать)).
......................
Я боюсь что вы не правильно меня поняли....... Где я их беру? Что это? Я набрал в гугле.... И.. Я переворотил весь форум, для того чтобы мне чтото здесь понять, надо читать еще 2 месяца..
Я как раз прошу дать мне ссылку на какойнибудь ресурс типа pcports.ru где языком понятным для ламера было бы все описано. Я уверен что я не одинок в своих желаниях, иначе небыло бы столько вопросов на форуме, каждая десятая тема содержит слова USB и LPT. Вот вам тема для сайта"сопряжения ПК с внешними устройствами по USB" посетители гарантированны. Я лично по 10 раз перейду по каждой рекламной ссылке на этом сайте)). Из перелопаченного материала я понял что мне надо двигаться в сторону FT232 + какойнибудь МК,который в дальнейшем я буду использовать для всего. Почемуто мне кажется, что я хочу начать с Меги 16. Или я вообще ничего не понял? Короче посоветуйте еще и первый МК для изучения). Да кстати у меня нет готовых устройств ни для ЛПТ ни для СОМ, поэтому мне абсолютно всеравно как поджигать диоды по ЮСБ. Мне надо превратить ПК в некое подобие МК, так сказать припаять к юсб ножки от МК)) и спомощью программы на ПК ими дрыгать)).
- Сэр Мурр
- Модератор
- Сообщения: 11169
- Зарегистрирован: Чт окт 27, 2005 18:50:07
- Откуда: из мест не столь отдалённых
Re: Управление силовыми приборами через USB ПК
Упс! Есть так называемый набор PicKit2 http://www.pickit2.ru/doku.php/о.проекте он как раз способствует началу работы. Цена на момент проведения акции была вполне гуманная- 600 руб. Даже сейчас это стартовый набор можно приобрести, если поискать. Достоинство набора- всё включено, работает на любом компе, даже на нетбуке; стартовый МК сам по себе уже современный; есть возможность использования самых разных средств программирования- в том числе и графических- в виде блок-схем; более того- даже программировать МК с собственной операционной системой (МК в представленном поддерживает эту возможность); не нужно делать программатор.
- NiTr0
- Друг Кота
- Сообщения: 3051
- Зарегистрирован: Пт авг 10, 2007 12:49:55
- Откуда: kr.ua
- Контактная информация:
Re: Управление силовыми приборами через USB ПК
BROM писал(а):Где я их беру? Что это?
Программатор на USB, с открытым исходным кодом как самой прошивки, так и драйвера для компа. ИМХО куда проще с него начать, чем с нуля писать...
Ну или на аппноуты посмотреть, софт юсб вроде как и там есть...