|
AD7760-АЦП 24 разряда, 2,5 МГц, кто пользовал? |
|
|
|
 |
Ответов
|
Jan 24 2008, 05:39
|

Местный
  
Группа: Свой
Сообщений: 311
Регистрация: 11-06-07
Из: Российская империя, 1861г.
Пользователь №: 28 349

|
Цитата(DS @ Jan 23 2008, 19:38)  Origin Спасибо. Однако начав тернистый путь ее пользования, споткнуласьДа я вообщем-то не об этом. СтОит ли эта прога моих мук? Может есть варианты попроще?
--------------------
Итак увидел я, что нет ничего лучше, чем наслаждаться человеку делами своими (Еккл) .
|
|
|
|
|
Jan 24 2008, 17:05
|

Гуру
     
Группа: Свой
Сообщений: 4 363
Регистрация: 13-05-05
Из: Москва
Пользователь №: 4 987

|
Цитата(SALOME @ Jan 24 2008, 08:39)  Спасибо. Однако начав тернистый путь ее пользования, споткнуласьДа я вообщем-то не об этом. СтОит ли эта прога моих мук? Может есть варианты попроще? Adobe Audition (CoolEdit). Цитата(SALOME @ Jan 23 2008, 07:51)  Я понимаю буквально, что SSYNC надо ставить там, где идет обращениии к перфирии. В исходниках от ADI так и сделано. А как надо? Первый - надо. Второй - не надо.
--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
|
|
|
|
|
Jan 25 2008, 05:04
|

Местный
  
Группа: Свой
Сообщений: 311
Регистрация: 11-06-07
Из: Российская империя, 1861г.
Пользователь №: 28 349

|
Цитата(Stanislav @ Jan 25 2008, 00:05)  Adobe Audition (CoolEdit).
Первый - надо. Второй - не надо. И точно. В аудио же 24 разряда давно прописались. Попробую. А где первый и второй? Цитата(Stanislav @ Jan 25 2008, 01:17)  Ну, это же элементарно... Для правильного "опороса" АЦП Вам потребуется сидеть в этом цикле вечно, Кстати, что за зверь в его качестве используется? Я ни сижу в этом цикле вечно. Там используется свойство залипания бита, отвечающего за опрос DRDY. Получается быстрее, чем при прерывании. Использую TFT дисплей NEC "NL2432HC22-41K" и он очень хорошо сопрягается через PPI.
--------------------
Итак увидел я, что нет ничего лучше, чем наслаждаться человеку делами своими (Еккл) .
|
|
|
|
|
Jan 30 2008, 23:22
|

Гуру
     
Группа: Свой
Сообщений: 4 363
Регистрация: 13-05-05
Из: Москва
Пользователь №: 4 987

