Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: МК для работы с ПЗС-матрицей
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
Stepanich
Здравствуйте.

Прошу консультации в выборе МК для работы с FFT (Full Frame transfer) CCD фирмы HAMAMATSU с частотой дискретизации 1 МГц.

Функции, которые должен выполнять МК при работе с CCD, в общем-то, обычные:
- управление сигнальными линиями (PnV, PnH, SG, RG,…);
- управление и опрос внешнего параллельного АЦП (>=12 bit), или работа с использованием встроенного АЦП;
- передача по высокоскоростному интерфейсу (предположительно, SPI) данных в ведущее устройство (VERTEX-IV).
- анализ температуры CCD и управление охлаждением CCD;
- …

На данный момент выбор пал на AT91SAM7XC512. «Избыточность» МК в данном случае только приветствуется (производится НИИР).

Однако МК фирмы ATMEL уступают по аналоговой периферии микроконтроллерам фирмы AD: МК MicroConverter имеют 12-разрядный АЦП.

И ещё: стоит ли брать в рассмотрение AVR32?

Заранее благодарю за участие.
DASM
Ну раз уступают - ставьте AD - в чем вопрос то ?
А XC чипы уже разрешили в Россию завозить ?
Alex11
Я бы сделал фазный генератор и прием данных непосредственно в логике и не гонял бы поток сначала в контроллер, а потом в логику. После этого функции контроллера будут очень простыми и медленными, подойдет любой, и проблем с программированием не будет. А если по SPI передавать данные, то частота там нужна не меньше 20 МГц, еще придется сильно поискать кристалл, у которого это есть.
AlexandrY
Если вы думаете сделать управление SG, RG и т.д. на частоте 1 МГц из ARM-а, то это будет трудновато.
На Atmel-е с большой вероятностью не получится.
Может быть справиться STR91x. У него и скорость в 2-а раза больше и хитрый DMA есть который может формировать на внешней параллельной шине произвольные сигналы для записи и считывания на частотах больше 1 MГц. Спецы из ST подключили напрямую к STR91x интерфейс ITU-R BT.656-4, так что ССD тоже вполне реально подключить.
Ну а SPI у STR91x надежно работает до частоты 30 МГц. Используя цепочку DMA-DMA обмен CCD-SPI через STR91x практически не займет ресурсов.


Цитата(Stepanich @ Jun 11 2007, 01:11) *
Здравствуйте.

Прошу консультации в выборе МК для работы с FFT (Full Frame transfer) CCD фирмы HAMAMATSU с частотой дискретизации 1 МГц.

Функции, которые должен выполнять МК при работе с CCD, в общем-то, обычные:
- управление сигнальными линиями (PnV, PnH, SG, RG,…);
- управление и опрос внешнего параллельного АЦП (>=12 bit), или работа с использованием встроенного АЦП;
- передача по высокоскоростному интерфейсу (предположительно, SPI) данных в ведущее устройство (VERTEX-IV).
- анализ температуры CCD и управление охлаждением CCD;
- …

На данный момент выбор пал на AT91SAM7XC512. «Избыточность» МК в данном случае только приветствуется (производится НИИР).

Однако МК фирмы ATMEL уступают по аналоговой периферии микроконтроллерам фирмы AD: МК MicroConverter имеют 12-разрядный АЦП.

И ещё: стоит ли брать в рассмотрение AVR32?

Заранее благодарю за участие.
proba
вроде SH7211 от Renesas отвечает Вашим требованиям, там 160MHz SH2A ядро, 512kflash, 32kram, 12 bit dual adc и мощная timer pulse unit.
http://www.renesas.com/fmwk.jsp?cnt=sh7211...s/sh7211_group/
AlexandrY
Сомнительно.
Специализированного порта для CCD у него также нет.
Зато такая же медленная как у atmel-а периферийная шина.
При этом гораздо меньше объема у внутренней RAM и хуже сделан DMA.

Кстати 12-bit легко делаются из 8-и битного АЦП кучей техник, например с использованием масштабированного второго канала.

