Портал для радиолюбителей и разработчиков электроники · с 2003 годаРеклама на сайте
Найти компонент, схему или даташит

Даташиты, справочник отечественных приборов, схемы с разбором и живой форум

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы

USB коннектор на AVR

Непрочитано 31.03.2012, 14:12  
a-fisher
Прописка
 
Аватар для a-fisher
 
Регистрация: 15.11.2007
Адрес: СПБ
Сообщений: 214
Сказал спасибо: 37
Сказали Спасибо 42 раз(а) в 34 сообщении(ях)
a-fisher на пути к лучшему
По умолчанию Re: USB коннектор на AVR

Даже хуже Нужно всегда помнить, что у сигнала есть время нарастания, когда он, строго говоря, неопределен, и время спада. И если мы ничем не синхронизируемся (спадом или нарастанием - в прерывании, например), то легко момент считывания входов может попасть на неопределенное состояние сигнала на входе.
Реклама:
a-fisher вне форума  
Непрочитано 31.03.2012, 14:21  
slavik.ksu
Частый гость
 
Регистрация: 20.02.2012
Сообщений: 30
Сказал спасибо: 9
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
slavik.ksu на пути к лучшему
По умолчанию Re: USB коннектор на AVR

Хорошо! тогда на "время нарастания" мы можем наложить какие нить границы? например: время нарастания не более 30нс из таких то таких предположений,убеждений. Или например : время нарастания обычно сотсавляет 50% от длительности самого сигнала и получим что время нарастания может быть ~165нс в нашем случае?
Или например:оно вапще не определено и поэтому время нарастания даже может быть больше времени сигнала?
slavik.ksu вне форума  
Непрочитано 31.03.2012, 15:06  
a-fisher
Прописка
 
Аватар для a-fisher
 
Регистрация: 15.11.2007
Адрес: СПБ
Сообщений: 214
Сказал спасибо: 37
Сказали Спасибо 42 раз(а) в 34 сообщении(ях)
a-fisher на пути к лучшему
По умолчанию Re: USB коннектор на AVR

Время нарастания в нашем случае (с ограничением полосы сверху) можно принять половину длины импулься, те 166 нс. Если будем пытаться расчитывать точно, то залезем в такие дебри, что оно того не стоит. В качестве фильтрации помех принимаем, что нам нужно 2 подряд одинаковые выборки и они должны "поместиться" в "валидную" часть импулься, т.е. во вторые 166 нс, значит выборки нужно делать не реже, чем через 83 нс, тогда мы получим общую задержку 166 нс + время выборки и сравнения с предыдущей выборкой (меньше, чем 83 нс, потому что проанализировать нужно успеть до следующей выборки) + время установки выходов = примерно 300 нс
a-fisher вне форума  
Непрочитано 31.03.2012, 16:41  
slavik.ksu
Частый гость
 
Регистрация: 20.02.2012
Сообщений: 30
Сказал спасибо: 9
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
slavik.ksu на пути к лучшему
По умолчанию Re: USB коннектор на AVR

главный цикл:
Start:
in r16,PinD
cp r16,r17
mov r17,r16
BRNE Start
out PortB,r16
rjmp Start
1такт in + 1такт cp + 1такт mov + 2тактa BRNE =5 тактов должно выполниться за 83 нс. У меня получилось частота должна быть 60МГц.
Правильно?
а с такой частотой могут какие нибудь AVRки работать?
slavik.ksu вне форума  
Непрочитано 31.03.2012, 16:52  
slavik.ksu
Частый гость
 
Регистрация: 20.02.2012
Сообщений: 30
Сказал спасибо: 9
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
slavik.ksu на пути к лучшему
По умолчанию Re: USB коннектор на AVR

Сообщение от a-fisher Посмотреть сообщение
По скольку судя по тз у нас сигнал дифференциальный, то он может быть или 01, или 10, любая другая считанная комбинация ошибочна (неважно, из-за чего).
что значит дифференциальный? как я понимаю между двумя сигналами должна быть какая то разница(напряжений, хотя наверно может быть и разница меду фазами сигналов). Если они одинаковы то это синфазный сигнал, да ведь?
А из каких слов вы поняли что он дифферинциальный?
На 11странице там тоже так пишут
Цитата:
Входной сигнал дифференциальный противофазный?
Ссылаясь на слова:
Цитата:
На выходе, между каналами, не должно быть задержки. (появление сигнала строго одновременно)
slavik.ksu вне форума  
Непрочитано 31.03.2012, 17:09  
a-fisher
Прописка
 
Аватар для a-fisher
 
Регистрация: 15.11.2007
Адрес: СПБ
Сообщений: 214
Сказал спасибо: 37
Сказали Спасибо 42 раз(а) в 34 сообщении(ях)
a-fisher на пути к лучшему
По умолчанию Re: USB коннектор на AVR

