ВНИМАНИЕ! На форуме началось голосование в конкурсе - астрофотография месяца - ИЮЛЬ!
0 Пользователей и 1 Гость просматривают эту тему.
Тактовый генератор для ПЗС это не сложный блок обработки сигналов, где может быть все что угодно. Да и АЦП тут далеко не на 200 мегасэмплов чтобы бодаться с захватом корректных данных
деньги не прятать
у нас камень ещё даже наполовину не занят,
у меня начинается раздвоение сознания. один говорит - сдвигать, другой - не сдвигать. чё делать-то ?
Че, думали все так просто? раз, два и в продакшн?
Цитата: Andreichk от 14 Дек 2015 [19:28:16]у меня начинается раздвоение сознания. один говорит - сдвигать, другой - не сдвигать. чё делать-то ?Добавить голосование в тему
К сожалению, я сам на VHDL веду разработку, поэтому с кодом помочь не могу.
Цитата: Andreichk от 14 Дек 2015 [19:28:16]у меня начинается раздвоение сознания. один говорит - сдвигать, другой - не сдвигать. чё делать-то ?Сдвигать! Однозначно сдвигать!!! И выложите плз крайнюю версию секвенсора, у которой запуск строчного переноса исправлен.
Цитата: Andreichk от 14 Дек 2015 [17:36:31]у нас камень ещё даже наполовину не занят,Если отвлечься, и подойти к задаче, скажем, беря тот же FX2 как юсб-шную основу, то в обвязку к нему достаточно махонькой CPLD-шки, для управления всем процессом вокруг ПЗС, чтобы и компактно, и без избытка по делу. Внутри FX2 есть простой генератор интерфейсных последовательностей с разными протоколами и программируемым числом циклов, на его основе делается циклограмма чтения строки, вертикальный перенос программно. У Starlight Xpress так сделано (в помощь внутреннему генератору внешний сдвиговый регистр и пара мелкой логики типа ЛА3-ЛН1, даже CPLD не потребовалась). Ну что-то еще потребуется для терморегулятора, может в ту же CPLD-шку утрамбуется, может что-то отдельное, это решать надо, в зависимости от принципа управления холодильником и способа съема температуры. Но факт такой, что FPGA сильно избыточна в данном случае, оправдать можно тем, что задумывалось как поле для широчайших экспериментов, мыслимых и немыслимых, а не только заморозить кристалл и снять картинку.А так, раз уж спаяно, интересно было бы до конца довести то, что есть.
Цитата: Василий Вершинин от 14 Дек 2015 [13:28:27]К сожалению, я сам на VHDL веду разработку, поэтому с кодом помочь не могу. можешь Василий, ещё как можешь. на стр. 25 в ответе #487 для тебя задание....
Пропустить через симулятор смогу вечером, на домашнем компе.Пока интересуют такие моменты:Сигналы frame/header - зачем нужны?Если сигнал frame является разрешающим для передачи пиксельного потока в трансмиттер и дальше, то его фронт надо подвинуть влево на полпериода клока, чтобы он совпадал с пассивным фронтом клока. Иначе возникает неоднозначность - если фрейм сработал чуть раньше клока - 1й байт передается, если чуть позже - не передается. А фронты могут дрожать, из за чего будет то так, то сяк. Этот перескок потянет прицепом и чередование байт - старший/младший.
reg [7:0]adc_data_;reg [7:0]header_data_;always @ (posedge c48)begin header_data_ <= header_data;// данные заголовка строки с секвенсора adc_data_ <= adc_data;// данные с пинов АЦПend//данные и такт с видео АЦП adc2clkwire expos_clk = (frame && REGWR && f2hReady) || (header && header_clock && f2hReady);//wire expos_clk = (frame && adc_clock) || (header && header_clock);wire [7:0]expos_data = (frame && f2hReady) ? adc_data_[7:0] : (header && f2hReady ) ? header_data_[7:0] : 8'd0;//// коммутатор данных и такта, подаваемых в FPGALINK //reg1[3] byte=0x08;//управление экспозицией . если бит3==1, то считываем данныеwire comp_valid = (reg1[3] && f2hReady) ? expos_clk : 1'b0;// wire [7:0]comp_out = (reg1[3] && f2hReady) ? expos_data[7:0] : 8'b00000000;//
Проект на гуглодиске актуальный?Какой файл верилога является корневым? Я хочу загнать в квартус весь PLC проект, но для этого его придется пересоздать под альтеру с использованием имеющихся файлов.
//==========================================================================================// выбор скорости тактированя АЦП. // перед компиляцией не забыть раскоментировать нужную строку для обеих матриц//==========================================================================================//FTF5066C_1 timegen ( // тактирование матрицы на частоте 1 МГц dalsa1.xsvf//FTF5066C_2 timegen ( // тактирование матрицы на частоте 2 МГц dalsa2.xsvf//FTF5066C_4 timegen ( // тактирование матрицы на частоте 4 МГц dalsa4.xsvfFTF5066C_8 timegen ( // тактирование матрицы на частоте 8 МГц dalsa8.xsvf