Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


 
Опции темы
Непрочитано 30.01.2014, 18:09  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 918
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию STM32 + USB HID

Раньше все никак руки не доходили. Попробую развивать тему по мере возможностей.
Итак, кто хотел дешевых интерфейсов с РС и устал моргать диодиками на мощных современных камнях, пришла пора попробовать на зуб USB. Для начала самый простой вариант - USB HID. В данной библиотеке предусмотрена передача пакета данных длинной от 1 до 64 байт с периодом от 1 до 1000мс.
Сразу забегу вперед. Инициатором передачи всегда является хост. В нашем случае это РС. Т.е. при подключении хост запрашивает конфигурации и репорты от нашего устройства. Библиотека только распознает принятый пакет и отвечает на него нужным репортом. Можно особо не вдаваться в смысл как именно это все работает и сразу приступить к передаче данных на хост. Для того мы тут и собрались. Вопросы будут потом.
Итак, качаем проект во вложении (под Keil) и адаптируем его под свое железо. А именно:
- Тип процессора
- Частота кварца
- Нога, которая включит нам подтяжку 1.5к на линию USBDP.
По первому пункту вопросов быть не должно. Для 103их просто сменить тип камня в конфигурации проекта.
Частота кварца - вопрос не простой. У меня кварц 16 МГц. У вас, вероятнее всего, 8 МГц. В файле STM32_Init воспольуемся wizard'ом и в параметрах тактирования изменим HSE Devider для PLL на 1 вместо 1/2. Проц заработает на частоте 72МГц, USB на частоте 48МГЦ. Возможны небольшие вариации с частотой проца, но частота USB должна быть именно такой.
Далее нога USB ON. Я не стал использовать pnp транзистор для включения PULL UP и просто завел через резистор 1.5к с первой попавшейся свободной ноги подпитку для USBDP. Поэтому сигнал USBON у меня положительный. В вашем случае, возможно, его придется инвертировать.
Далее вероятнее всего проект заработает. Что с ним делать?
Открываем файл usbcfg.h и видим привычный нам wizard (Dosicus!!! Wizard - не SPL Это именно та причина, по которой я пользую Keil. У меня половина проектов на визардах. Это удобно, наглядно и очень красиво )
Там мы можем изменить размер репорта, если 4 байта в пакете для вас не удобная цифра. В данном случае измерялась температура. 4 байта ее прекрасно переправляли на хост (2 байта на номер измерения и 2 байта само значение).
После всего проделанного у вас в main.c заработают две процедуры:
void GetReportToPC (void)
и
void ReportFromPCHandle (void)
Первая будет вызываться тогда, когда хост захочет получить с вас репорт. Т.е. в данном случае ваши 4 байта. Закоменнтированная процедура передаст только угрожающее слово "HELL". Остальные байты будут пропущены.
Вторая процедура тогда, когда хост что-то вам передаст. Т.е. это обработчик входящей информации. Не стоит затягивать с выполнением этой процедуры. Лучше положить данные в буфер приема, поднять флаг и позже спокойно обработать данные в теле программы.
Данные от хоста будут размещаться в массиве EP0Buf[USB_MAX_PACKET0], где USB_MAX_PACKET0 - размер репорта, о котором я говорил ранее.
Проверить ваше устройство и покидать туда-сюда пакеты с данными можно в привычном консольном режиме с помощью утилиты от MikroE.
Для этого качаем второе вложение Hid Terminal.rar
На этом пока все. На вопросы постараюсь ответить. В личку долбить не надо, если вы не Dosicus или не Крамольенович.
Вложения:
Тип файла: rar STM32+USB Project0.rar (58.4 Кб, 636 просмотров)
Тип файла: rar Hid Terminal.rar (400.6 Кб, 627 просмотров)
Реклама:

Последний раз редактировалось Easyrider83; 30.01.2014 в 18:23.
Easyrider83 вне форума  
Эти 10 пользователя(ей) сказали Спасибо Easyrider83 за это сообщение:
andronio (23.02.2016), AR_Favorit (06.08.2015), AVP (18.11.2017), dosikus (30.01.2014), LVII (02.03.2016), MisterDi (30.01.2014), niXto (30.01.2014), roach1967 (17.06.2016), serg_42 (23.02.2016), Vlad German (06.11.2014)
Непрочитано 30.01.2014, 18:20  
realid
Супер-модератор
 
Аватар для realid
 
Регистрация: 15.10.2007
Сообщений: 3,528
Сказал спасибо: 172
Сказали Спасибо 1,560 раз(а) в 810 сообщении(ях)
realid на пути к лучшему
По умолчанию Re: STM32 + USB HID

