ВНИМАНИЕ! На форуме началось голосование в конкурсе - астрофотография месяца - ИЮЛЬ!
0 Пользователей и 1 Гость просматривают эту тему.
вобщем с указанными настройками , усиление 0 и смещение 255,правый конец входного кондёра посажен на землю.основная масса пикселей имеет значение в районе 08В4, некоторые 14В1
Картинка с вертикальными полосами наводит на подозрение, что АЦП не переключился в одноканальный режим, и пытается оцифровывать сигналы с неиспользуемых входов (по умолчанию АЦП работает как трехканальный).
When operating in 1CH or 2CHMode, the unused analog inputs should be grounded.
`timescale 1ms / 1ns//////////////////////////////////////////////////////////////////////////////////// Company: // Engineer: // Create Date: 31.08.2013 20:38:09// Module Name: adc_spi. настройка ацп по спи//////////////////////////////////////////////////////////////////////////////////module adc_spi( // Clock input wire clock, input wire init_en, input wire [5:0]Gain_Reg, // = 6'h3F; input wire [7:0]Offset_Reg,// = 8'hFF; // ADC Out output reg adc_sload, output wire adc_sclk, output reg adc_sdata);reg [3:0] t;always @ (posedge clock)begin t <= t + 1;end reg [15:0] p;reg[5:0] num;always @ ( posedge t[2] ) beginif(!init_en) begin p <= 0; end else begin adc_sload <= ((p == 0)||(p == 17)||(p == 34)||(p == 51)) ? 1 : 0; p <= (p == 51) ? 51 : p + 1; if(!adc_sload) begin num <= num + 1'b1; case (num) 6'd1: adc_sdata <= 0'b0; //bit3 6'd2: adc_sdata <= 0'b0; //bit4 6'd3: adc_sdata <= 0'b0; //bit5 6'd4: adc_sdata <= 0'b0; //bit6 6'd5: adc_sdata <= 0'b0; //bit7 6'd6: adc_sdata <= 0'b0; //bit8 6'd7: adc_sdata <= 0'b0; //bit9 //============= 6'd8: adc_sdata <= 0'b1; //bit10 Internal VREF 6'd9: adc_sdata <= 0'b0; //bit11 6'd10: adc_sdata <= 0'b1; //bit12 CDS 1 CH Red //============= 6'd11: adc_sdata <= 0'b0; //bit13 6'd12: adc_sdata <= 0'b0; //bit14 6'd13: adc_sdata <= 0'b0; //bit15 6'd14: adc_sdata <= 0'b0; //bit16 6'd15: adc_sdata <= 0'b0; //bit17 6'd16: adc_sdata <= 0'b0; //bit18 //=========================================================================== 6'd17: adc_sdata <= 0'b1; //bit19 addr Gain_Reg_ 6'd18: adc_sdata <= 0'b0; //bit20 6'd19: adc_sdata <= 0'b0; //bit21 6'd20: adc_sdata <= 0'b0; //bit22 6'd21: adc_sdata <= 0'b0; //bit23 6'd22: adc_sdata <= 0'b0; //bit24 6'd23: adc_sdata <= 0'b0; //bit25 6'd24: adc_sdata <= 0'b0; //bit26 //============= 6'd25: adc_sdata <= Gain_Reg[5]; //bit27 6'd26: adc_sdata <= Gain_Reg[4]; //bit28 6'd27: adc_sdata <= Gain_Reg[3]; //bit29 6'd28: adc_sdata <= Gain_Reg[2]; //bit30 6'd29: adc_sdata <= Gain_Reg[1]; //bit31 6'd30: adc_sdata <= Gain_Reg[0]; //bit32 //========================================================================== 6'd31: adc_sdata <= 0'b0; //bit33 6'd32: adc_sdata <= 0'b1; //bit34 addr Offset_Reg_ 6'd33: adc_sdata <= 0'b0; //bit35 6'd34: adc_sdata <= 0'b1; //bit36 addr Offset_Reg_ 6'd35: adc_sdata <= 0'b0; //bit37 6'd36: adc_sdata <= 0'b0; //bit38 6'd37: adc_sdata <= 0'b0; //bit39 6'd38: adc_sdata <= Offset_Reg[7];//0'b0;//bit40 знак . 0'b1 -, 0'b0 + 6'd39: adc_sdata <= Offset_Reg[6]; //bit41 6'd40: adc_sdata <= Offset_Reg[5]; //bit42 6'd41: adc_sdata <= Offset_Reg[4]; //bit43 6'd42: adc_sdata <= Offset_Reg[3]; //bit44 6'd43: adc_sdata <= Offset_Reg[2]; //bit45 6'd44: adc_sdata <= Offset_Reg[1]; //bit46 6'd45: adc_sdata <= Offset_Reg[0]; //bit47 6'd46: adc_sdata <= 0'b1;//Offset_Reg[0]; //bit48 default: adc_sdata <= 46'b0; endcase end else if(num==6'd46) num <= 6'd0; endendassign adc_sclk = ~t[2];initialbeginnum = 6'd0; p = 0; t = 0; adc_sload = 1;endendmodule
Если входы не используются, КМК лучше их заземлять не напрямую, а через индивидуальные разделительные конденсаторы, как в даташите - чтобы сохранить постоянные составляющие на входах.
Дмитрий, похоже вы оказались правы насчёт этого:ЦитатаЕсли входы не используются, КМК лучше их заземлять не напрямую, а через индивидуальные разделительные конденсаторы, как в даташите - чтобы сохранить постоянные составляющие на входах.
а вот и ссылка https://drive.google.com/open?id=0B-uW0Otv8WkQTjdxX2trbXg1Z00
Красота!теперь надо думать как ее остужать)
1. R95/C165 в Вашей схеме явно лишние, исходя из логики работы АЦП они мешают корректной работе CDS. Необходимость их наличия намекает на ошибки тактирования АЦП.
2. Алгоритм тактирования АЦП надо бы "исследовать под микроскопом". Слишком низкая частота оцифровки не сильно лучше слишком высокой - из за утечек будут разряжаться конденсаторы в сэмплере (да и выходной плавающий затвор матрицы может разряжаться, если считывание слишком затянуто), уровень шума возрастёт. Плюс к этому - тепловые электроны, набегающие в регистр счиывания (градиент темнового поля как бы намекает). Выбор скорости чтения будет компромиссом, некой золотой серединой, возможно даже подобранной экспериментально.
3. Так-же следует обратить внимание на длительности и интервалы импульсов тактирования АЦП. По импульсу CDSCLK1 - фронт должен быть не раньше, чем закончится переходной процесс на выходе матрицы после спада импульса RST (когда полностью устаканится опорный сигнал). Длительность импульса CDSCLK1 должна быть достаточной для полной зарядки емкостей сэмплера до уровня OFFSET. Нужно иметь в виду, что в процессе сэмплинга, конденсатор С156 так-же заряжается до уровня OFFSET, причем через выходное сопротивление каскада повторителя. Тут получается некая RC цепочка в виде C156 и выходного сопротивления повторителя - если постоянная времени этой цепочки больше длительности импульса CDSCLK1 - будет потеря части сигнала. Исходя из этого см п.4.
4. В камере QHY6 на выходе матрицы стоит такой-же эмиттерный повторитель, всё согласно ДШ. АЦП подключен к повторителю не напрямую, а через МС видеоусилителя с низким выходным сопротивлением - AD829. Зная склонность китайцев к упрощению и удешевлению своей продукции - должна быть очень веская причина чтобы эту МС туда поставить. Видимо непосредственное подключение повторителя к АЦП не позволило добиться приемлемого результата - при том, что QHY6 бюджетная камера с достаточно посредственными характеристиками.
шапку еще писать надо!без нее не хорошо. ну и в фитс!
в своё время Виктор меня за промежуточные ОУ к стенке поставил и расстрелял насмерть.......
тут всё намного сложнее, дело в том, что в этой схеме с кипресом, тактовая на ФПГА - 48 МГц. далее, чтобы ровно раскидать управляющие импульсы на матрицу, я смог выставить только три частоты - 1 , 2 , 4 и 8 МГц. На последней всё падает почему-то, на 4 и 2 работает, но прут полосы по всей картинке, а 1 всё намного лучше, но медленно. Возможно, можно ещё как-то оптимизировать код, но тут нужен эксперт по верилогу. Кажись, я достиг своего предела возможностей....