Цитата(proba @ Jun 11 2007, 11:25) *
вроде SH7211 от Renesas отвечает Вашим требованиям, там 160MHz SH2A ядро, 512kflash, 32kram, 12 bit dual adc и мощная timer pulse unit.
http://www.renesas.com/fmwk.jsp?cnt=sh7211...s/sh7211_group/
Сергей Борщ
Цитата(Stepanich @ Jun 11 2007, 00:41) *
Однако МК фирмы ATMEL уступают по аналоговой периферии микроконтроллерам фирмы AD: МК MicroConverter имеют 12-разрядный АЦП.
Собственно кроме этого АЦП там больше ничего полезного и нет. Нет DMA, нет нормального контроллера прерываний, нет нормальной схемы тактирования. Если вы запустите АЦП на 1 МГЦ, то скорости ядра только и хватит на то, чтобы вычитывать данные из этого АЦП по прерываниям. А без прерываний - тО еще извращение. На AT91SAM7S64 мне удается снимать 8 бит (больше не нужно) с двух матриц TSL1401 на частоте ~500 КГц (макс. для АЦП, получается 250KSPS на каждую матрицу). Все сигналы формируются таймерами и программа только забирает данные из буферов DMA.
Stepanich
DASM: нет, это спецлиния.

Всем спасибо за участие.

Дело в том, что выбор остановлен на AT91SAM7XC ещё вот по каким причинам:
- опыт работы с AVR (настало время изучать что-то более мощное);
- желание получить сразу на одном кристалле как можно больше интерфейсов (USB, ETHERNET,...), чего я не нашёл у других вариантов.
- широкая известность самих МК и доступность отладочных плат.

Изучение нового ядра предназначается не только для решения данной задачи, но и для существенного «расширения горизонтов», поэтому хотелось бы посвятить своё время действительно добротному микроконтроллеру (ведь с этим связан выбор средств разработки, выбор отладочных плат и, наконец, разработка печатных плат).

SH7211, предложенный товарищем proba, является куда более быстродействующим, чем AT91SAM7XC, но не обладает желаемым набором интерфейсов.