Сообщение от Easyrider83 Посмотреть сообщение
После всего проделанного у вас в main.c заработают две процедуры:
void GetReportToPC (void)
и
void GetReportToPC (void)
Найдите отличия)
realid вне форума  
Непрочитано 30.01.2014, 18:23  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 918
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: STM32 + USB HID

Спасибо, у меня кнопка С плохо нажимается. Иногда при сочетании CTRL+C ничего не происходит.
Easyrider83 вне форума  
Непрочитано 30.01.2014, 18:30  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,018
Сказал спасибо: 936
Сказали Спасибо 2,270 раз(а) в 1,565 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: STM32 + USB HID

realid, Это он на радостях . Исправит.


Easyrider83, Паша, что я вижу ! Ни грамма SPL , вот это прогресс.
Keil,овский пример ?
На счет визарда я в курсах .

А STM32_Init - это твое изобретение?
__________________
Осторожно , злой кот

Последний раз редактировалось dosikus; 30.01.2014 в 18:40.
dosikus вне форума  
Непрочитано 30.01.2014, 18:41  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 918
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: STM32 + USB HID

Сообщение от dosikus Посмотреть сообщение
Easyrider83, Паша, что я вижу ! Ни грамма SPL , вот это прогресс.

Я же говорил, что могу пользовать, а могу и нет. Никаких предрассудков.
Сообщение от dosikus Посмотреть сообщение
А STM32_Init - это твое изобретение?
Побойтесь бога! Это вам привет от Keil. Практически в каждом их примере встречается.
Easyrider83 вне форума  
Сказали "Спасибо" Easyrider83
dosikus (30.01.2014)
Непрочитано 30.01.2014, 19:19  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,018
Сказал спасибо: 936
Сказали Спасибо 2,270 раз(а) в 1,565 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: STM32 + USB HID

Easyrider83, Паш, как ты создал проект v5?
У меня отчего-то создает и сохраняет v4 - Keil v 5.1.0.0.
Все , решилось .
Если не использовать Manage Run-Time Environment(зарыть появляющееся окно после выбора чипа)
создается проект v4.
__________________
Осторожно , злой кот

Последний раз редактировалось dosikus; 30.01.2014 в 19:31.
dosikus вне форума  
Непрочитано 31.01.2014, 00:23  
omercury
Почётный гражданин KAZUS.RU
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: STM32 + USB HID

Сообщение от Easyrider83 Посмотреть сообщение
GPIOB-›ODR|=(1‹‹12)
Изверг !
omercury вне форума  
Непрочитано 31.01.2014, 00:25  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,018
Сказал спасибо: 936
Сказали Спасибо 2,270 раз(а) в 1,565 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: STM32 + USB HID

Сообщение от omercury Посмотреть сообщение
Изверг !
Дык это ж не он . Keil однако . У них все исходники аля AVR ...
Паша ,
Код:
GPIOB-›BSRR   =  GPIO_BSRR_BS12
 и 
GPIOB-›BSRR   =  GPIO_BSRR_BR12
__________________
Осторожно , злой кот

Последний раз редактировалось dosikus; 31.01.2014 в 00:29.
dosikus вне форума  
Непрочитано 31.01.2014, 00:27  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 918
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: STM32 + USB HID

Да это не важно на самом деле.
Easyrider83 вне форума  
Непрочитано 31.01.2014, 00:40  
omercury
Почётный гражданин KAZUS.RU
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: STM32 + USB HID

Написал
Код:
#define USB_On		GPIOС-›BSRR =GPIO_BSRR_BS12;// Выставили бит 12
#define USB_Off		GPIOС-›BSRR =GPIO_BSRR_BR12;// Сброс бита
в хидере, и вся недолга...
omercury вне форума  
 

Закладки
Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Печатная плата USBee AX picavr Барахолка электронных компонентов 950 20.08.2023 17:11
STM32F4 USB HID составление репорта swat24 ARM 40 20.02.2014 12:59
Помогите разобраться USB Device - HID - Joystick redb Микроконтроллеры, АЦП, память и т.д 6 11.03.2010 14:20
USB HID девайс на 18F13K50 не хочет работать. DK Микроконтроллеры, АЦП, память и т.д 17 26.02.2010 18:31
USB HID PIC18F4550 нужна помощь! tower2007 Микроконтроллеры, АЦП, память и т.д 0 17.04.2008 04:33


Часовой пояс GMT +4, время: 06:25.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot