реклама на сайте
подробности

 
 
> AD7760-АЦП 24 разряда, 2,5 МГц, кто пользовал?
SALOME
сообщение Jun 11 2007, 08:15
Сообщение #1


Местный
***

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



Сделали выбор АЦП с неожиданно скоростным для 24 разрядных дельта-Сигма. Просьба поделиться впечатлениями от применения. Чую, что есть подводные камни... Подозрительно хорошие характеристики smile.gif


--------------------
Итак увидел я, что нет ничего лучше, чем наслаждаться человеку делами своими (Еккл) .
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
DS
сообщение Jan 21 2008, 12:18
Сообщение #2


Гуру
******

Группа: СуперМодераторы
Сообщений: 3 096
Регистрация: 16-01-06
Из: Москва
Пользователь №: 13 250



Диаграмму сигнала CS на АЦП и момента строба данных нарисуйте, а то так не понятно. Процессор может данные защелкнуть через, скажем 5нс после выдачи CS, в общем случае. 7760 Из-за большой задержки данных с быстрым процессором как раз и может работать неправильно. И время между выполнениями считываний с АЦП у Вас чем контролируется ? Оно не может быть меньше 50 нс.


--------------------
Не бойтесь тюрьмы, не бойтесь сумы, не бойтесь мора и глада, а бойтесь единственно только того, кто скажет - "Я знаю как надо". А. Галич.
Go to the top of the page
 
+Quote Post
SALOME
сообщение Jan 22 2008, 03:52
Сообщение #3


Местный
***

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



Цитата(DS @ Jan 21 2008, 19:18) *
Диаграмму сигнала CS на АЦП и момента строба данных нарисуйте, а то так не понятно. Процессор может данные защелкнуть через, скажем 5нс после выдачи CS, в общем случае. 7760 Из-за большой задержки данных с быстрым процессором как раз и может работать неправильно. И время между выполнениями считываний с АЦП у Вас чем контролируется ? Оно не может быть меньше 50 нс.

Частота ядра 400МГц, перефирии 133МГц. Время между CS > 50нс
Интерфейс считывания данных от АЦП у меня организован через EBIU. В качестве CS используется пин AMS0 (выбор асинхронной памяти). Соответственно все задержки согласно даташита BF. Фрагмент настройки EBIU (извеняюсь - вертик черточки не совпали с цифрами)
*pEBIU_AMBCTL0 = 0xF644F644; //управление АЦП-банк_0 (один цикл - 7,5нс)
// 1111 0110 0100 0100 - регистр управления АМС банков_0 и 1
// |||| |||! |||| |||| |||| |||! |||| |||+-B0RDYEN=1-разрешение сигнала ARDY банка_0 (in)
// |||| |||! |||| |||| |||| |||! |||| ||+--B0RDYPOL=1-полярность сигнала ARDY банка_0
// |||| |||! |||| |||| |||| |||! |||| ++---B0TT=01-время переключения банка_0(1цикл)
// |||| |||! |||| |||| |||| |||! ||++------B0ST=00-время установки банка_0 (до ARE)(4цикл)
// |||| |||! |||| |||| |||| |||! ++--------B0HT=01-время удержания банка_0 (после ARE) (1цикл)
// |||| |||! |||| |||| |||| ++++-----------B0RAT=0100-время доступа при чтении банка_0 (ARE) (6циклов)
// |||| |||! |||| |||| ++++----------------B0WAT=1010-время доступа при записи банка_0 (10циклов)

Момент считывания находится во время действия ARE и находится явно дальше 5нс.
Другое дело, что на осцилограмме пина CS видно, что первый импульс считывания боле_мене привязан к DRDY от АЦП, хотя его дрожание определяется асинхронностью захвата DRDY. А вот интересный нам второй импульс считывания гуляет шибче. Я отношу это за счет команды SSYNC, время действия которой так и не удалось установить. Эмпирически она длится где-то 30 нс и меняет свю длительность. Может вы скажите, какова длительность SSYNC?
Но в целом процесс считывания не выходит за рамки следующего DRDY. Хотя всяко может быть. Ведь сбои носят нерегулярный характер.

Цитата(Stanislav @ Jan 22 2008, 02:53) *
Кроме того, такие процедуры лучше писать на асме.

Полность с Вами согласная. У меня на ассемблере и лучше получается. Однако сделать ассемблерную вставку прооцедуры пока не умею. Была бы благодарно за простой рабочий пример.


--------------------
Итак увидел я, что нет ничего лучше, чем наслаждаться человеку делами своими (Еккл) .
Go to the top of the page
 
+Quote Post
Stanislav
сообщение Jan 22 2008, 22:57
Сообщение #4


Гуру
******

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



