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

Местный
  
Группа: Свой
Сообщений: 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)  Кроме того, такие процедуры лучше писать на асме. Полность с Вами согласная. У меня на ассемблере и лучше получается. Однако сделать ассемблерную вставку прооцедуры пока не умею. Была бы благодарно за простой рабочий пример.
--------------------
Итак увидел я, что нет ничего лучше, чем наслаждаться человеку делами своими (Еккл) .
|
|
|
|
|
Jan 22 2008, 22:57
|

Гуру
     
Группа: Свой
Сообщений: 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циклов) Тайный смысл чёрточек и крестиков постигнуть, однакож, не удалось... Хорошо, теперь дайте соответствие выводов 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.
--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
|
|
|
|
|
Jan 23 2008, 04:51
|

Местный
  
Группа: Свой
Сообщений: 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штуки) уже разведены и распаяны. Шеф бьет копытом в предвкушении результата. Спасибо за фрагмент, буду его осмысливать. И вообще спасибо за участие. Сейчас займусь ревизией проги считывания АЦП.
--------------------
Итак увидел я, что нет ничего лучше, чем наслаждаться человеку делами своими (Еккл) .
|
|
|
|
Сообщений в этой теме
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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|