User Tag List

Показано с 1 по 10 из 293

Тема: Чем отличались КА1515ХМ1-031 и 1515ХМ2-001?

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,382
    Спасибо Благодарностей отдано 
    1,698
    Спасибо Благодарностей получено 
    2,217
    Поблагодарили
    871 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    Кстати, а при чем тут буферный регистр (177712) и PCLK? Запись в буферный регистр (177712) происходит во время адресного обмена по шине МПИ, соответственно запись происходит по сигналу DOUT.
    Теоретически должно быть так, но на практике оно не всегда прописывается. Естественно, это я проверял по чтению регистра текущего значения, причем многократного чтения.

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2

    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    3,247
    Спасибо Благодарностей отдано 
    360
    Спасибо Благодарностей получено 
    638
    Поблагодарили
    414 сообщений
    Mentioned
    46 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Теоретически должно быть так, но на практике оно не всегда прописывается. Естественно, это я проверял по чтению регистра текущего значения, причем многократного чтения.
    Проделал небольшой опыт в пультовом отладчике ПП. Сперва остановил таймер записью 0 в регистр 177710. Потом записывал в буфер 177712 новое значение и смотрел в 177714. Между 177712 и 177714 ходил стрелками вверх и вниз. Никаких сбоев не было.

  4. #3

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,382
    Спасибо Благодарностей отдано 
    1,698
    Спасибо Благодарностей получено 
    2,217
    Поблагодарили
    871 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    Проделал небольшой опыт в пультовом отладчике ПП. Сперва остановил таймер записью 0 в регистр 177710. Потом записывал в буфер 177712 новое значение и смотрел в 177714. Между 177712 и 177714 ходил стрелками вверх и вниз. Никаких сбоев не было.
    А вот у меня получалось.
    Правда, эта ситуация выскакивала крайне редко.
    Гораздо легче получить неразблокировку регистра текущего значения при его чтении.

    ---------- Post added at 16:27 ---------- Previous post was at 16:19 ----------

    На счет регистра текущего значение есть такое предположение:
    В режиме останова, он все равно блокируется в цикле по каждому фронту предделителя. И если счиать его в тот момент, когда пришел новый фронт, то он разблокируется, и заблокируется заново.

  5. #4

    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    3,247
    Спасибо Благодарностей отдано 
    360
    Спасибо Благодарностей получено 
    638
    Поблагодарили
    414 сообщений
    Mentioned
    46 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    А вот у меня получалось.
    Правда, эта ситуация выскакивала крайне редко.
    Гораздо легче получить неразблокировку регистра текущего значения при его чтении.
    Titus, если мало ли тест сырой, то подчистите и выложите, во всяком случае у меня есть УКНЦ и с 1515ХМ1-031 и 1515ХМ2-001.

    А незапись, как я понимаю происходила в режиме СТОП?

  6. #5

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,382
    Спасибо Благодарностей отдано 
    1,698
    Спасибо Благодарностей получено 
    2,217
    Поблагодарили
    871 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    Titus, если мало ли тест сырой, то подчистите и выложите, во всяком случае у меня есть УКНЦ и с 1515ХМ1-031 и 1515ХМ2-001.

    А незапись, как я понимаю происходила в режиме СТОП?
    Да, в режиме останова.

    ---------- Post added at 16:41 ---------- Previous post was at 16:36 ----------

    Последовательность такая:

    1) 4 -> регистр состояния (останов, цикл 8мкс)
    2) 4095 -> буферный регистр (0xFFF в шестнацатиричном)
    (очень редко запись может не пройти, и в регистре останется старое значение)
    3) читаем регистр текущего значения
    4) читаем много раз регистр состояния
    (в регистре состояния в одном и 10 случаев, а то и чаще, так и остается значение 132 (0x84 в шестнацатиричном), что говорит о заблокированном регистре текущего значения. В большинсве же случаев читается 0x04)

    ---------- Post added at 16:45 ---------- Previous post was at 16:41 ----------

    Кстати, о том, что запись в регистры может не пройти, говорит и кусок кода из драйвера дисковода, где:

    Loop:
    0 -> регистр состояния
    число -> буферный регистр
    читаем регистр текущего значения, и если <> числу, то цикл на Loop

    Что говорит нам о том, что:
    1) запись нуля в регистр состояния может не пройти?
    2) запись в буферный регистр может не пройти

  7. #6

    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    3,247
    Спасибо Благодарностей отдано 
    360
    Спасибо Благодарностей получено 
    638
    Поблагодарили
    414 сообщений
    Mentioned
    46 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Последовательность такая:

    1) 4 -> регистр состояния (останов, цикл 8мкс)
    2) 4095 -> буферный регистр (0xFFF в шестнацатиричном)
    (очень редко запись может не пройти, и в регистре останется старое значение)
    3) читаем регистр текущего значения
    4) читаем много раз регистр состояния
    (в регистре состояния в одном и 10 случаев, а то и чаще, так и остается значение 132 (0x84 в шестнацатиричном), что говорит о заблокированном регистре текущего значения. В большинсве же случаев читается 0x04)
    После останова таймера надо обязательно прочесть регистр текущего значения (177714), т.к. если в регистре состояния (177710) стоит бит готовности, то естественно после записи в буфер (177712) новое значение и не перепишется в регистр текущего значения (177714), если стоит бит готовности, несмотря на то, что таймер в режиме СТОП. А вот после установки режима СТОП и чтения регистра текущего значения (177714) должны сбросится биты готовности, переполнения, фиксации внешнего события и буфер (177712) должен переписаться в регистр текущего значения (177714) (через счетчик естественно).
    Если выразится точнее, то в режиме СТОП и установленном бите готовности буфер (177712) переписывается в счетчик, а вот счетчик перепишется в регистр текущего значения (177714) только после сброса бита готовности.

  8. #7

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,382
    Спасибо Благодарностей отдано 
    1,698
    Спасибо Благодарностей получено 
    2,217
    Поблагодарили
    871 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    Если выразится точнее, то в режиме СТОП и установленном бите готовности буфер (177712) переписывается в счетчик, а вот счетчик перепишется в регистр текущего значения (177714) только после сброса бита готовности.
    Это все понятно, и не имеет отношения к глюку.

    Содержимое регистров и результат работы таймера я читаю значительно позже, а не сейчас. И по последствиям работы и выявляется вышеописанное мною.

  9. #8

    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    3,247
    Спасибо Благодарностей отдано 
    360
    Спасибо Благодарностей получено 
    638
    Поблагодарили
    414 сообщений
    Mentioned
    46 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Кстати, о том, что запись в регистры может не пройти, говорит и кусок кода из драйвера дисковода ...
    Это есть только в двух местах. В том же драйвере дисковода буфер (177712) грузится новым значением прям посреди процесса без всякой проверки. А вот в драйвере магнитофона когда в режиме СТОП заносится новое значение, то проверяется только регистр текущего значения (177714) и заново новое значение в буфер (177712) не заносится.

  10. #9

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,382
    Спасибо Благодарностей отдано 
    1,698
    Спасибо Благодарностей получено 
    2,217
    Поблагодарили
    871 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Вот набросок теста, который выявляет некоторые особенности.

    На скринах три варианты работы:

    Скрытый текст


    Нормальный:


    С несбросившимся регистром текущего значения:


    С непрописавшимся буферным регистром:


    Хотя, встречалась и такая ситуация:

    [свернуть]


    Интерес представляют только две нижние строчки дампа, а так же два числа итогового значения таймера, считанные друг за другом.
    Изначально, таймер останавливается, в него загружается число 0xFFF, и идет обратный отсчет с приходом сетевого прерывания. Во время следующего прерывания от сетевого таймера, значение регистра текущего значения считывается два раза подряд.

    Две строчки дампа представляют из себя фрагмет последовательного чтения регистра состояния в разные моменты времени. Первые 4 числа это чтение до чтения регистра текущего значения, остальные числа - после.

    Как видно из второго примера, после чтения регистра текущего значения так и остался установлен бит 7, т.к. во всей строке чисел прописано 132. Так же по итоговым значениям таймера видно, что идет 0 (занчит регистр действительно был заблокирован), а потом уже 1493, что означает, что таймер все же работал правильно.

    В третьем примере самый редкий случай. Хотя регистр текущего значения и разблокировался, но в итоге все равно получилось 0, 1523, что означает, что счет начался не с числа 0xFFF, а с числа на 20 больше, которое было до этого в таймере, и осталось, возможно, после работы драйвера дисковода. Так же видно, что при переходе через 0, регистр текущего значения заблокировался.
    Вложения Вложения
    • Тип файла: zip TSTMR.ZIP (1.3 Кб, Просмотров: 1326)

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

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

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

Похожие темы

  1. Куплю Т34ВГ1 (КА1515ХМ1-216)
    от moxjemi в разделе Барахолка (архив)
    Ответов: 2
    Последнее: 15.04.2011, 12:07

Ваши права

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