User Tag List

Страница 30 из 45 ПерваяПервая ... 262728293031323334 ... ПоследняяПоследняя
Показано с 291 по 300 из 448

Тема: ОРИОН-2010 на ПЛИС.

  1. #291

    Регистрация
    15.11.2007
    Адрес
    Харьков
    Сообщений
    873
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Ewgeny7 Посмотреть сообщение
    При побайтовой передаче приемник и передатчик каждый раз синхронизируются заново, потому ошибки и не возникают.
    там передача всегда побайтово, для каждого байта отправляется СТАРТ-ДАННЫЕ-(ЧЕТНОСТЬ)-СТОП. Ошибки возникают из-за того что приемник и передатчик не синхронизированны одним сигналом, для того чтоб небыло ошибок тактовые частоты приемника и передатчика должны быть строго одинаковы, тут "как бы" есть два генератора синхросигналов, у приемника и передатчика свой, но оба они "начинают работать" по выдаче/приему СТАРТ бита, и если их частоты различаются то и появляется вероятность того что какойто бит будет пропущен или защелкнут дважды...

  2. #292

    Регистрация
    03.07.2005
    Адрес
    Санкт-Петербург
    Сообщений
    10,168
    Спасибо Благодарностей отдано 
    147
    Спасибо Благодарностей получено 
    84
    Поблагодарили
    55 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Keeper, я имею ввиду, что для передачи десятка бит разница в тактовых частотах может быть значительной (относительно). Но при передаче по протоколу это уже недопустимо. Я видел где-то табличку с расчетом процентов на ошибку в зависимости от кварца. Так там 0% давался лишь для упомянутого мною 11.0592.
    ScorpEvo ZS 1024 turbo+ CF-HDD/FDD/Mouse/SMUC 3.1/ProfROMse/NeoGS/ZC
    Speccy-2007 128/AY/TR-DOS

    Сайт с документацией к "Scorpion ZS 256"

  3. #293

    Регистрация
    15.11.2007
    Адрес
    Харьков
    Сообщений
    873
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Ewgeny7 Посмотреть сообщение
    Я видел где-то табличку с расчетом процентов на ошибку в зависимости от кварца.
    На 99% уверен что в даташыте на AVRки Например для ATmega8515 со страницы 160. Раздел называется USART > Examples of Baud Rate Setting

  4. #294

    Регистрация
    18.09.2009
    Адрес
    г.Ногинск, МО
    Сообщений
    246
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Ewgeny7 Посмотреть сообщение
    Ну ладно, мои контраргументы закончились...
    И в будущем желательно получать такие же четкие инструкции...
    Друг ты мой сердешный! Мы, что идем на второй круг?
    Ты уже все сам предложил ранее:

    Сообщение от Ewgeny7
    Предлагаю все же не лохматить бабушку, а сигнализировать просто битами.
    если принять -
    00 - 00
    E0 - 01
    F0 - 10
    - то нам понадобится всего два бита для полной передачи информации драйверу.
    Т.е. драйвер получит сам сканкод 14, а также два бита установленных в единицу (префикс E0 есть, префикс F0 есть).
    Ёжики поймут, что отпущен правый CTRL.


    Уточню:
    1. прерывание по нажатию и отпусканию.
    2. читаем два байта: сканкод+флаги
    2.1 при нажатии клавиши получаем сканкод+флаг 00 или 01 (E0)
    2.2 при отпускании клавиши получаем сканкод+флаг 10 (F0)
    3. с адресами портов ты собирался разобраться сам!
    4. у клавиатуры должны быть два порта: один для сканкода, второй - для флагов!

    Следующее:
    1. расставить приоритеты прерываний:
    PS/2 - самый высокий (не уверен, что должен быть самый высокий - посмотрим)
    Int50 - средний
    USART- низший
    2. поправь файл "Arhitektura_Orion-2010". Он изрядно устарел.

    P.S. Что вдруг случилось, что ты перешел на "ВЫ"?

    Внес исправления!
    Последний раз редактировалось pvlad; 19.07.2010 в 14:17.
    Если ты чего-то не знаешь, то это не значит, что этого не может быть.

  5. #295

    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,581
    Спасибо Благодарностей отдано 
    64
    Спасибо Благодарностей получено 
    112
    Поблагодарили
    97 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от pvlad Посмотреть сообщение
    Но даже в ПС, если ты нажал клавишу, то отменить на нее реакцию уже не возможно - даже если ты ее и отпустил! Она все равно будет записана в буфер, и программа, анализируя, выполнит то что эта клавиша предписала. Поэтому для системных п/п работы с клавиатурой, факт отпускания клавиши мало значим, и необходим, чтобы сортировать прерывания. А вот прикладные программы могут изгаляться с фактом отпускания клавиши, как им заблагорассудится!
    Думаю, только прерыванием по нажатию (без отображения отпускания клавиши) мы не обойдемся. Даже примитивному CP/M-овскому или Мониторовскому драйверу клавиатуры (на прерываниях, а не на матрице), не возвращающему пользователю статус одновременно нажатых кнопок, для своей внутренней логики отпускание обязательно надо отслеживать. Иначе как он узнает и обработает комбинацию "функциональная кнопка + символьная кнопка". Например, получив статус нажатия "клавиш регистров" (Ctrl, Alt, Shift) при последующем прерывании вида "символьная кнопка" драйверу нужно надежно знать - нажаты "клавиши регистров" до сих пор или уже отпущены. И в зависимости от этого добавлять смещение к коду, возвращаемому драйвером пользователю, или не добавлять.

    Т.е. вариантов два: или делать анализ отпускания, или писать драйвер так чтобы от работал гибридно (т.е. несистемно) - и прерывания обрабатывал бы, и в в порт F402 лазал бы за состоянием Ctrl, Рус\Lat, Shift. С другой стороны, из F402 кроме трех функциональных кнопок нельзя прочитать Alt, и много еще чего.

    ---------- Post added at 12:07 ---------- Previous post was at 12:04 ----------

    Цитата Сообщение от pvlad Посмотреть сообщение
    Уточню:
    1. прерывание по нажатию и отпусканию.

    Я поторопился с ответом (или долго набирал? как посмотреть), можно было не набирать вышеприведенное.

    В целом, выглядит достаточно удобно.
    Последний раз редактировалось Error404; 19.07.2010 в 12:10.
    Лучше сделать и жалеть, чем не сделать и жалеть.

    Некоторые из моих поделок тут: https://github.com/serge-404

  6. #296

    Регистрация
    03.07.2005
    Адрес
    Санкт-Петербург
    Сообщений
    10,168
    Спасибо Благодарностей отдано 
    147
    Спасибо Благодарностей получено 
    84
    Поблагодарили
    55 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от pvlad Посмотреть сообщение
    Друг ты мой сердешный! Мы, что идем на второй круг?
    Ага
    Просто мне переделывать еще раз не хочется. Я предложил - ты вроде как не против.
    Раз не против, уточняю уже детали реализации. тем более, что расхождения снова появились:

    Цитата Сообщение от pvlad Посмотреть сообщение
    1. прерывание по нажатию и отпусканию.
    Цитата Сообщение от pvlad Посмотреть сообщение
    2.2 при отпускании клавиши получаем сканкод+10 (F0)
    Цитата Сообщение от pvlad Посмотреть сообщение
    2. поправь файл "Arhitektura_Orion-2010". Он изрядно устарел.
    Не понял... Я его вчера редактировал.

    Цитата Сообщение от pvlad Посмотреть сообщение
    P.S. Что вдруг случилось, что ты перешел на "ВЫ"?
    "вы" с Сергеем
    ScorpEvo ZS 1024 turbo+ CF-HDD/FDD/Mouse/SMUC 3.1/ProfROMse/NeoGS/ZC
    Speccy-2007 128/AY/TR-DOS

    Сайт с документацией к "Scorpion ZS 256"

  7. #297

    Регистрация
    18.09.2009
    Адрес
    г.Ногинск, МО
    Сообщений
    246
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Поправил 294.
    Если ты чего-то не знаешь, то это не значит, что этого не может быть.

  8. #298

    Регистрация
    03.07.2005
    Адрес
    Санкт-Петербург
    Сообщений
    10,168
    Спасибо Благодарностей отдано 
    147
    Спасибо Благодарностей получено 
    84
    Поблагодарили
    55 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Обновление 1.09. Клавиатурное.

    Изменения в портах.
    Ногами сильно не пинайте, после отпуска номера скорректируем.
    Сейчас:
    10..12 - F400..F402
    20..22 - F500..F502
    40..4F - F760..F76F
    Изменения вызваны необходимостью расширить порты F76x без усложнения дешифраторов.
    Порт конфигурации 4F теперь соответственно называется 47.
    Порт чтения сканкода - F768 (48) - сканкод клавиши
    Порт чтения префикса - F769 (49) - префикс 00, E0, F0.
    при нажатии префикс равен соответственно 00 или Е0. При отпускании - F0.
    Включение прерывания PS/2 как и ранее, запись в D6 порта F766 (46). Надеюсь, работает.
    Вложения Вложения
    ScorpEvo ZS 1024 turbo+ CF-HDD/FDD/Mouse/SMUC 3.1/ProfROMse/NeoGS/ZC
    Speccy-2007 128/AY/TR-DOS

    Сайт с документацией к "Scorpion ZS 256"

  9. #299

    Регистрация
    19.01.2009
    Адрес
    Белгород
    Сообщений
    385
    Спасибо Благодарностей отдано 
    6
    Спасибо Благодарностей получено 
    13
    Поблагодарили
    12 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Извините, что вмешиваюсь, есть предложение по поводу клавиатуры.
    Я думаю, что правильнее всего будет сделать FIFO-буфер, в который последовательно записываются генерируемые клавиатурой коды, вместе с префиксами и суффиксами. При поступлении первых данных в буфер генерируем прерывание, а соответствующий вектор должен будет эти скан-коды обработать (конечный автомат с таблицей перекодировки клавиш) и отдать остальным потребителям.
    Обработчик прерывания работает до тех пор, пока не извлечет все данные из буфера, т.е. если в процессе обработки скан-кодов поступят новые, то обработчик должен будет дочитать и их, но дополнительного прерывания от клавиатуры естественно не выставится.
    В этом случае нам потребуется один 8-разрядный порт в адресном пространстве и биты состояния FIFO - пустой или переполнение.

  10. #300

    Регистрация
    18.09.2009
    Адрес
    г.Ногинск, МО
    Сообщений
    246
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от aviator Посмотреть сообщение
    Извините, что вмешиваюсь...
    Конечно, подобный алгоритм имеет право на жизнь. Но это перечеркивает все, что до этого было сделано. Вы беретесь помогать:
    1. Переписать значительную часть алгоритма, обрабатывающего PS/2 в Альтере (используется готовая библиотека открытого кода). Кроме того изыскать ресурсы ПЛИС на создание FIFO-буфера и автомата, управляющего им. Не нужно забывать, что ПЛИС - это всего-лишь схемотехника и этот автомат придется собирать на "вентилях и триггерах".
    2. Переделать контроллер прерываний (так же используется готовая библиотека открытого кода). Проблемы те же -переделывать схемотехнику, и все это связывать воедино.

    Что выигрываем, кардинально?
    Один порт в адресном пространстве? (у нас, что катастрофический недостаток адресного пространства для портов?)
    Что еще? Только существенного, кроме новой идеи!?

    Нет секрета в том, что данный проект держится на опыте и знаниях ПЛИС Ewgeny7. Он очень способный, но не Господь (прости, что в суе)! Проект постепенно улучшается, по мере накопления им знаний и опыта. И с этим приходится считаться. Кроме того, и с его бескорыстием для всех. Возможно придет время, и он согласится воплотить Ваше предложение. Но, кроме этого, надо, чтобы кто-то еще написал драйвер клавиатуры под ваш алгоритм работы PS/2. Вы за это беретесь?

    У нас, знаете-ли, существует негласное правило: идеи предлагаются, пока есть не решенная проблема. А когда она решена, то ее замена на новую идею - только с предложением реального собственного участия. А мы будем помогать, если ваша идея лучше. Все исходники выкладываются, поэтому нет проблем с участием и переделкой какого-то узла "Ориона-2010".
    И последнее. Я совсем не ставил цель Вас обидеть, и был бы рад (и все мы вместе!), если Вы активно подключитесь к нашему проекту.
    Если ты чего-то не знаешь, то это не значит, что этого не может быть.

Страница 30 из 45 ПерваяПервая ... 262728293031323334 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. ПЛИС и всё что с ними связано
    от Sayman в разделе Для начинающих
    Ответов: 1909
    Последнее: 17.11.2024, 12:43
  2. Вопрос по ПЛИС
    от Zloy в разделе Несортированное железо
    Ответов: 23
    Последнее: 17.10.2015, 17:12
  3. Орион-2010. Hard & Soft
    от Error404 в разделе Орион
    Ответов: 1198
    Последнее: 24.11.2013, 15:35
  4. Ответов: 92
    Последнее: 19.02.2009, 17:33

Ваши права

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