Geforce - сдвоенная PLL

Тема в разделе "WASM.ELECTRONICS", создана пользователем Ole, 4 апр 2006.

  1. Ole

    Ole Member

    Публикаций:
    0
    Регистрация:
    14 июн 2004
    Сообщения:
    69
    Доброго времени суток!

    Мужики, помогите кто чем может :) Я уже с ума схожу. Кто нибудь знает принцип работы сдвоенной PLL? Частота расчитывается так:

    Частота кварца (27MHz) * NA * NB / (MA * MB * 2^P), где P - общий для обоих PLL.

    Имеем: ~112 мегагерц NA=14h, NB=5h, MA=3h, MB=1h, P=3 (P^2=8). Все работает отлично. Далее - изменяем значения NA=64h, NB=1h результат не изменился НО частота "поплыла"! Идем еще дальше NA=DCh, NB=86h, MA=8Bh, MB=33h, P=0 - Ничего не пашет, хотя результат по прежнему ~112 mhz Почему? Фигня какая-то....

    Заранее благодарен хотя-бы за какие-нибудь домыслы.

    PS: Девайсы Geforce FX все кроме 5200 (у нее одна PLL)

    Вот исходники на C для вычисления на всякий случай может там есть подсказка, но черт, не могу я ничего понять кроме асма :dntknw:
     
  2. Ole

    Ole Member

    Публикаций:
    0
    Регистрация:
    14 июн 2004
    Сообщения:
    69
  3. Ole

    Ole Member

    Публикаций:
    0
    Регистрация:
    14 июн 2004
    Сообщения:
    69
    Ребят, может кто знает нюансы программирования ЛЮБОЙ ФАПЧ?
     
  4. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.409
    Адрес:
    Fryazino
    Ole

    Откуда исходники?

    Если можно дай линк, откуда можно скачать целиком исходник.
     
  5. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.409
    Адрес:
    Fryazino
    Ole

    Понял из XFree

    А что за формула такая странная?

    Хотя вроде понял что ты имеешь ввиду.

    А это что за фигня NA=DCh, NB=86h, MA=8Bh, MB=33h, P=0 ?

    Если я тебя понял верно. То ошибка в числах

    P и MB и NB лежат в 1 байте.

    твой MB

    0 Selects a VCO loop divide value of 4.

    1 Selects a VCO loop divide value of 16.

    твой NB

    00 = 4

    01 = 1

    10 = 20

    11 = 5

    P

    000 =1

    001 =2

    010 =4

    011 =8

    100 =16

    101 =32
     
  6. Ole

    Ole Member

    Публикаций:
    0
    Регистрация:
    14 июн 2004
    Сообщения:
    69
    Pavia спасибо что откликнулся. С P все ясно, постделитель со времен ривы-тнт не поменялся. А вот про NB и MB можно ли чуть подробнее? Формула... наверное правильнее будет привести ее к виду Fout=Fref*((NA*NB)/(MA*MB))/P^2, где NA-множитель 1-PLL, NB множетель 2-PLL, MA-делитель 1 PLL и т.д. хотя результат этой формулы тот-же.

    NA=DCh, NB=86h, MA=8Bh, MB=33h, P=0 - это вычисленные значения. 27mhz*((DC*86)/(8B*33))/1 = 112 mhz.

    PS. Заметил такую вещь: NB если больше 4 бит - частота начинает дурить чем дальше тем больше. Я так понял что в PLL1 значения N и M любые от 0 до FF. А вот PLL2...



    PPS. MB от 0 до 5 работает железно
     
  7. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.409
    Адрес:
    Fryazino
    Ole

    Да я тебя сначала не понял.

    Сейчас скачал исходники от XFree там сложнее. Зависет от дивайса.

    if(pll & 0x00000080) {

    MB = (pll >> 4) & 0x07;

    NB = (pll >> 19) & 0x1f;

    } else {

    MB = 1;

    NB = 1;

    }
     
  8. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.409
    Адрес:
    Fryazino
  9. 3ahyga

    3ahyga New Member

    Публикаций:
    0
    Регистрация:
    28 фев 2006
    Сообщения:
    24
    Адрес:
    Стольный град Москов
    Чо написано в датащите?
     
  10. Ole

    Ole Member

    Публикаций:
    0
    Регистрация:
    14 июн 2004
    Сообщения:
    69
    "Датащита" не существует, все вслепую на удачу. Вы думаете зачем я задавал бы совершенно идиотские вопросы, если бы смотрел в док. Прогресс немного есть, сама грубая ошибка заключалась в том, что не понимая что такое PLL, я не знал о преобразовании уровня напряжения в частоту. Из этого следовало, что далеко не с любого места она генерит, а существует определенный отрезок задаваемый как ни странно постделителем. Посмотрев на мой прошлый алгоритм я удивляюсь что не спалил видяшку. Весьма странно что это никто не знал, вопрос конкретно упирается в электронику.
     
  11. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    Ole



    Я бы очень удивился, если бы узнал, что можно спалить видяшку или что-либо другое через PLL. PLL для того и предусмотрен, чтобы частота не зашкаливала.
     
  12. Ole

    Ole Member

    Публикаций:
    0
    Регистрация:
    14 июн 2004
    Сообщения:
    69
    Ну видяшку, это грубо сказал. А вот плл вполне возможно, я думаю. И дело не в зашкалевшей частоте (опасно после плл). А в уровне напряжения на VCOmax. По крайней мере у меня, после этого, компьютер не реагировал на ресет, только выключение питания... Я тоже не больно верю что можно вообще что-то спалить, но если представить что уважаемая нвидиа не поставила ограничитель... а она его скорее всего не поставила, потому что в регистр, предельное значение которого 4h свободно пишется до ffh (как раз где-то на 22..24 перестает срабатывать reset), то получаем примерно следущее: "рабочий отрезок" от 350 до 700 МГц нижняя граница которого формируется напряжением .. к примеру 1,65в верхняя - просто умножается на 2. Далее, при нашем запросе низкой частоты, мы сдвигаем отрезок вниз с помощью P, что кстати подтвеждает код биоса. А теперь задираем частоту (тупо) И что происходит с напряжением?

    PS. Все выше описанное касается внутренностей ПЛЛ, то есть на выходе частота должна быть правильной. Но правильную частоту можно получить разными напряжениями. Тем более есть множитель, делитель и постделитель, все они управляются уровнем напряжения. Поправьте если что.
     
  13. Ole

    Ole Member

    Публикаций:
    0
    Регистрация:
    14 июн 2004
    Сообщения:
    69
    Поправлю, во избежании непонимания. Не работает ресет - это я имел ввиду ресет видеоплаты. А про регистр в который пишется до ff - пишем, потом читаем и пишем в файл. Так я узнал. Не при чёрном мониторе :)