реклама на сайте
подробности

 
 
> Делаем AVR USB (software) правильно, уровень схемы
MAXvaLL
сообщение Nov 28 2008, 13:26
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 221
Регистрация: 26-12-07
Пользователь №: 33 639



При реализации софтварного USB на AVR возникают вопросы. Как сделать правильно?

Видел варианты:

1. МК питается 5В от шины. D+ и D- напрямую к МК через резисторы ~ 200 Ом. D- подтянута на +5В через резистор ~10кОм.
Проблемы: по спецификации USB макс. допустимый уровень сигнала относительно земли 4.6В (или даже меньше) Смотрим USB2.0 Spec. Figure 7-2. Maximum Input Waveforms for USB Signaling
Можно спалить порт.

2. То же что и 1. , но дополнительно на D+ и D- поставлены стабилитроны на 3.6В (на землю), а вместо резисторов на 200 Ом стоят по 68 Ом.
Проблема: емкость стабилитронов - искажение формы сигнала. И всеравно будут выбросы.

3. МК питается от 3.3-3.6В от шины через стабилизатор или 2 диода. Подтяжка D- 1.5 кОм. На D+ и D- стоят резисторы по 68 Ом или вообще без резисторов.
Проблема: Минимальная необходимая частота 12 Мгц, а при использовании внутреннего генератора 16.5 Мгц. Насколько корректно гонять МК на такихз частотах при таком питании? В даташите как-то туманно про это написано: на титульной странице одно, на графиках другое, и ничего конкретного я так и не нашел.


Лично я использовал вариант 3. МК ATmega8 при кварце 12МГц. Работает.
Интересует заведется ли Tiny25 на 16.5 Мгц при питании 3.5-3.6В ?

Еще: атмел советует не гонять встроенный ацп быстрее 1 МГц (тактирование)
Я запустил при 3х Мгц. Работает. Насколько это корректно? (Полученная точность устраивает)
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
MAXvaLL
сообщение Nov 29 2008, 18:10
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 221
Регистрация: 26-12-07
Пользователь №: 33 639



Цитата(ukpyr @ Nov 29 2008, 15:17) *
вроде АВР выдает АСК независимо от правильности полученных данных (на проверку нет времени)


Не могу так просто с вами согласиться.
Вот функция вычисления crc16. Она что, для мебели просто?!
Кстати, о чем речь собственно? Лично я про http://www.obdev.at/products/avrusb/index.html
И кстати драйвер не стоит на месте, а развивается.

Код
; extern unsigned usbCrc16(unsigned char *data, unsigned char len);
; data: r24/25
; len: r22
; temp variables:
;   r18: data byte
;   r19: bit counter
;   r20/21: polynomial
;   r23: scratch
;   r24/25: crc-sum
;   r26/27=X: ptr
usbCrc16:
    mov     ptrL, argPtrL
    mov     ptrH, argPtrH
    ldi     resCrcL, 0
    ldi     resCrcH, 0
    ldi     polyL, lo8(0xa001)
    ldi     polyH, hi8(0xa001)
    com     argLen; argLen = -argLen - 1
crcByteLoop:
    subi    argLen, -1
    brcc    crcReady ; modified loop to ensure that carry is set below
    ld      byte, ptr+
    ldi     bitCnt, -8; strange loop counter to ensure that carry is set where we need it
    eor     resCrcL, byte
crcBitLoop:
    ror     resCrcH; carry is always set here
    ror     resCrcL
    brcs    crcNoXor
    eor     resCrcL, polyL
    eor     resCrcH, polyH
crcNoXor:
    subi    bitCnt, -1
    brcs    crcBitLoop
    rjmp    crcByteLoop
crcReady:
    ret


Цитата(Petka @ Nov 29 2008, 17:12) *
Вот как раз для 2х устройств FTDI ставить и оправданно.
+ Просто + надёжно.

1) Оверклокинг.
2) Не полное соответствие спецификации USB. Как физический протокол, так и реализация стэка.


Ну это кому как. Физически фтди сложнее поставить ( tqfp с шагом 0.5 против dip8 smile.gif )
Мне и это просто, хотя немного менее надежно - да.
Я не против НОРМАЛЬНОГО юсб, просто это решение тоже имеет право на жизнь.

1) Нет.
Цитата(ukpyr @ Nov 29 2008, 17:28) *
для 2.7В - да, для 3.6В - нет (12МГц)

+1

2) Поясните поподробнее, что имеется ввиду. (про стек)
А физика в чем не та? Ну вместо дифф. передатчика 2 обычных, ну и что?
Go to the top of the page
 
+Quote Post
Rst7
сообщение Nov 29 2008, 18:23
Сообщение #3


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата(MAXvaLL @ Nov 29 2008, 20:10) *
Не могу так просто с вами согласиться.
Вот функция вычисления crc16. Она что, для мебели просто?!

Функция эта используется для создания пакета для передачи и для проверки целостности пакета при приеме, но уже после того, как хосту сказано, что пакет принят нормально. Поэтому нет перепосылки неправильно принятого пакета. Еще раз повторюсь, ищите мои правки драйвера и доводите их до ума. Там контрольная сумма считается на ходу и хост ставится в известность о необходимости перепосылки.


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
MAXvaLL
сообщение Nov 29 2008, 18:29
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 221
Регистрация: 26-12-07
Пользователь №: 33 639



