05.12.2013, 23:42
|
|
Почётный гражданин KAZUS.RU
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,616
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от Easyrider83
|
Нет, просто неспешно 16 байт туда-сюда гонять. Я полинг интервал 10мс ставлю.
HID потому, что ничего больше не умею.
|
Паша. Бери за основу VCP или VCP Loopback из USB-либы на эту линейку. Просто, доступно и РАБОЧЕ! ![Улыбка](images/smilies/icon_smile.gif) Со стороны РС - СОМ-порт (а уж с ним-то в любой среде наваяешь), вовнутрях МК - USART. С буферизацией. Простой и более-менее надежный. Правда, не помню где, но его поругивали сложными высказываниями и аргументами, мне недоступными. В моих поделках сбоев не отмечено.
__________________
С уважением,
Vic / ut1wpr
|
|
|
|
06.12.2013, 00:07
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
ut1wpr, нужно, чтобы без дров и с минимальной загрузкой ядра. HID был оптимален. СОМ порт неудобен тем, что пачками отправлять нельзя. Приходится либо по времени делить, либо что-то типа АТ команд применять. Это неудобно. Проще по HID сразу пакетом.
|
|
|
|
06.12.2013, 00:09
|
|
Почётный гражданин KAZUS.RU
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,627
Сказал спасибо: 115
Сказали Спасибо 814 раз(а) в 591 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от Easyrider83
|
HID потому, что ничего больше не умею.
|
Плюсую CDC. УМВР. Если хочешь, возьми из ircontroller у меня на сосфорже. Там общение с компьютером как раз через CDC. Никаких "драйверов" или самописных программ не нужно (если только не соберешься перегонять данные в хитром формате). У меня оно через обычный терминал работало.
А вообще, как уже говорили, примеров в интернете навалом! Я, собственно, поначалу и содрал с примера. И лишь потом начал читать даташит. Как обычно ☹ Сначала поломаем, а потом мануалы читаем, почему поломали и как исправить.
__________________
Союз Советских Социалистических Округов Северной Америки
|
|
|
|
06.12.2013, 00:26
|
|
Гражданин KAZUS.RU
Регистрация: 16.03.2009
Адрес: Украина, Харьков
Сообщений: 762
Сказал спасибо: 108
Сказали Спасибо 67 раз(а) в 67 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от ut1wpr
|
Так ведь Паша под другую линейку просил вроде. Был озвучена 103-я. А вы подкладываете 407-ю. Некорректно. Стеки абсолютно разные.
|
Извиняюсь, не заметил, что 103 серия. Увидел что просят и дал свое
У меня небольшой вопрос. Пробовал этот проект, что скидывал. У меня получилась скорость передачи 120 кбайт/с. Это в основном цикле отправлялись данные.
Не мало ли это для 407 МК ? Я предполагал, что через ЮСБ должно быть поболее. Я с таким же успехом могу через виртуальный ком порт передавать с ПДП. Возможно даже быстрее получится.
Сообщение от Easyrider83
|
ut1wpr, нужно, чтобы без дров и с минимальной загрузкой ядра. HID был оптимален. СОМ порт неудобен тем, что пачками отправлять нельзя. Приходится либо по времени делить, либо что-то типа АТ команд применять. Это неудобно. Проще по HID сразу пакетом.
|
Можно же построить пакет с начальной и конечной комбинациями. Или по типу начальная комбинация, всего байт, данные, конечная комбинация. Я так хочу перегонять в ПК оцифрованные значения из внешней СРАМ. Или это не совсем удобно в Вашем случае?
Последний раз редактировалось swat24; 06.12.2013 в 00:32.
|
|
|
|
06.12.2013, 00:32
|
|
Почётный гражданин KAZUS.RU
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от Easyrider83
|
Нет, просто неспешно 16 байт туда-сюда гонять.
|
Ну если размера хватает и скорость не нужна, тогда пойдёт.
Когда хватать перестанет, посмотри в сторону режима BULK. Тут всё просто. И, как всегда, ссылки, ссылки.
|
|
|
Сказали "Спасибо" omercury
|
|
|
06.12.2013, 13:13
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Ваши примеры, к сожалению, очень громоздкие. Я потом свой выложу. Там красиво все ))
Сейчас получилось добиться отправки от 1 до 4 байт. При 5 байтах уже не идет. Думаю, справлюсь к вечеру.
Есть такая функция:
Код:
|
DWORD USB_WriteEP (DWORD EPNum, BYTE *pData, DWORD cnt) {
/* Double Buffering is not yet supported */
DWORD num, *pv, n;
num = EPNum & 0x0F;
pv = (DWORD *)(USB_PMA_ADDR + 2*((pBUF_DSCR + num)-›ADDR_TX));
for (n = 0; n ‹ (cnt + 1) / 2; n++) {
*pv++ = *((__packed WORD *)pData);
pData += 2;
}
(pBUF_DSCR + num)-›COUNT_TX = cnt;
EP_Status(EPNum, EP_TX_VALID);
return (cnt);
} |
Тут понятно - пишет в память USB массив *pData длинной cnt по адресу нужного EP. Почему-то от 1 до 4 байт идет нормально. А при, допустим, 8 байтах выдает нули с пятого байта.
Последний раз редактировалось Easyrider83; 06.12.2013 в 13:40.
|
|
|
|
06.12.2013, 13:30
|
|
Почётный гражданин KAZUS.RU
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,616
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от Easyrider83
|
ut1wpr, нужно, чтобы без дров и с минимальной загрузкой ядра. HID был оптимален. СОМ порт неудобен тем, что пачками отправлять нельзя. Приходится либо по времени делить, либо что-то типа АТ команд применять. Это неудобно. Проще по HID сразу пакетом.
|
Не совсем понял. Вернее, совсем не понял. Что значит "пачками"? Что значит "отправлять"? Ведь отправку USB пакета данных от МК на хост все-таки инициирует хост. Даже в HID.
И какое ядро ты бережешь? Хоста или МК. Если МК - оно и без того не очень загружено. EPxx_IN и EPxx_OUT это коллбеки, их вызывают интеррапты USB. Исходя из этого МК может заниматься чем угодно. Вплоть до "поспать". ![Улыбка](images/smilies/icon_smile.gif) Не обязательно вслепую применять стек полностью. Никто не запрещает свои коллбеки сваять. Главное, выдержать вызывные соглашения и протоколы семафоров. Ну, а с драйверм VCP под Форточку проблема больше надуманная.
__________________
С уважением,
Vic / ut1wpr
|
|
|
|
06.12.2013, 13:32
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от Easyrider83
|
Там красиво все ))
|
Угу , снова Keil'вский визард ...
Надеюсь до тебя дошло что визарды должны быть в хэдерах а не исходниках?
Кстати погляди реализацию для Keil'вских демоборд , там все прозрачно и без SPL ...
__________________
Осторожно , злой кот
|
|
|
|
06.12.2013, 13:32
|
|
Почётный гражданин KAZUS.RU
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,616
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от Easyrider83
|
Ваши примеры, к сожалению, очень громоздкие. Я потом свой выложу. Там красиво все ))
Сейчас получилось добиться отправки от 1 до 4 байт. При 5 байтах уже не идет. Думаю, справлюсь к вечеру.
|
Сейчас уже точно не вспомню, но когда я работал со стеком PIC HID (HID KBD под себя переточенный и переобозванный), вроде бы у меня в дескрипторах длина пакета USB была 64 байта и все летало. Но могу и наврать. Года три прошло.
__________________
С уважением,
Vic / ut1wpr
|
|
|
|
06.12.2013, 14:10
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от dosikus
|
Угу , снова Keil'вский визард ...
Надеюсь до тебя дошло что визарды должны быть в хэдерах а не исходниках?
Кстати погляди реализацию для Keil'вских демоборд , там все прозрачно и без SPL ...
|
Все там нормально. Не надо грязи.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 19:25.
|
|