Сообщение от slavik.ksu Посмотреть сообщение
это синфазный сигнал, да ведь?
А из каких слов вы поняли что он дифферинциальный?
Помнится, там было D+ и D-, обычно так обозначают дифференциальный сигнал. Если одинаковый, то, конечно, синфазный. Я имел в виду противофазный сигнал.
Тактовая - да, 60 МГц. АВРки не знаю, STM на 72 МГц знаю
a-fisher вне форума  
Непрочитано 31.03.2012, 17:47  
Godzilla82
Почётный гражданин KAZUS.RUN
 
Регистрация: 29.10.2006
Сообщений: 1,449
Сказал спасибо: 99
Сказали Спасибо 318 раз(а) в 234 сообщении(ях)
Godzilla82 на пути к лучшему
Сообщение Re: USB коннектор на AVR

Не забывайте о сохранении длительности импульса.

Есть цикл. 333 нс.

==›
В начале цикла мы отслеживаем изменение, ля-ля-ля, убеждаемся, что всё в порядке.
‹==
В конце цикла мы меняем выходной сигнал.

Так вот. Длительность команд между ==› и ‹== должна всегда быть одной и той же. Независимо от того, сразу мы убедились, что сигнал верен, или для этого нам потребовалось ещё одно чтение-сравнение.

Хотя формально для ТЗ этого и не нужно. Но для реального устройства это важно.
Godzilla82 вне форума  
Непрочитано 31.03.2012, 17:55  
a-fisher
Прописка
 
Аватар для a-fisher
 
Регистрация: 15.11.2007
Адрес: СПБ
Сообщений: 214
Сказал спасибо: 37
Сказали Спасибо 42 раз(а) в 34 сообщении(ях)
a-fisher на пути к лучшему
По умолчанию Re: USB коннектор на AVR

Сообщение от Godzilla82 Посмотреть сообщение
Длительность команд между ==› и ‹== должна всегда быть одной и той же.
Ну это, конечно, нужно учесть. Скажем, если выборки разные, то пишем в регистр сравнения, если одинаковые - то в выходной регистр, ибо, если одинаковые, то операция mov r17,r16 становится избыточной.
a-fisher вне форума  
Непрочитано 31.03.2012, 18:09  
slavik.ksu
Частый гость
 
Регистрация: 20.02.2012
Сообщений: 30
Сказал спасибо: 9
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
slavik.ksu на пути к лучшему
По умолчанию Re: USB коннектор на AVR

Сообщение от a-fisher Посмотреть сообщение
там было D+ и D-, обычно так обозначают дифференциальный сигнал
кроме обше принятого обозначения больше нет причин ждать дифферинциальный сигнал? Может не тоит тогда исключать 00 и 11?

Сообщение от Godzilla82 Посмотреть сообщение
Так вот. Длительность команд между ==› и ‹== должна всегда быть одной и той же. Независимо от того, сразу мы убедились, что сигнал верен, или для этого нам потребовалось ещё одно чтение-сравнение.
то есть вмоей прогограмме выше: если у нас совпали значения, то от начала цикла до вывода прошло ~100нс, а если не совпали в этом случае запуститься еще раз цикл проверки и сигнал выйдет только через ~183нс . Это и надо отслеживать, чтобы разницы во времени не было?
slavik.ksu вне форума  
Непрочитано 31.03.2012, 18:55  
Godzilla82
Почётный гражданин KAZUS.RUN
 
Регистрация: 29.10.2006
Сообщений: 1,449
Сказал спасибо: 99
Сказали Спасибо 318 раз(а) в 234 сообщении(ях)
Godzilla82 на пути к лучшему
Сообщение Re: USB коннектор на AVR

PHP код:
 
char tmp1, tmp2;

begin:
tmp1 = PIND;
tmp2 = PIND;
if(tmp1 == tmp2)
  {
  asm("nop"); // столько раз, сколько нужно
  goto output;
  }
tmp1 = PIND;
if(tmp1 == tmp2)
  {
  asm("nop"); // столько раз, сколько нужно
  }
else
  {
  \\ была какая-то помеха, ничего не делаем
  asm("nop"); // столько раз, сколько нужно
  goto begin;
  }

output:
PORTB = tmp1;
asm("nop"); // столько раз, сколько нужно
goto begin; 
количество nop-ов поставить таким образом, чтобы при любом раскладе цикл выполнялся 83 нс.

Лучше же в прерывании:

PHP код:
 
interrupt(timer1_compare) // выполняется каждые 83 нс
{
PORTB = out;
begin:
tmp1 = PIND;
if(PIND!=tmp1) goto begin;
out = tmp1;
} 

Последний раз редактировалось Godzilla82; 31.03.2012 в 19:07.
Godzilla82 вне форума  
 
Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
usb джойстик на avr bobrozub Микроконтроллеры, АЦП, память и т.д 7 14.03.2012 20:24
USB клавиатура + AVR Serdgo96 Микроконтроллеры, АЦП, память и т.д 2 25.02.2010 22:55
USB Коннектор, разпиновка nerozero Информация по радиокомпонентам 2 05.10.2007 14:20
AVR...USB Edd-Layer Микроконтроллеры, АЦП, память и т.д 4 11.04.2007 21:37


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


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.