|
Цитата(SALOME @ Jan 25 2008, 08:04)  А где первый и второй? Сверху вниз, по тексту прогги. Вообще-то, и первый, скорее всего, не нужен. Для более точного ответа нужно посмотреть сгенерённый ассемблерный код (знаете, как это делать?). Цитата(SALOME @ Jan 25 2008, 08:04)  ...Я ни сижу в этом цикле вечно. Там используется свойство залипания бита, отвечающего за опрос DRDY. Получается быстрее, чем при прерывании. Использую TFT дисплей NEC "NL2432HC22-41K" и он очень хорошо сопрягается через PPI. Ясно. ТФТ так ТФТ на PPI, ничего не поделаешь. Стало быть, Вы сначала накапливаете блок данных, а потом его "абсчитываете". Менее корявой от этого логика работы, однако, не становится (уж простите). О пользе чтения мануалов. Процессор BlackFin силён не только, и даже не столько своими вычислительными возможностями (есть DSP и покруче). Он, ко всему прочему, обладает развитой многошинной архитектурой, многопортовой по множеству 4к внутренней памятью данных, а также лучшей из тех, с коими приходилось сталкиваться, системой ввода-вывода. Имеется в виду, прежде всего, контроллер ПДП (DMA) - по сути, процессор в процессоре, который может выполнять даже записанные в памяти программы пересылки для каждого из каналов и подключать устройства В/В к независимым друг от друга шинам и страницам памяти (здесь, конечно, и программисту есть над чем поработать - втупую компилер с линкером вряд ли всё это разрулить способны). И всё это - совершенно независимо от вычислительного ядра. В Вашем случае можно превратить EBIU в эффективный параллельный порт ввода-вывода, работающий по запросу. Для этого нужно настроить один из каналов MDMA, включив аппаратный режим HandShake. Каналы MDMA в процессоре работают не напрямую, а "вперекидку" (тот, кто работал с аппаратом БСЛ - Большая Совковая Лопата - в бригаде, поймёт, о чём я), однако, для программиста это не представляет практически никаких дополнительных сложностей. У Вашего АЦП есть сигнал DRDY, а у чёрного фина - ножки DMAR0 и DMAR1. Если сигнал объединить с одной из них, получим аппаратный запрос контроллеру HMDMA на ввод данных (в данном случае, видимо, либо одного 32-битного слова, либо 2-х 16-битных). При этом процесс ввода будет "прозрачным" для вычислительного ядра процессора, которое может в это время заниматься своими делами. В конце каждого акта ввода будет выработано прерывание, сигнализирующее о его окончаниии, после чего контроллер MDMA должен быть перезапущен. Кроме того, организовав ввод подобным образом, Вы сможете сократить до минимума джиттер выборки (скорее всего, его величина будет определяться только тактом рассинхронизации генераторов SCLK фина и АЦП. Естественно, тайминг ввода нужно настроить в соответствием с требуемой времянкой шины данных АЦП. Достигается путём программирования регистров EBIU должным образом. Далее, ввод данных Вашим способом, если я правильно понял, подразумевает разрывы в данных, что, вообще говоря, для системы измерения в реальном времени нежелательно (по моему мнению, во всяком случае). Для реализации обработки сигнала по-настоящему real-time, без его разрывов, стоит позаботиться о правильной организации буферов памяти ввода. В простейшем случае, это может быть циклический буфер, длиной минимум в два блока; в более сложном, но и более эффективном - пинг-понг буферы в разных страницах внутренней памяти данных. Последний способ имеет то преимущество, что вычислительное ядро и контроллер (HM)DMA не будут мешать друг другу в попытках достучаться до памяти (не будет возникать stall-ов в работе ядра при чтении заполненного буфера). Все эти вещи Вам будет очень полезно изучить самостоятельно, благо документация у AD хорошая. Если будут непонятки - обнародуйте, постараюсь помочь. Далее, по схеме (не ногами, но по сути). Мне кажется, что в схеме Вашей платы есть недостатки по сравнению с референсной от AD. Это касается способа подачи тактового сигнала на АЦП. 1. AD применяют генератор MXO45HS с невысокой долговременной стабильностью, но с малым джиттером фазы выходного сигнала - 1пс (хорошей кратковременной стабильностью). В Вашей же схеме применён генератор CFPT-126 с высокой долговременной стабильностью, но с неизвестным джиттером (по крайней мере, в даташите обнаружить его не удалось). 2. AD применяет в качестве формирователя тактовых импульсов АЦП ультрабыстрый логический элемент NC7SZ08, вы же - его гораздо более медленную версию NC7S08. Всё это может привести к существенному увеличению шумов АЦП в Вашей конструкции по сравнению с референсной. Именно вследствие возрастания неопределённости (джиттера) времени выборки. Справедливости ради, надо сказать, что при постоянных уровнях сигнала на входе возрастания шума практически не будет, но в динамике этот фактор ни в коем случае нельзя сбрасывать со счетов. По-любому, джиттер тактового сигнала к наблюдаемой Вами картине отношения иметь не может. Налицо грубые ошибки либо при организации ввода информации в процессор, либо при конкатенации цифровых данных уже внутри проца. Если хотите выяснить причину, повторяю, нужно привести соответствие выводов процессора цепям на приведённой схеме. По только лишь фрагментам конструкции поставить диагноз невозможно.
--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
|
|
|
|
|
Jan 31 2008, 09:50
|

Местный
  
Группа: Свой
Сообщений: 311
Регистрация: 11-06-07
Из: Российская империя, 1861г.
Пользователь №: 28 349

|
Цитата(Stanislav @ Jan 31 2008, 06:22)  Для более точного ответа нужно посмотреть сгенерённый ассемблерный код (знаете, как это делать?).
У Вашего АЦП есть сигнал DRDY, а у чёрного фина - ножки DMAR0 и DMAR1. Во первых, большое спасибо за Ваш подробный анализ и рекомендации. Все они полезны. Ассемблерный код, который генерит компилятор я посмотрела. Ssync-и стоят ровно там, где я их поставила и ничего более. У моего BF537 указанных Вами входов DMAR0 и DMAR1. я не обнаружила. Посмотрите фрагмент проги на ASM, отвечающий за анализ появления сигнала DRDY от АЦП. При скорости SCLK=133MГц после прихода DRDY до появления CS проходит более 100нс. Непонятно откуда такая задержка. lw_start: //ожидание DRDY r1=w[p1](z); CC=!bittst(r1,5); if CC jump lw_start; // w[p1+4]=r2; //сброс залипающего бита DRDY r0.h=w[i0]; // считывание первого слова DATA_ADC (высталение CS) ssync;
--------------------
Итак увидел я, что нет ничего лучше, чем наслаждаться человеку делами своими (Еккл) .
|
|
|
|
|
Jan 31 2008, 11:37
|

Гуру
     
Группа: Свой
Сообщений: 4 363
Регистрация: 13-05-05
Из: Москва
Пользователь №: 4 987

|
Цитата(SALOME @ Jan 31 2008, 12:50)  Ассемблерный код, который генерит компилятор я посмотрела. Ssync-и стоят ровно там, где я их поставила и ничего более. Это понятно. Вопрос в том, нужно ли их вообще там ставить. Ну да Бгъ с ним... Цитата(SALOME @ Jan 31 2008, 12:50)  ...У моего BF537 указанных Вами входов DMAR0 и DMAR1. я не обнаружила. Плохо смотрите. PF0 и PF1. ЗЫ. Поиском текста в pdf-ах пользоваться умеете? Цитата(SALOME @ Jan 31 2008, 12:50)  ...Посмотрите фрагмент проги на ASM, отвечающий за анализ появления сигнала DRDY от АЦП. При скорости SCLK=133MГц после прихода DRDY до появления CS проходит более 100нс. Непонятно откуда такая задержка. Почему же непонятно? 100 нС - это при частоте ядра 400 МГц - 40 тактов. Посмотрите время выполнения команд, в частности условных переходов, и убедитесь, что здесь всё нормально.
--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
|
|
|
|
|
Jan 31 2008, 12:54
|

Местный
  
Группа: Свой
Сообщений: 311
Регистрация: 11-06-07
Из: Российская империя, 1861г.
Пользователь №: 28 349

|
Цитата(Stanislav @ Jan 31 2008, 18:37)  Плохо смотрите. PF0 и PF1.
ЗЫ. Поиском текста в pdf-ах пользоваться умеете? Почему же непонятно? 100 нС - это при частоте ядра 400 МГц - 40 тактов. Посмотрите время выполнения команд, в частности условных переходов, и убедитесь, что здесь всё нормально. Нашла. Оказались альтернативные функции, а я смотрела по пинам  . Буду думать. PF0/1 у меня тоже заняты под UART0: boot-загрузка и передача данных на Комп. С количеством тактов еще хуже  . Там управление периферией, а след-но не 400, а 133 Мгц. Надо переходить на прерывание. Два дня возилась с ассемблерной вставкой, теперь - прерыванием ХЕЗ_сколько  . Зато опыт копится...
--------------------
Итак увидел я, что нет ничего лучше, чем наслаждаться человеку делами своими (Еккл) .
|
|
|
|
|
Feb 3 2008, 16:57
|
Местный
  
Группа: Свой
Сообщений: 210
Регистрация: 15-01-08
Из: Новосибирск
Пользователь №: 34 105

|
Цитата(SALOME @ Jan 31 2008, 18:54)  Надо переходить на прерывание. Прерывания, скорее всего мало что изменят. В лучшем случае уменьшите время начала CS после прихода DRDY. Надо смотреть на временные диаграммы считывания по шине EBIU. При скоростях SKLK>100MHz скорее всего процессор считывает НЕустановившиеся на шине АЦП данные, т.е. мусор. Программная регулировка времени считывания данных ARDY относительно выставления AMSx (CS_ADC) - не более 4-х тактов. т.е 40нс. А по даташиту AD7760 - более 41нсек. Это без учета задержек буферов. Цитата(Stanislav @ Feb 3 2008, 00:27)  Времена выполнения команд, в том числе и с обращением к периферии, принято отсчитывать в тактах ядра. Что-то не совсем понятно. Ведь в приведенном фрагменте идет обращение к порту GPIO lw_start: //ожидание DRDY r1=w[p1](z); --> Считывание с периферийного порта GPIO. и время выполнения надо считать в SCLK (т.е 1 такт 7,5нс) CC=!bittst(r1,5);--> А здесь в CCLK (т.е. 1 такт 2,5нс) if CC jump lw_startРазве не так? И потом, в самом деле, откуда в этом цикле набегает более 100нс?
Сообщение отредактировал Linker - Feb 3 2008, 16:59
--------------------
Я здесь и сейчас...
|
|
|
|
|
Feb 3 2008, 20:17
|

Гуру
     
Группа: Свой
Сообщений: 4 363
Регистрация: 13-05-05
Из: Москва
Пользователь №: 4 987

|
Цитата(Linker @ Feb 3 2008, 19:57)  Прерывания, скорее всего мало что изменят. В лучшем случае уменьшите время начала CS после прихода DRDY. Надо смотреть на временные диаграммы считывания по шине EBIU. При скоростях SKLK>100MHz скорее всего процессор считывает НЕустановившиеся на шине АЦП данные, т.е. мусор. Программная регулировка времени считывания данных ARDY относительно выставления AMSx (CS_ADC) - не более 4-х тактов. т.е 40нс. А по даташиту AD7760 - более 41нсек. Это без учета задержек буферов. Опять двадцать пять... Простите, а Вы точно знаете, как именно ноги EBIU процессора подключены к терминалам приведённой схемы? По-моему, даже уважаемая SALOME имеет об этом весьма смутное представление... Лично я же сильно подозреваю, что трабл именно в этом, а именно: в неправильной подаче сигналов управления на АЦП. О чём уже неоднократно высказался. Цитата(Linker @ Feb 3 2008, 19:57)  Что-то не совсем понятно. Ведь в приведенном фрагменте идет обращение к порту GPIO lw_start: //ожидание DRDY r1=w[p1](z); --> Считывание с периферийного порта GPIO. и время выполнения надо считать в SCLK (т.е 1 такт 7,5нс) CC=!bittst(r1,5);--> А здесь в CCLK (т.е. 1 такт 2,5нс) if CC jump lw_start Разве не так? И потом, в самом деле, откуда в этом цикле набегает более 100нс? EBIU не является GPIO. 100 нс набегает не только в этом цикле. Есть ещё обращение к внешнему устройству через EBIU. Дело в том, что для синхронизации ядра и перифериии требуется определённое время, зависящее от соотношения CCLK и SCLK. При этом не нужно забывать, что данные при операции чтения из периферии и записи в неё становятся в конвейер (за мегагерцы приходится платить). Для его гарантированной выгрузки и используются команды SSYNC. Кроме того, для заполнения программного конвейера после перехода требуется тоже определённое время. Короче, возьмите симулятор и попробуйте посимулять. По первой прикидке, у меня получилась вполне соответствующая цифра. Точно проверять щас лень, но могу это сделать в случае необходимости. ЗЫ. Плохой разработчик систему, функционирующую с /редкими/ сбоями, считает условно работающей. Хороший - безусловно не работающей.
--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
|
|
|
|
|
Feb 4 2008, 07:38
|

Местный
  
Группа: Свой
Сообщений: 311
Регистрация: 11-06-07
Из: Российская империя, 1861г.
Пользователь №: 28 349

|
Цитата(Stanislav @ Feb 4 2008, 03:17)  По-моему, даже уважаемая SALOME имеет об этом весьма смутное представление... Лично я же сильно подозреваю, что трабл именно в этом, а именно: в неправильной подаче сигналов управления на АЦП. О чём уже неоднократно высказался. Я Вас понимаю. Жещина-разработчик уже по определению - курица  . Распределение выводов таково: за выбор АЦП отвечает AMS1 (EBIU). За опрос DRDY отвечает PortH.5(GPIO). Направление передачи RD/WR - PortH.7. При этом направление передачи в ходе считывания выборке не меняется. А меняется только при настройке АЦП. Поэтому уточняю мой фрагмент : lw_start: //ожидание DRDY r1=w[p1](z); //Считывание состояния PortH, р1 - адрес PortH CC=!bittst(r1,5); //Проверка состояния залипающего бита PortH.5 if CC jump lw_start //Если DRDY не пришел, то продолжить опросВот здесь задержка между DRDY и спадом AMS1~150нс [i]//Считывание данных с АЦП r0.h=w[i0]; // считать старшие 2 байта DATA_ADC. i0 - адрес АЦП (EBIU) ssync; //считать младший байт DATA_ADC + байт STATUS r0.l=w[i0]; // считать младший байт DATA_ADC + байт STATUS w[i2++]=r0.h; // сохранить старшие 2 байта в SRAM w[i2++]=r0.l; // сохранить младший в SRAM BLA... BLA...[/i] Цитата(Linker @ Feb 3 2008, 23:57)  Прерывания, скорее всего мало что изменят. С настройкой прерываний разобралась и теперь встал вопрос как организовать цикл опроса АЦП по прерываниям. Приходит в голову IDDLE. Однако есть подозрение, что выход из спячки не скор. А по другому как?
--------------------
Итак увидел я, что нет ничего лучше, чем наслаждаться человеку делами своими (Еккл) .
|
|
|
|
|
Feb 4 2008, 19:13
|

Гуру
     
Группа: Свой
Сообщений: 4 363
Регистрация: 13-05-05
Из: Москва
Пользователь №: 4 987

|
Цитата(SALOME @ Feb 4 2008, 10:38)  Я Вас понимаю. Жещина-разработчик уже по определению - курица  . Дело вовсе не в этом. А в том, что для получения сколь-нибудь полезного совета нужно научится правильно задавать вопрос, не упуская при этом существенных деталей. К сожалению, этим часто пренебрегают представители обоих полов в равной степени. Цитата(SALOME @ Feb 4 2008, 10:38)  ...Распределение выводов таково: за выбор АЦП отвечает AMS1 (EBIU). За опрос DRDY отвечает PortH.5(GPIO). Направление передачи RD/WR - PortH.7. При этом направление передачи в ходе считывания выборке не меняется. Ну, наконец-то.  Подключение логичное, и, с моей точки зрения, правильное (если не рассматривать всё-таки возможность ввода по HMDMA). Продолжим "пытку". 1. Как инициализирован PORT H? Интересуют все значения регистров, которые Вы изменяете. 2. Почему не подано питание V_EXT на ногу VccY транслятора уровней U30 в Вашей схеме? 3. Каков период сигнала DRDY? Цитата(SALOME @ Feb 4 2008, 10:38)  ...А меняется только при настройке АЦП. Поэтому уточняю мой фрагмент : lw_start: //ожидание DRDY r1=w[p1](z); //Считывание состояния PortH, р1 - адрес PortH CC=!bittst(r1,5); //Проверка состояния залипающего бита PortH.5 if CC jump lw_start //Если DRDY не пришел, то продолжить опрос
Вот здесь задержка между DRDY и спадом AMS1~150нс 150нс - это минимальная или максимальная задержка? И что тогда есть 100нс? ЗЫ. Задержка возникает не только, и не столько здесь. Цитата(SALOME @ Feb 4 2008, 10:38)  ...[i]//Считывание данных с АЦП r0.h=w[i0]; // считать старшие 2 байта DATA_ADC. i0 - адрес АЦП (EBIU) ssync; //считать младший байт DATA_ADC + байт STATUS r0.l=w[i0]; // считать младший байт DATA_ADC + байт STATUS Сдаётся, уважаемая Salome, что у Вас слишком мал интервал между последовательными чтениями. Попробуйте вместо одной команды SSYNC вставить подряд две или даже три. Цитата(SALOME @ Feb 4 2008, 10:38)  ...С настройкой прерываний разобралась и теперь встал вопрос как организовать цикл опроса АЦП по прерываниям. Приходит в голову IDDLE. Однако есть подозрение, что выход из спячки не скор. А по другому как? В данном случае, команда IDLE нужна не для изменения режима, а именно для ожидания прерывания. "Мёртвое" время будет всяко меньше, чем в Вашей программе. Однако, длительность задержки даже в 100нс не может вызвать сбой в работе АЦП.
--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
|
|
|
|
|
Feb 5 2008, 04:01
|

Местный
  
Группа: Свой
Сообщений: 311
Регистрация: 11-06-07
Из: Российская империя, 1861г.
Пользователь №: 28 349

|
Цитата(Stanislav @ Feb 5 2008, 02:13)  1. Как инициализирован PORT H? Интересуют все значения регистров, которые Вы изменяете. 2. Почему не подано питание V_EXT на ногу VccY транслятора уровней U30 в Вашей схеме? 3. Каков период сигнала DRDY?
150нс - это минимальная или максимальная задержка? И что тогда есть 100нс? ЗЫ. Задержка возникает не только, и не столько здесь. / ******** Настройка порта H: ************************************** PH5-in ADC_DRDY PH6-in ADC_MX2(SYNHRO) PH7-out ADC_RESET PH9-out ADC_R/W PH10-out ADC_SYNC */ *pPORTH_FER=0x0000; *pPORTHIO_DIR =0x179C; *pPORTHIO_INEN =0xE060; // Разрешение буфера приема порта H *pPORTHIO_POLAR =0x8060; // 1- активен низкий (спадающий) уровень ~~~~~~~~~|_____ *pPORTHIO_EDGE =0x8060;; // 0 - уровень (не залипает),т.е. повторяет pin *pPORTHIO =0x1FFF; Напряжение Vext реально подано. А в схеме упущено. Спасибо. Период DRDY пробовала разный: от 156КГц до 1,25МГц. Установить сколько точно задержка сложно, т.к. фронт сильно CS дрожит. Полагаю из-за асинхронности поступления DRDY и момента его определения GPIO PH5. Но по любому оно не должно влиять на устойчивость работы. Просто не понятно почему такая большая задержка. У меня еще одно подозрение. Может в процесс опроса АЦП вмешивается еще кто-то, заложенный компилятором? Пробовала запретить прерывания в теле ассемблерной вставки - программа виснет.
--------------------
Итак увидел я, что нет ничего лучше, чем наслаждаться человеку делами своими (Еккл) .
|
|
|
|
|
Feb 5 2008, 21:07
|

Гуру
     
Группа: Свой
Сообщений: 4 363
Регистрация: 13-05-05
Из: Москва
Пользователь №: 4 987

|
Цитата(SALOME @ Feb 5 2008, 07:01)  / ******** Настройка порта H: ************************************** .................. Вроде, всё правильно. Цитата(SALOME @ Feb 5 2008, 07:01)  ...Период DRDY пробовала разный: от 156КГц до 1,25МГц. Тогда "наползаний" быть точно не должно. Продолжим: что записано в регистры управления АЦП? Цитата(SALOME @ Feb 5 2008, 07:01)  ...Установить сколько точно задержка сложно, т.к. фронт сильно CS дрожит. Полагаю из-за асинхронности поступления DRDY и момента его определения GPIO PH5. Но по любому оно не должно влиять на устойчивость работы. Просто не понятно почему такая большая задержка. С этим разберётесь пожже. Ещё раз: у Вас слишком мало время между чтениями первого и второго слова из АЦП ( t6). По даташиту, оно должно быть не менее 1 периода внутреннего тактового сигнала АЦП, а у Вас оно - меньше, это видно даже без осциллографа. Увеличьте его, и всё станет ОК. Цитата(SALOME @ Feb 5 2008, 07:01)  ...У меня еще одно подозрение. Может в процесс опроса АЦП вмешивается еще кто-то, заложенный компилятором? Пробовала запретить прерывания в теле ассемблерной вставки - программа виснет. А разрешить при выходе не забыли? Если в программе используются прерывания, такое поведение вполне закономерно.
--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
|
|
|
|
|
Feb 5 2008, 21:24
|
Гуру
     
Группа: СуперМодераторы
Сообщений: 3 096
Регистрация: 16-01-06
Из: Москва
Пользователь №: 13 250

|
Цитата(Stanislav @ Feb 6 2008, 00:07)  Продолжим: что записано в регистры управления АЦП? С этим разберётесь пожже. Ещё раз: у Вас слишком мало время между чтениями первого и второго слова из АЦП. По даташиту, оно должно быть не менее 1 периода внутреннего тактового сигнала АЦП, а у Вас оно - меньше, это видно даже без осциллографа. Увеличьте его, и всё станет ОК. В регистрах управления трудно накосячить, чтобы к такому результату привело. По поводу времени между чтениями - совершенно верно, обязательно надо выдерживать 50 нс. НО - судя по предыдущим данным, сбоит и старшее слово. Состояние выходного автомата АЦП сбрасывается по DRDY, поэтому это не должно влиять на старший байт. Надо искать в тракте данных. Через сколько стробируется от начала CS при описанном SALOME включении ?
--------------------
Не бойтесь тюрьмы, не бойтесь сумы, не бойтесь мора и глада, а бойтесь единственно только того, кто скажет - "Я знаю как надо". А. Галич.
|
|
|
|
|
Feb 5 2008, 22:25
|

Гуру
     
Группа: Свой
Сообщений: 4 363
Регистрация: 13-05-05
Из: Москва
Пользователь №: 4 987

|
Цитата(DS @ Feb 6 2008, 00:24)  В регистрах управления трудно накосячить, чтобы к такому результату привело. При желании, можно. Например, делитель на 2 для 40 МГц MCLK не включить. Цитата(DS @ Feb 6 2008, 00:24)  ...Через сколько стробируется от начала CS при описанном SALOME включении ? В зависимости от момента прихода падающего фронта DRDY внутри цикла ожидания, задержка CS относительно DRDY может сильно меняться. Но меньше минимально допустимых 10нс (t2) быть не может. Длительность CS - 82,5нc. Промежуток между последовательными CS тоже может слегка гулять, и составляет минимально около 30 нс (точно считать лень), что, по моему мнению, и приводит к сбоям. Защёлкивание данных в процессоре происходит через 75нс после начала сигнала CS. Если времена другие, это означает косяк в настройках самогО процессора.
Сообщение отредактировал Stanislav - Feb 5 2008, 22:35
--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
|
|
|
|
Сообщений в этой теме
SALOME AD7760-АЦП 24 разряда, 2,5 МГц, кто пользовал? Jun 11 2007, 08:15 anton Для такой частоты это мульти битный дельта сигма.
... Jun 11 2007, 11:01 el34 а он как и AD9260 может поставляется тока по лицен... Jun 11 2007, 11:39 anton В принципе если правильно помню таблицу то огранич... Jun 12 2007, 05:21 SALOME Цитата(anton @ Jun 12 2007, 12:21) В прин... Jun 13 2007, 02:55  igor5312 Добрый день.
Как у вас обстоят дела с AD7760?
Мы ... Jan 17 2008, 15:27   SALOME Цитата(igor5312 @ Jan 17 2008, 22:27) Как... Jan 18 2008, 04:03    igor5312 Самое интересное в этой микросхеме не 24 бита, а т... Jan 18 2008, 07:55    SIA Цитата(SALOME @ Jan 18 2008, 07:03) Назна... Jan 18 2008, 12:50     Linker Цитата(SIA @ Jan 18 2008, 18:50) госзаказ... Jan 18 2008, 15:40      SIA Цитата(Linker @ Jan 18 2008, 18:40) Не со... Jan 18 2008, 16:08 DS А не кривизна ли рук всему причиной ? Микросхема р... Jan 19 2008, 10:09 SIA Цитата(DS @ Jan 19 2008, 13:09) А не крив... Jan 19 2008, 10:27  SALOME Цитата(SIA @ Jan 19 2008, 17:27) опыт раб... Jan 19 2008, 13:10   SIA Цитата(SALOME @ Jan 19 2008, 16:10) Приве... Jan 19 2008, 13:18 SALOME Цитата(DS @ Jan 19 2008, 17:09) А не крив... Jan 19 2008, 12:57  SIA Цитата(SALOME @ Jan 19 2008, 15:57) Криви... Jan 19 2008, 13:08  Stanislav Цитата(SALOME @ Jan 19 2008, 15:57) ...Не... Jan 19 2008, 13:55   Linker Цитата(Stanislav @ Jan 19 2008, 19:55) Со... Jan 19 2008, 15:06    Stanislav Цитата(Linker @ Jan 19 2008, 18:06) А я в... Jan 19 2008, 15:36     DS Не все йогурты (в смысле киты) одинаково полезны. ... Jan 19 2008, 16:18      Stanislav Цитата(DS @ Jan 19 2008, 19:18) Не все йо... Jan 19 2008, 16:57      Linker Цитата(DS @ Jan 19 2008, 22:18) Учитывая,... Jan 19 2008, 17:00       DS Цитата(Linker @ Jan 19 2008, 20:00) Но я ... Jan 19 2008, 17:28        Linker Цитата(DS @ Jan 19 2008, 23:28) Естествен... Jan 20 2008, 05:02         DS Цитата(Linker @ Jan 20 2008, 08:02) я име... Jan 20 2008, 10:34          Linker Цитата(DS @ Jan 20 2008, 16:34) DVALID не... Jan 20 2008, 10:59           DS Цитата(Linker @ Jan 20 2008, 13:59) Т.е. ... Jan 20 2008, 11:08            Linker Цитата(DS @ Jan 20 2008, 17:08) Еще при п... Jan 20 2008, 15:35     SALOME Цитата(Stanislav @ Jan 19 2008, 22:36) Ск... Jan 21 2008, 06:10      Stanislav Цитата(SALOME @ Jan 21 2008, 09:10) PPI м... Jan 21 2008, 12:35      Linker Цитата(SALOME @ Jan 21 2008, 12:10) Никак... Jan 21 2008, 15:38       Stanislav Цитата(Linker @ Jan 21 2008, 18:38) ...На... Jan 21 2008, 19:53   SALOME Цитата(Stanislav @ Jan 19 2008, 20:55) Со... Jan 21 2008, 04:36    DS Цитата(SALOME @ Jan 21 2008, 07:36) Извин... Jan 21 2008, 10:41     SALOME Цитата(DS @ Jan 21 2008, 17:41) А в Pdf М... Jan 21 2008, 11:03      DS Цитата(SALOME @ Jan 21 2008, 14:03) Не вл... Jan 21 2008, 11:25       SALOME Цитата(DS @ Jan 21 2008, 18:25) Да если у... Jan 21 2008, 12:10 DS А разве я Вам это писал ? Вроде не Вы жаловались, ... Jan 19 2008, 10:54 SIA Цитата(DS @ Jan 19 2008, 13:54) А разве я... Jan 19 2008, 10:59 DS Я бы сказал, что имеет место неверное стробировани... Jan 19 2008, 14:09 Linker Цитата(DS @ Jan 19 2008, 20:09) Или что-т... Jan 19 2008, 15:29 DS Да нет этого в АЦП на самом деле. Нормально там мл... Jan 19 2008, 15:10 forever failure ]Саломея, вот Вам и бубны, обещанные полгода назад... Jan 21 2008, 06:57 forever failure Попробуйте посмотреть как ведут себя разряды АЦП п... Jan 21 2008, 11:33 DS Диаграмму сигнала CS на АЦП и момента строба данны... Jan 21 2008, 12:18 SALOME Цитата(DS @ Jan 21 2008, 19:18) Диаграмму... Jan 22 2008, 03:52  Stanislav Цитата(SALOME @ Jan 22 2008, 06:52) Фрагм... Jan 22 2008, 22:57   SALOME Цитата(Stanislav @ Jan 23 2008, 05:57) Ми... Jan 23 2008, 04:51    Stanislav Цитата(SALOME @ Jan 23 2008, 07:51) А под... Jan 24 2008, 18:17 DS Все-таки снимите осциллограммы. То, что Вы пишете,... Jan 22 2008, 11:15 SALOME Посмотрела на осцилограммы CS. Вроде все нормально... Jan 23 2008, 12:36        Stanislav Цитата(SALOME @ Jan 31 2008, 15:54) Нашла... Feb 2 2008, 18:27                DS Цитата(Stanislav @ Feb 6 2008, 01:25) При... Feb 5 2008, 22:33              SALOME Цитата(Stanislav @ Feb 6 2008, 04:07) А р... Feb 6 2008, 11:37               Stanislav Цитата(SALOME @ Feb 6 2008, 14:37) Я в св... Feb 6 2008, 22:34                SALOME Цитата(Stanislav @ Feb 7 2008, 05:34) Воо... Feb 8 2008, 11:43                 Stanislav Цитата(SALOME @ Feb 8 2008, 14:43) А тепе... Feb 8 2008, 12:14                  Linker Цитата(Stanislav @ Feb 8 2008, 18:14) ЗЫ.... Feb 8 2008, 18:09 DS Отредактировал Ваш пост слегка. Надеюсь, понятно, ... Jan 24 2008, 10:49 SALOME Цитата(DS @ Jan 24 2008, 17:49) Отредакти... Jan 24 2008, 12:48 DS Что и как надо спрашивать в форуме "Доступ к... Jan 24 2008, 13:01 Stanislav Дописал уже...
2 SALOME
Попробуйте вставить ещё ... Feb 5 2008, 22:49 DS А в этой цепи случаем не стоит ADшный транслятор у... Feb 8 2008, 20:25 SALOME Цитата(DS @ Feb 9 2008, 03:25) А в этой ц... Feb 9 2008, 06:21  Stanislav Цитата(SALOME @ Feb 9 2008, 09:21) Нет не... Feb 13 2008, 21:38   SALOME Цитата(Stanislav @ Feb 14 2008, 04:38) Дл... Feb 14 2008, 07:13    Stanislav Цитата(SALOME @ Feb 14 2008, 10:13) Однок... Feb 14 2008, 23:22     SALOME Цитата(Stanislav @ Feb 15 2008, 06:22) Мо... Feb 15 2008, 03:50 Linker Цитата(DS @ Feb 9 2008, 02:25) А в этой ц... Feb 9 2008, 14:30 SALOME Попробовала таки воспльзоваться прерыванием от DRD... Feb 13 2008, 07:10 Копейкин Вопрос к тем, кто реально использовал AD7760:
Можн... Feb 9 2012, 16:34 _pv Цитата(Копейкин @ Feb 9 2012, 22:34) Вопр... Feb 9 2012, 17:23 Копейкин Спасибо, я так и думал.
Понятно, что на входе ОУ н... Feb 10 2012, 07:47 _pv Цитата(Копейкин @ Feb 10 2012, 13:47) Пон... Feb 10 2012, 08:38 Копейкин Спасибо, всё понял, Ваша схема всё прояснила! Feb 10 2012, 09:08
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|