Из MCU Benchmarks, проводимых на САХАРЕ (http://benchmarks.caxapa.ru/?test=), видно что ARM не слишком быстродействующее ядро по сравнению, например, с BLACKFIN или FR91.

Кстати, кто-нибудь имел дело с ADSP-BF527? Он обладает очень приличными характеристиками (но уже относится к МП).

И что можно сказать, например, о AT32AP7000 (есть ли независимые тесты производительности)?

Спасибо.
abcdefg
Цитата(AlexandrY @ Jun 11 2007, 12:40) *
Кстати 12-bit легко делаются из 8-и битного АЦП кучей техник, например с использованием масштабированного второго канала.


Поподробнее можно (про масштабированный 2-й канал)?!
proba
многое зависить от Вашеи задачи, если потребуется например мощныи float проц, то кроме SH4 или SH2A( float) особо выбора нет, первыи свободно конкурирует с dsp tms320c67xx. но потребляют энергию солидно. сижу сеичас перед задачеи : хардваре >100mflops, 32mbram, ccd sensor in , tft lcd out , и особо выбора нет, смотрю sh7263, которыи пока в стадии разработки. lpc3180 тоже тянет, но мне кажется подключить к нему ccd очень непросто.
bzx
2 Stepanich
- У AVR32 (AT32AP7000) есть встроенный интерфейс для работы с датчиками изображения. Это первая причина, по которой стоит внимательнее посмотреть в сторону AVR32.
- С производительностью у 32разрядных AVR всё в порядке. Армы и ренесансы отдыхают перед ним. Это результаты независимых тестов EEMBC, в частности, TeleMark, OAMark, AutoMark, ConsumerMark и NetMark. Им верить можно.
- Вы не объяснили что собираетесь делать с самим изображением. Наверняка предполагается некая обработка, коль затевается грандиозный НИИР. Для этого будет большим подспорьем наличие встроенного сопроцессора, как его окрестил Atmel, видеосопроцессор, хотя по мне так правильнее было бы называть его векторным процессорором.
- Подборка статей по AVR32 тут http://www.avr32.ru/f2/viewtopic.php?t=12

2 proba
Добавлю, что Вашим требованиям полностью удовлетворяет AVR32. Это и работа с плавающей точкой на аппаратном уровне, и TFT с поддержкой форматов до SVGA.
proba
Цитата(bzx @ Jun 13 2007, 09:34) *
2 proba
Добавлю, что Вашим требованиям полностью удовлетворяет AVR32. Это и работа с плавающей точкой на аппаратном уровне, и TFT с поддержкой форматов до SVGA.

где в AVR32 ieee754 float coprocessor ? нет такого.
bzx
Цитата(proba @ Jun 13 2007, 10:48) *
где в AVR32 ieee754 float coprocessor ? нет такого.

sad.gif Погорячился, конено нет ieee754, фиксированная арифметика.
Stepanich
bzx, спасибо.

А если сравнивать AVR32 и STR91 с точки зрения решения комплексных задач управления?..
Если иначе поставить вопрос: с какими сложностями можно столкнуться при переходе от обычных 8-разрядных МК к обсуждаемым нами.

Меня сильно смущает наличие всего трёх таймеров как у AT91, так и у AT32...
Ещё в линейке AVR32 все МК многовыводные (соотв., довольно крупные)... эта «избыточность» иногда может оказаться неприятной.
А вот у STR91 в семействе есть и 80-выводные МК.

И ещё, bzx, понимаю, должен я сам найти и разобраться, но всё же прошу объяснить в двух словах, что из себя представляет интерфейс для работы с датчиками изображения у AVR32?

Спасибо.
bzx
Цитата(Stepanich @ Jun 13 2007, 14:42) *
А если сравнивать AVR32 и STR91 с точки зрения решения комплексных задач управления?..

Не сформулирована "точка зрения решения комплексных задач управления", озвучены лишь некие тезисы, такие как, работа с CCD. Если сравнивать только по взаимодействию с CCD, то первый предложенный вариант будет в лидерах.

Цитата(Stepanich @ Jun 13 2007, 14:42) *
Если иначе поставить вопрос: с какими сложностями можно столкнуться при переходе от обычных 8-разрядных МК к обсуждаемым нами.

Забудьте вообще про 8-битники. У обсуждаемых вообще иначе. остались лишь схожие названия, например для avr, есть регистровый файл, а в avr32, уже аппаратный стэк регистровых файлов для каждого контекста, точнее режима. Белее того есть такие подвиды AVR32, у которых этот стэк урезан. Так что подумайте, стоит ли переходить на 32битники, т.к. столкнётесь с количеством вопросов на несколько порядков больше.

Цитата(Stepanich @ Jun 13 2007, 14:42) *
Меня сильно смущает наличие всего трёх таймеров как у AT91, так и у AT32...

Да, у avr32 на борту 3 многофункциональных таймеров/счётчиков, но Вы упускаете про такую возможность как многозадачность. Сколько у обычного PC таймеров? А тут 3, + аппаратная поддержка многозадачности.

Цитата(Stepanich @ Jun 13 2007, 14:42) *
Ещё в линейке AVR32 все МК многовыводные (соотв., довольно крупные)... эта «избыточность» иногда может оказаться неприятной.

Более того, все AT32AP700x только в BGA, кроме AT32AP7001, который в 208-QFP. Поэтому, ещё раз подумаете, а надо ли оно Вам. С другой стороны 256bga для 7000 спокойно разводится в 4х слоях по 5му классу точности.

Цитата(Stepanich @ Jun 13 2007, 14:42) *
А вот у STR91 в семействе есть и 80-выводные МК.

Если рассматривать семейство AVR32 с флэш памятью AT32UC3Aхххх, то можно выбрать среди прочего и корпус 100TQFP, с таким же шагом как у и STR91, 0.5мм. Разница в сложности паки 100pins или 80pins не велика.

Цитата(Stepanich @ Jun 13 2007, 14:42) *
И ещё, bzx, понимаю, должен я сам найти и разобраться, но всё же прошу объяснить в двух словах, что из себя представляет интерфейс для работы с датчиками изображения у AVR32?

Физически интерфейс состоит из сигналов:
• 12-разрядные данные датчика изображения
• горизонтальная синхронизация
• вертикальная синхронизация
• тактирование данных датчика изображения

Возможности интерфейса датчика изображения
• ITU-R BT. 601/656 8-битный режим с поддержкой внешнего интерфейса
• Поддержка ITU-R BT.656-4 SAV и синхронизации EAV
• Вертикальные и горизонтальные решения до 2048 x 2048
• Дорожка Предварительного просмотра до 640*480
• Поддержка упакованных форматированых данных для YCbCr 4:2:2 форматов
• Предварительное масштабирование, чтобы произвести наименьший размер изображения 50
• Программируемая скорость захвата кадра
• FIFO

PS: Для обсуждения AVR32 приглашаю на сайт avr32 в зоне ру
Stepanich
bzx, спасибо за Вашу консультацию.

Боюсь, для работы именно с CCD-FFT (а не NMOS) интерфейс для с датчиков изображения у AVR32 не является полноценным.
Дело в том, что для работы с подобными матрицами требуется восемь управляющих сигнальных линий:

2 противофазных сигнала для вертикального сдвигового регистра (P1V, P2V) длительностью 6 мкс;
1 сигнал Transfer Gate (TG) длительностью 6 мкс;
2 противофазных сигнала для горизонтального сдвигового регистра (P1H, P2H) длительностью 0,5 мкс, меандр;
1 сигнал Summing Gate (SG) длительностью 0,5 мкс, меандр;
1 сигнал сброса Reset Pulse (RG) длительностью 0,5 мкс;
1 сигнал шумоподавления (CLAMP) для выходного усилителя.

В действительности можно обойтись и меньшим количеством сигналов в связи с тем, что некоторые из них синфазные или противофазные, но это не позволит работать с датчиком в расширенных режимах, в режиме калибровки и диагностики.

Ко всему прочему требуется поддерживать температуру матрицы на уровне минус 50 градусов по Цельсию (пока предполагаю посредствам ШИМ).

Сигнал после усилителя двуполярный с большим размахом, что делает предпочтительным использованием внешнего АЦП. Отсюда вытекает задача и управления АЦП.

Я начинаю сомневаться, что приведённые выше условия можно выполнить на каком-либо МК, не забив при этом всё ядро задачей дёрганья ног и выдержки временных интервалов. А ведь ещё и обработку информации с формированием и отправкой производить нужно.

Может, эта задача всё-таки для ПЛИС?..

Насчёт быстродействия: в данном случае желательно перейти на наиболее быстрый МК, сохранив при этом удобство и универсальность, что было присуще, например, 8-разрядным AVR’ам (всё-таки хотелось бы иметь встроенный FLASH >= 128 кб, выводы таймеров OC, разнообразие корпусов и т.д.). Пока выбираю между STR912FAW42 и AT32UC3A1256.
А поставив даже AP7000, обойти Vertex-IV не получится (энергопотребление и цена в нашем случае значения не имеют).

Спасибо.
afad
Цитата
Может, эта задача всё-таки для ПЛИС?..
Ну конечно! Загляни сюда: http://www.ime.usp.br/~fr/sbc/
Kail
Вообще-то грамотное построение такого тип системы такое. Имеем микроконтроллер (пофиг какой, его задача - интерфейс пользователя и управление), ПЛИС, память (обязательно ФИФО, но его чаще всего запихивает в ПЛИС. ФИФО нужно для согласования скоростей потов считывания с матрицы и записи во внешнюю память уже обработанных кадров), АЦП, аналоговая часть (всякие микрухи восстановления уровня черного, синхроимпульсов и проч.). Микроконтроллер дает комманду АЦП начинать преобразование и одновременно сигнал ПЛИС на начало приема и обработки, АЦП через интерфейс (параллельный или SPI) пропихивает данные в ФИФО, дальше в ПЛИС на обработку и уже готовые кадры пишутся во внешнюю память (ну или чего вам нужно с ними делать). ИМХО, считывать с АЦП данные микроконтроллером - очень неправильно, хотя и возможно, конечно.
Stepanich
Kail, спасибо за ответ.

В нашем случае задача немного специфична: управление должно производится матрицей фирмы Hamamatsu. Сама матрица предназначена для научных измерений, поэтому подразумевается работа в нескольких режимах, которые задаются сочетанием управляющих импульсов, перечисленных выше.
Поэтому хотелось бы получить гибкость и высокую интегрированность системы (в смысле, система-на-кристалле), потому-то я и нахожусь в поисках именно МК, чтобы не множить номенклатуру микросхем и заниматься программированием одного лишь МК, а не связки МК-ПЛИС.
STR91 — очень привлекателен: высокоинтегрирован, продуман, не ширпотреб...
Но смущает присутствие в линейке STR только МК со встроенной Flash-памятью, что ограничивает быстродействие (если возникнет необходимость перейти на более производительный вариант (например, как в AVR32), в линейке STR этого сделать не получится).
Kail
Цитата(Stepanich @ Jun 22 2007, 01:54) *
Но смущает присутствие в линейке STR только МК со встроенной Flash-памятью, что ограничивает быстродействие (если возникнет необходимость перейти на более производительный вариант (например, как в AVR32), в линейке STR этого сделать не получится).


Не понял, в чем проблема. Ну прицепите внешнюю FLASH к выводам общего назначения, напишите драйвер и пишите во внешнюю флэш сколько хотите.
Stepanich
Виноват, не точно выразился. Имелось в виду, что линейка STR ограничивается 96 MIPS, как я понимаю, из-за встроенной FLASH. А вот у AVR32, если не хватает 80 MIPS, отказываемся от UC3A со встроенной FLASH и переходим на AP7000 с 200 MIPS…
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.