Цитата(Rst7 @ Nov 29 2008, 21:23) *
Функция эта используется для создания пакета для передачи и для проверки целостности пакета при приеме, но уже после того, как хосту сказано, что пакет принят нормально. Поэтому нет перепосылки неправильно принятого пакета. Еще раз повторюсь, ищите мои правки драйвера и доводите их до ума. Там контрольная сумма считается на ходу и хост ставится в известность о необходимости перепосылки.


Ясно.

Но у меня используются только управляющие транзакции, и если устройство не ответит на запрос, программа просто пошлет запрос еще раз.

Вопрос: а если обнаружена ошибка, UsbSetup будет вызвана?

Более того, даже если некоторые (главное чтоб не все smile.gif ) ответы пропадут, это не важно.

Так что то что ущербно для одной задачи, вполне приемлимо для другой!

Да, ваш опыт интересен, но нет возможности гонять МП на 20 МГц (питать буду от 3.3В и гонять на 12.8МГц, обеспечивая максимум аппаратной совместимости)
Да и нет необходимости.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- MAXvaLL   Делаем AVR USB (software) правильно   Nov 28 2008, 13:26
- - Dimonira   Имхо самое правильное, это использовать то, что сп...   Nov 28 2008, 13:38
- - ukpyr   ЦитатаМинимальная необходимая частота 12 Мгц, а пр...   Nov 28 2008, 13:47
- - MAXvaLL   Цитата(Dimonira @ Nov 28 2008, 16:38) Имх...   Nov 28 2008, 13:56
|- - acorn   Цитата(MAXvaLL @ Nov 28 2008, 15:56) Кто ...   Nov 28 2008, 21:19
- - ukpyr   ЦитатаКто уточнит, какой вольтаж жрет USB? имхо лу...   Nov 28 2008, 14:54
|- - MAXvaLL   Цитата(ukpyr @ Nov 28 2008, 17:54) имхо л...   Nov 28 2008, 16:03
|- - QuickWitted   Цитата(MAXvaLL @ Nov 28 2008, 21:03) Кста...   Dec 2 2008, 14:18
|- - MAXvaLL   Цитата(QuickWitted @ Dec 2 2008, 17:18) И...   Dec 2 2008, 17:42
|- - QuickWitted   Цитата(MAXvaLL @ Dec 2 2008, 22:42) Вопро...   Dec 2 2008, 18:07
|- - MAXvaLL   Цитата(QuickWitted @ Dec 2 2008, 21:07) т...   Dec 2 2008, 19:18
|- - QuickWitted   Цитата(MAXvaLL @ Dec 3 2008, 00:18) Хоть ...   Dec 3 2008, 02:35
|- - QuickWitted   Вопрос к АЛЛ как до HID достучаться с Дэльфи? Как...   Dec 3 2008, 16:31
|- - QuickWitted   Что то тема заглохла... Вопрос к АЛЛ как до HID д...   Dec 6 2008, 03:57
|- - Marian   Цитата(QuickWitted @ Dec 3 2008, 19:31) к...   Jun 22 2009, 16:29
- - Jhohn   Цитата(MAXvaLL @ Nov 28 2008, 19:03) Все ...   Nov 28 2008, 20:27
- - Petka   Цитата(MAXvaLL @ Nov 28 2008, 16:26) При ...   Nov 28 2008, 20:38
|- - MAXvaLL   Цитата(Petka @ Nov 28 2008, 23:38) для на...   Nov 29 2008, 07:25
|- - Petka   Цитата(MAXvaLL @ Nov 29 2008, 10:25) Мне ...   Nov 29 2008, 14:12
- - Jhohn   Цитата(Petka @ Nov 28 2008, 23:38) для на...   Nov 28 2008, 20:44
- - ukpyr   ЦитатаЭто почему? По отношению к МК стабилитроны с...   Nov 29 2008, 08:44
|- - MAXvaLL   Цитата(ukpyr @ Nov 29 2008, 11:44) не пол...   Nov 29 2008, 09:13
- - ukpyr   вроде АВР выдает АСК независимо от правильности по...   Nov 29 2008, 12:17
- - Rst7   Цитатавроде АВР выдает АСК независимо от правильно...   Nov 29 2008, 13:30
- - ukpyr   ЦитатаОверклокинг. для 2.7В - да, для 3.6В - нет (...   Nov 29 2008, 14:28
- - Rst7   ЦитатаСтавить ФТДИ просто смешно для данного проек...   Nov 29 2008, 14:52
- - vvvvv   У меня вопрос немного в сторону, но может кто знае...   Nov 30 2008, 12:34
- - Jhohn   Цитата(MAXvaLL @ Nov 29 2008, 21:29) Но у...   Nov 30 2008, 19:00
- - MAXvaLL   Цитата(vvvvv @ Nov 30 2008, 15:34) У меня...   Nov 30 2008, 20:13
- - MAXvaLL   Знатоки AVR USB, отзовитесь!   Dec 1 2008, 18:51
- - Xenia   Кто знает, отчего берутся USB-запросы (CDC Class R...   Jun 21 2009, 00:35
|- - Genadi Zawidowski   Цитата(Xenia @ Jun 21 2009, 04:35) Кто зн...   Jun 21 2009, 07:47
|- - Xenia   Цитата(Genadi Zawidowski @ Jun 21 2009, 11...   Jun 21 2009, 14:10
- - Br.Misha   Здраствуйте! Я понимаю что тема уже старая но ...   Aug 24 2009, 19:07


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 21:38
Рейтинг@Mail.ru


Страница сгенерированна за 0.01434 секунд с 7
ELECTRONIX ©2004-2016