Цитата(SALOME @ Jan 22 2008, 06:52) *
Фрагмент настройки EBIU (извеняюсь - вертик черточки не совпали с цифрами)
Надо делать так:
Код
*pEBIU_AMBCTL0 = 0xF644F644; //управление АЦП-банк_0 (один цикл - 7,5нс)
// 1111 0110 0100 0100 - регистр управления АМС банков_0 и 1
// |||| |||! |||| |||| |||| |||! |||| |||+-B0RDYEN=1-разрешение сигнала ARDY банка_0 (in)
// |||| |||! |||| |||| |||| |||! |||| ||+--B0RDYPOL=1-полярность сигнала ARDY банка_0
// |||| |||! |||| |||| |||| |||! |||| ++---B0TT=01-время переключения банка_0(1цикл)
// |||| |||! |||| |||| |||| |||! ||++------B0ST=00-время установки банка_0 (до ARE)(4цикл)
// |||| |||! |||| |||| |||| |||! ++--------B0HT=01-время удержания банка_0 (после ARE) (1цикл)
// |||| |||! |||| |||| |||| ++++-----------B0RAT=0100-время доступа при чтении банка_0 (ARE) (6циклов)
// |||| |||! |||| |||| ++++----------------B0WAT=1010-время доступа при записи банка_0 (10циклов)
smile.gif
Тайный смысл чёрточек и крестиков постигнуть, однакож, не удалось... sad.gif
Хорошо, теперь дайте соответствие выводов BF и платы, схему которой Вы привели. Интересуют только сигналы управления АЦП.


Цитата(SALOME @ Jan 22 2008, 06:52) *
...Момент считывания находится во время действия ARE и находится явно дальше 5нс.
Другое дело, что на осцилограмме пина CS видно, что первый импульс считывания боле_мене привязан к DRDY от АЦП, хотя его дрожание определяется асинхронностью захвата DRDY. А вот интересный нам второй импульс считывания гуляет шибче. Я отношу это за счет команды SSYNC, время действия которой так и не удалось установить. Эмпирически она длится где-то 30 нс и меняет свю длительность. Может вы скажите, какова длительность SSYNC?
Минимум 10 тактов, если склероз не изменяет. Только нафиг она Вам нужна во всех местах, также уразуметь неполучаецца.
Вообще-то, гулять сильно не должно...
Теперь по существу программного фрагмента из Вашего поста №42.
Делать чтение АЦП таким ужасным способом нельзя - проц только этим и будет заниматься.
Для подобных целей существуют автоматический ввод через PPI с DMA, или, на худой конец, прерывания. Организуйте его по запросу от сигнала DRDY, при вызове считывайте данные с АЦП и курите бамбук всё остальное время.
Только учтите, что макросы EX_INTERRUPT_HANDLER будут сильно тормозить - там в стэке весь контекст сохраняется, а потом восстанавливается. Так что писать прерывание нужно на асме.
А прерывания запрещены во время считывания? Если нет, временно запретите.

Цитата(SALOME @ Jan 22 2008, 06:52) *
...Полность с Вами согласная. У меня на ассемблере и лучше получается. Однако сделать ассемблерную вставку прооцедуры пока не умею. Была бы благодарно за простой рабочий пример.
Лехко:
Код
/********************************************************************************
***********
Description : This function performs FIR filter operation on given input.
Input:   R0-current address of input circular buffer, R1-address of coeff. vector,
         R2-number of taps*2.
Output:  R0-next address of input circular buffer.
Prototype: fract16* FIR_fract(fract16*, fract16*, u32).
*/
#include "Tru_def.h"
#include <defBF534.h>

.extern _Host_MC_Out; //output array

.section program;
.global _FIR_fract;
.align  8;

//-----------------------------------------------------------------------------------
_FIR_fract:
  L0=INPUT_LEN*2(Z);      // L0 = length of input buffer in bytes
  L1=R2;                  // L1 = length of coeff buffer in bytes
  I0=R0;                  // set up input pointer
................................
БЛА-БЛА-БЛА
................................
  L0=0;                    // Clear modulo registers
  L1=0;
  RTS;    
_FIR_fract.end:
Вызывается как обычная сишная функция с тремя входными параметрами и одним выходным, передавая их наиболее простым и быстрым способом - через регистры, не используя стек.
Обработчики прерываний писать на асме ещё проще.
Вообще, читайте хэлп к вижуалдиэспи, там всё очень подробно прописано. Начните с глав:

C/C++ Compiler Language Extensions,
C/C++ Run-Time Model and Environment,
C/C++ and Assembly Interface.

smile.gif


--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
Go to the top of the page
 
+Quote Post
SALOME
сообщение Jan 23 2008, 04:51
Сообщение #5


Местный
***

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



Цитата(Stanislav @ Jan 23 2008, 05:57) *
Минимум 10 тактов, если склероз не изменяет. Только нафиг она Вам нужна во всех местах, также уразуметь неполучаецца.

Вообще-то, гулять сильно не должно...

