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

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

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

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

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

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

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

 
Опции темы
Непрочитано 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.RU
 
Регистрация: 29.10.2006
Сообщений: 1,446
Сказал спасибо: 99
Сказали Спасибо 317 раз(а) в 233 сообщении(ях)
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.RU
 
Регистрация: 29.10.2006
Сообщений: 1,446
Сказал спасибо: 99
Сказали Спасибо 317 раз(а) в 233 сообщении(ях)
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, время: 04:13.


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