Делать чтение АЦП таким ужасным способом нельзя - проц только этим и будет заниматься.
Для подобных целей существуют автоматический ввод через PPI с DMA, или, на худой конец, прерывания. Организуйте его по запросу от сигнала DRDY, при вызове считывайте данные с АЦП

Я понимаю буквально, что SSYNC надо ставить там, где идет обращениии к перфирии. В исходниках от ADI так и сделано. А как надо?
Кстати без SSYNC ситуация ухудшается.
Однако гуляет... Кстати, посмотрела CS на плате КИТа AD7760, который сформирован Алтерой. Там все чистенько. Джиттер вообще не просматривается.
А под УЖАСОМ вы имеете ввиду программный опрос состояния DRDY от АЦП? Отчего же? И чем тут прерывание будет лучше?
Воспользоваться PPI для загрузки - не в этот раз. Платы (3штуки) уже разведены и распаяны. Шеф бьет копытом в предвкушении результата.
Спасибо за фрагмент, буду его осмысливать. И вообще спасибо за участие. Сейчас займусь ревизией проги считывания АЦП.


--------------------
Итак увидел я, что нет ничего лучше, чем наслаждаться человеку делами своими (Еккл) .
Go to the top of the page
 
+Quote Post
Stanislav
сообщение Jan 24 2008, 18:17
Сообщение #6


Гуру
******

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



Цитата(SALOME @ Jan 23 2008, 07:51) *
А под УЖАСОМ вы имеете ввиду программный опрос состояния DRDY от АЦП? Отчего же? И чем тут прерывание будет лучше?
Ну, это же элементарно... Для правильного "опороса" АЦП Вам потребуется сидеть в этом цикле вечно, а период его исполнения не может быть бОльшим периода выборки АЦП. Вот это и есть "УЖОС". smile.gif
Кстати, а что ещё BlackFin делать будет, кроме тупого ввода данных с АЦП? Не идёт ли здесь речь о девальвации самогО понятия "процессор"? wacko.gif
Прерывание же по DRDY Вас избавляет от каких-либо проверок бита готовности, и забрасывает в обработчик события автоматически. Остаётся только прочитать.
Применение RTOS для такого быстрого ввода через EBIU вряд ли вообще возможно. Нормальное решение - подключить АЦП к PPI, а уж с дисплеем разбираться "как-нибудь так". smile.gif
Кстати, что за зверь в его качестве используется?


--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- 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   Все-таки снимите осциллограммы. То, что Вы пишете,...   Jan 22 2008, 11:15
- - SALOME   Посмотрела на осцилограммы CS. Вроде все нормально...   Jan 23 2008, 12:36
- - DS   Origin   Jan 23 2008, 12:38
|- - SALOME   Цитата(DS @ Jan 23 2008, 19:38) Origin Сп...   Jan 24 2008, 05:39
|- - Stanislav   Цитата(SALOME @ Jan 24 2008, 08:39) Спаси...   Jan 24 2008, 17:05
|- - SALOME   Цитата(Stanislav @ Jan 25 2008, 00:05) Ad...   Jan 25 2008, 05:04
|- - Stanislav   Цитата(SALOME @ Jan 25 2008, 08:04) А где...   Jan 30 2008, 23:22
|- - SALOME   Цитата(Stanislav @ Jan 31 2008, 06:22) Дл...   Jan 31 2008, 09:50
|- - Stanislav   Цитата(SALOME @ Jan 31 2008, 12:50) Ассем...   Jan 31 2008, 11:37
|- - SALOME   Цитата(Stanislav @ Jan 31 2008, 18:37) Пл...   Jan 31 2008, 12:54
|- - Stanislav   Цитата(SALOME @ Jan 31 2008, 15:54) Нашла...   Feb 2 2008, 18:27
|- - Linker   Цитата(SALOME @ Jan 31 2008, 18:54) Надо ...   Feb 3 2008, 16:57
|- - Stanislav   Цитата(Linker @ Feb 3 2008, 19:57) Прерыв...   Feb 3 2008, 20:17
|- - SALOME   Цитата(Stanislav @ Feb 4 2008, 03:17) По-...   Feb 4 2008, 07:38
|- - Stanislav   Цитата(SALOME @ Feb 4 2008, 10:38) Я Вас ...   Feb 4 2008, 19:13
|- - SALOME   Цитата(Stanislav @ Feb 5 2008, 02:13) 1. ...   Feb 5 2008, 04:01
|- - Stanislav   Цитата(SALOME @ Feb 5 2008, 07:01) / ****...   Feb 5 2008, 21:07
|- - DS   Цитата(Stanislav @ Feb 6 2008, 00:07) Про...   Feb 5 2008, 21:24
||- - Stanislav   Цитата(DS @ Feb 6 2008, 00:24) В регистра...   Feb 5 2008, 22:25
||- - 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


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 3rd August 2025 - 19:21
Рейтинг@Mail.ru


Страница сгенерированна за 0.01553 секунд с 7
ELECTRONIX ©2004-2016