Телескопы покупают здесь


A A A A Автор Тема: 33 мегапикселя на ладони  (Прочитано 28600 раз)

0 Пользователей и 2 Гостей просматривают эту тему.

andreichk

  • Гость
Re: 33 мегапикселя на ладони
« Ответ #540 : 14 Дек 2015 [21:56:45] »
Полоски еще появляются?
Можно ли сдвинуть битую строку _в файле_ на 1 байт вправо или влево?
думаю, что да

andreichk

  • Гость
Re: 33 мегапикселя на ладони
« Ответ #541 : 14 Дек 2015 [21:58:58] »
Проект на гуглодиске актуальный?
Какой файл верилога является корневым? Я хочу загнать в квартус весь PLC проект, но для этого его придется пересоздать под альтеру с использованием имеющихся файлов.
перезалил. я думаю, что он залезет в Альтеру вообще без переделок, так как там только вериложный код и ни одного спец.блока от хилинкса

andreichk

  • Гость
Re: 33 мегапикселя на ладони
« Ответ #542 : 14 Дек 2015 [22:03:30] »
полоски всё ещё появляются на некоторых фотках, но не на всех

andreichk

  • Гость
Re: 33 мегапикселя на ладони
« Ответ #543 : 15 Дек 2015 [02:46:18] »
вести с полей. не знаю как и что я сделал, но на 8МГц стало заметно лучше. и даже на тёмном кадре с нулевым усилением и смещением как будто нет никаких полос. вот код тайминга:

`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Description: Time generator 8 MHz for DALSA CCD FTF5066C
//reg1[1] byte=0x02;//подача питания на MAX618
//reg1[2] byte=0x04;//управление накоплением заряда
//reg1[3] byte=0x08;//управление экспозицией
//////////////////////////////////////////////////////////////////////////////////
module FTF5066C_8 /*#(parameter BASE = 0)*/(
  // Clock
  input wire clock,
  input wire f2hReady,
  input wire [5:0]data_gain,//<=====
  input wire [7:0]data_offset,//<=====
  input wire [7:0]data_msb, 
  input wire [7:0]data_lsb,

  // Config
  input wire CR_IN,//<== перед открытием затвора и началом накопления заряда разряжаем матрицу импульсом CR
  input wire power_MAX618,    //<== подача питания на MAX618(reg1[1]) 
  input wire integration,     //<== накопление пикселей(reg1[2])
  input wire transport,       //<== перенос заряда в хост(reg1[3])
  // CCD
  output wire PWRTGDRW_MAX618,//LOC = P190;//УПРАВЛЕНИЕ ПИТАНИЕМ MAX618
  output wire V_DRIVE11,      //LOC = P164;//УПРАВЛЕНИЕ ПИТАНИЕМ 1 включить 11 вольт
  output wire PWRTGDRW,       //LOC = P189;//УПРАВЛЕНИЕ ПИТАНИЕМ 2 SN74LVC1T45
  output wire TD_WTHLVL,      //LOC = P102;//ИМПУЛЬСЫ УПРАВЛЕНИЯ EL7156 off-11V, on-8V

//======================CCD DALSA FTF5066C
  output wire CR, //LOC = P103;
 
  output reg TGZ, //LOC = P100; 
  output reg TGY, //LOC = P96; 
  output reg TGX, //LOC = P80;
  output reg TGW, //LOC = P76; 
 
  output reg A1T, //LOC = P99;
  output reg A2T, //LOC = P93;
  output reg A3T, //LOC = P94;
  output reg A4T, //LOC = P97;

  output reg A1B, //LOC = P77;
  output reg A2B, //LOC = P90;
  output reg A3B, //LOC = P89;
  output reg A4B, //LOC = P78;
 
  output reg C1X, //LOC = P68; 
  output reg C2X, //LOC = P69;
  output reg C3X, //LOC = P65;
 
  output reg C1W, //LOC = P62; 
  output reg C2W, //LOC = P63; 
  output reg C3W, //LOC = P64;
 
  output reg SG,  //LOC = P74;   
  output reg RG,  //LOC = P75;

  // ADC
  output reg CDSCLK1,//фиксация уровня
  output reg CDSCLK2,//выборка
  output reg ADCCLK, //тактирование
  output reg REGWR,
  // out
  output reg frame,
  output reg header,
  output reg [7:0]header_data,
  output reg header_clock
);

reg  [7:0] buffer;
reg [12:0] pix;// кол-во пикселей в строке
reg [15:0] row;// кол-во строк в кадре
//reg [25:0]cr_; // Charge Reset (CR) pulse on VNS.

//============================================5
always @ (posedge clock)
begin if ( f2hReady )
  begin
    if (buffer == 5)
    begin
      // new tick
if (pix == 5149)// кол-во пикселей в строке 100+9+20+4+4992+4+20 = 5149
      begin
        if (row == 6703) // кол-во строк в кадре 6703
        begin
          // wait
          if (transport == 1'b1)
        begin
            row <= 0;
          end 
        end else begin
          // new line
          pix <= 0;
          row <= row + 1;
          buffer <= 0;
        end
      end else begin
        // new pixel
        pix <= pix + 1;
        buffer <= 0; 
      end
    end else begin
      buffer <= buffer + 1;
    end
  end
end

reg SSC;// = !((pix > 0) && (pix <= 100)); // 0,100
reg SSC_ADC;// = !((pix > 0) && (pix <= 96));  // 0,96 пропускаем 4 такта ацп
reg SSC_CCD;// = ((pix > 0) && (pix <= 100)); // 0,100

always @ (posedge clock)
begin
     SSC = !((pix > 0) && (pix <= 100)); // 0,100

end


always @ (negedge clock)
begin
     SSC_ADC = !((pix > 0) && (pix <= 96));  // 0,96 пропускаем 4 такта ацп
     SSC_CCD =  ((pix > 0) && (pix <= 100)); // 0,100 
end

//wire     SSC = !((pix > 0) && (pix <= 100)); // 0,100
//wire SSC_ADC = !((pix > 0) && (pix <= 96));  // 0,96 пропускаем 4 такта ацп
//wire SSC_CCD = ((pix > 0) && (pix <= 100)); // 0,100

//импульсы вертикального переноса заряда 1552 Гц
//при накоплении выставляем 8 вольт, а при переносе пульсируем  - с ампл. 11 вольт
wire TG_A1 = integration ? 1'b0 : transport ?   (pix >= 30) && (pix <= 80) : 1'b0 ;  //188,501
wire    A2 = integration ? 1'b1 : transport ? !((pix >= 20) && (pix <= 50)): 1'b0 ;  //125,313
wire    A3 = integration ? 1'b1 : transport ? !((pix >= 40) && (pix <= 70)): 1'b0 ;  //250,438
wire    A4 = integration ? 1'b1 : transport ? !((pix >= 60) && (pix <= 90)): 1'b0 ;  //375,563

// CR <= !(cr_ >= 0 && cr_ <= 687);     //LOC = P103; Charge Reset (CR) pulse on VNS.
assign CR = CR_IN;                      //LOC = P103; Charge Reset (CR) pulse on VNS.
assign PWRTGDRW_MAX618 = !power_MAX618; //подача питания на драйверы MAX618 pin190

// при накоплении заряда устанавливаем 8 вольт, а при переносе 11 вольт.
assign V_DRIVE11 = integration ;        //8V - накопление заряда, 11V - вертикальный перенос pin164
assign TD_WTHLVL = integration ;//|| SSC; //переключатель напр.11/8 вольт на EL7156.  pin102
assign  PWRTGDRW =   transport ;        //подача питания на драйверы гориз.переноса pin189
 
//====================== CCD DALSA FTF5066C ===================================================
always @ (posedge clock) 
 begin
//================== ВЕРТИКАЛЬНЫЙ ПЕРЕНОС 1552 Гц ==============================================
   TGZ <= TG_A1;                                    //LOC = P100;Image Clock Transfer Gate(Phase 1)
   TGY <= TG_A1;                                    //LOC = P96;
   TGX <= TG_A1;                                    //LOC = P80;   
   TGW <= TG_A1;                                    //LOC = P76;   
//TOP
   A1T <= TG_A1;                                    //LOC = P99; Image Clock (Phase 1)
   A2T <= A2;                                       //LOC = P93; Image Clock (Phase 2)
   A3T <= A3;                                       //LOC = P94; Image Clock (Phase 3)
   A4T <= A4;                                       //LOC = P97; Image Clock (Phase 4)
//BOT
   A1B <= TG_A1;                                    //LOC = P77; Image Clock (Phase 1)
   A2B <= A2;                                       //LOC = P90; Image Clock (Phase 2)
   A3B <= A3;                                       //LOC = P89; Image Clock (Phase 3)
   A4B <= A4;                                       //LOC = P78; Image Clock (Phase 4)

///================== ГОРИЗОНТАЛЬНЫЙ ПЕРЕНОС 8 МГц  ============================================
    RG <= (buffer == 0) && !SSC_CCD;     //LOC = P75; Reset Gate

case(buffer) 3,4,5: SG <= 1'b0;  //LOC = P74; Summing Gate
            default: SG <= !SSC_CCD;endcase

  //LEFT (SINGLE OUTPUT Left C1 C2 C3) //RIGHT (SINGLE OUTPUT Right C2 C1 C3)
   //C1W <=   (SSC_CCD);
     C1W <=   !((buffer < 2 || buffer > 4 ) && !SSC_CCD) && pix != 100;//LOC = P62; Register Clock (Phase 1)
   //case(buffer) 0,1,5: C1W <= !SSC_CCD && pix < 100;//LOC = P62; Register Clock (Phase 1)
//           default: C1W <= 1'b1;
//endcase

case(buffer) 1,2,3: C2W <= SSC_CCD;//LOC = P63; Register Clock (Phase 2)
           default: C2W <= 1'b1;
endcase
     
case(buffer) 3,4,5: C3W <= 1'b0; //LOC = P64; Register Clock (Phase 3)
           default: C3W <= !SSC_CCD;
endcase

C1X <=   !((buffer < 2 || buffer > 4 ) && !SSC_CCD) && pix != 100 ;//LOC = P62; Register Clock (Phase 1)
//case(buffer) 0,1,5: C1X <= SSC_CCD && pix < 100;//LOC = P68; Register Clock (Phase 1)
//           default: C1X <= 1'b1;endcase

case(buffer) 1,2,3: C2X <= SSC_CCD; //LOC = P69; Register Clock (Phase 2)
           default: C2X <= 1'b1;
endcase
             
case(buffer) 3,4,5: C3X <= 1'b0;//LOC = P65; Register Clock (Phase 3)
           default: C3X <= !SSC_CCD;
endcase
///===============================================================================================
             frame <= SSC; //SSC
header_clock <= buffer == 0 && pix >= 91 && pix <= 100;
            header <= pix >= 91  && pix <= 100; //8 бит заголовка строки
///===============================================================================================      
  case (pix)
            91: header_data <= 8'h02;                    //01 заголовок маркера
            92: header_data <= 8'h01;                    //02 заголовок маркера
         93: header_data <= row[15:8];                //ст.байт номер строки
         94: header_data <= row[7:0];                 //мл.байт номер строки
         95: header_data <= data_msb[7:0];            //ст.байт Т.Пельтье
            96: header_data <= data_lsb[7:0];            //мл.байт Т.Пельтье
            97: header_data <= data_gain[5:0];           //усиление АЦП
            98: header_data <= data_offset[7:0];         //смещение АЦП
     default: header_data <= 8'h00;
  endcase
///===== тактирование ацп. HB,LB 16 bit ==============================================
      case (buffer)     1:
                     CDSCLK1 <= SSC_ADC;    //==> импульс фиксации
                  default: CDSCLK1 <= 1'b0;
      endcase
      case (buffer)   3,4:
                     CDSCLK2 <= SSC_ADC;  //==> импульс выборки
                  default: CDSCLK2 <= 1'b0;
      endcase
      case (buffer) 4,5,0:
                     ADCCLK <= SSC_ADC; //==> меандр такт ацп
                  default: ADCCLK <= 1'b0;
      endcase

  end
 ///================================================================================= 
always @ (negedge clock) // по спаду тактового импульса
 begin
 
      case (buffer)  3,0: //удвоенная частота  //==> такт записи данных в FX2
        REGWR <= SSC_ADC;           
        default: REGWR <= 1'b0;
     endcase  
end
///=================================================================================
 
initial
       begin
           buffer = 5;
              pix = 5149;//
              row = 6703;  
//cr_ = 0;
   end

endmodule

andreichk

  • Гость
Re: 33 мегапикселя на ладони
« Ответ #544 : 15 Дек 2015 [02:52:22] »
я подумал, 8 МГц, это же нормальная скорость считывания с АЦП, кадр залетает за пару сек в комп, а на 1 МГц надо аж 45 сек ждать, нафик надо ваще так долго ждать, поэтому 1 МГц отменяется. насчёт 2 и 4 я ещё немного подумаю.....

andreichk

  • Гость
Re: 33 мегапикселя на ладони
« Ответ #545 : 15 Дек 2015 [02:57:21] »
К сожалению, я сам на VHDL веду разработку, поэтому с кодом помочь не могу.
можешь Василий, ещё как можешь. на стр. 25 в ответе  #487 для тебя задание.... 8)

Вход датчика двунаправленный. Так как внутри плисы сигналы inout это моветон, если оно вообще синтезируется, то на верхнем уровне пишется конструкция вида:

bus<=myoutdata when RD='1' else (others=>'Z');
myindata<=bus;

А модуль на ВХДЛ подключается в верилоговский верхний уровень точно также как и обычные верилоговские блоки. Набор сигналов копируется и все.


З.Ы. Синтезируется, вспомнил что Chipscope Control inout.

я пока вот так написал, не уверен, что верно
ещё этот камент от автора непонятный какой-то

Цитата
//Термосенсор DALLAS DS18B20
/*
 Как этим пользоваться
 На вход clk подаются тактовые импульсы с периодом 6 мкс. Входы reset,
 read_byte, write_byte нужны для запуска соответствующей функции.
 На них выставляется 1, после появления 1 на busy их нужно сбросить в 0
 (что-то на подобии регистров в МК, записал 1 - пошла работа, только сбрасывать ручками надо),
 если этого не сделать, то по завершению текущих действий они снова повторятся,
 причем наивысший приоритет у reset, наименьший у read_byte.
 Busy выставляется в 1 когда модуль что-то делает, если busy переходит с 1 в 0
 можно считывать данные или запускать новый процесс.
 Здесь реализована только аппаратная часть, всю логику должен делать другой модуль
 или внешний контроллер (тогда сюда надо будет еще прикрутить SPI).
 Если все делать в ПЛИС то для нормальной работы нужна еще память где будут храниться адреса устройств.    
*/   
   
reg [7:0] in_byte;//
reg [7:0] out_byte_DS18B20;

wire w0;
BUF BUF_wire (
              .O(T_SENSOR),//двунаправленный порт
      .I(w0)       //<-------------------------------------|
);                         //                                      |
one_wire DALLAS_DS18B20 (  //                                      |
    .reset(reg1[4]),       //<==сброс термосенсора byte=0x10;      |
    .read_byte(reg1[5]),   //<==                                   |
    .write_byte(reg1[6]),  //<==                                   |
    .wire_out(w0),         //------------------------------------->|
    .wire_in(T_SENSOR),    //LOC = P161 DALLAS DS18B20 THERMOSENSOR
    .presense(presense),
    .busy(busy),
    .in_byte(in_byte),
    .out_byte(out_byte_DS18B20[7:0]), //данные температуры
    .clk(c48)
    );
   






Оффлайн Алексей Юдин

  • *****
  • Сообщений: 28 778
  • Благодарностей: 1124
  • Так-с, где тут у Вас Кровавое Мясное Бодалово?
    • Сообщения от Алексей Юдин
Re: 33 мегапикселя на ладони
« Ответ #546 : 15 Дек 2015 [04:05:36] »
а на 1 МГц надо аж 45 сек ждать, нафик надо ваще так долго ждать
Чтобы меньше портить шумом кадр, снятый с получасовой выдержкой.

Оффлайн Василий Вершинин

  • *****
  • Сообщений: 3 713
  • Благодарностей: 122
  • Per anus ad astra
    • Skype - vasiliy_vershinin
    • Сообщения от Василий Вершинин
Re: 33 мегапикселя на ладони
« Ответ #547 : 15 Дек 2015 [11:40:59] »
К сожалению, я сам на VHDL веду разработку, поэтому с кодом помочь не могу.
можешь Василий, ещё как можешь. на стр. 25 в ответе  #487 для тебя задание.... 8)

Вход датчика двунаправленный. Так как внутри плисы сигналы inout это моветон, если оно вообще синтезируется, то на верхнем уровне пишется конструкция вида:

bus<=myoutdata when RD='1' else (others=>'Z');
myindata<=bus;

А модуль на ВХДЛ подключается в верилоговский верхний уровень точно также как и обычные верилоговские блоки. Набор сигналов копируется и все.


З.Ы. Синтезируется, вспомнил что Chipscope Control inout.

я пока вот так написал, не уверен, что верно
ещё этот камент от автора непонятный какой-то

Цитата
//Термосенсор DALLAS DS18B20
/*
 Как этим пользоваться
 На вход clk подаются тактовые импульсы с периодом 6 мкс. Входы reset,
 read_byte, write_byte нужны для запуска соответствующей функции.
 На них выставляется 1, после появления 1 на busy их нужно сбросить в 0
 (что-то на подобии регистров в МК, записал 1 - пошла работа, только сбрасывать ручками надо),
 если этого не сделать, то по завершению текущих действий они снова повторятся,
 причем наивысший приоритет у reset, наименьший у read_byte.
 Busy выставляется в 1 когда модуль что-то делает, если busy переходит с 1 в 0
 можно считывать данные или запускать новый процесс.
 Здесь реализована только аппаратная часть, всю логику должен делать другой модуль
 или внешний контроллер (тогда сюда надо будет еще прикрутить SPI).
 Если все делать в ПЛИС то для нормальной работы нужна еще память где будут храниться адреса устройств.    
*/   
   
reg [7:0] in_byte;//
reg [7:0] out_byte_DS18B20;

wire w0;
BUF BUF_wire (
              .O(T_SENSOR),//двунаправленный порт
      .I(w0)       //<-------------------------------------|
);                         //                                      |
one_wire DALLAS_DS18B20 (  //                                      |
    .reset(reg1[4]),       //<==сброс термосенсора byte=0x10;      |
    .read_byte(reg1[5]),   //<==                                   |
    .write_byte(reg1[6]),  //<==                                   |
    .wire_out(w0),         //------------------------------------->|
    .wire_in(T_SENSOR),    //LOC = P161 DALLAS DS18B20 THERMOSENSOR
    .presense(presense),
    .busy(busy),
    .in_byte(in_byte),
    .out_byte(out_byte_DS18B20[7:0]), //данные температуры
    .clk(c48)
    );


Ну автомат внешний писать. Тут только сам 1-wire похоже

andreichk

  • Гость
Re: 33 мегапикселя на ладони
« Ответ #548 : 15 Дек 2015 [19:26:48] »
а на 1 МГц надо аж 45 сек ждать, нафик надо ваще так долго ждать
Чтобы меньше портить шумом кадр, снятый с получасовой выдержкой.
насколько сильно испортится, если оставить 2 МГц?

Оффлайн Василий Вершинин

  • *****
  • Сообщений: 3 713
  • Благодарностей: 122
  • Per anus ad astra
    • Skype - vasiliy_vershinin
    • Сообщения от Василий Вершинин
Re: 33 мегапикселя на ладони
« Ответ #549 : 15 Дек 2015 [19:43:24] »
В даташит. Там должны быть шумовые характеристики. Вот тут для кодака есть http://www.onsemi.com/pub_link/Collateral/EVBUM2257-D.PDF страница 18


« Последнее редактирование: 15 Дек 2015 [19:49:59] от Василий Вершинин »

Оффлайн Дмитрий Бучинский

  • *****
  • Сообщений: 603
  • Благодарностей: 25
  • ex. damian_1
    • Сообщения от Дмитрий Бучинский
Re: 33 мегапикселя на ладони
« Ответ #550 : 15 Дек 2015 [19:49:20] »
А что мешает попробовать разные варианты, и сравнить BIASы? Может там реальный выйгрыш по шумам будет таким мизером, что ради этого 45 сек на кадр ждать не стоит.
SW2001, самодельный USB мотофокус, MPCC, колесо DS 2", EOS 350Da, QHY8L @ NEQ6ST eqmod. Гид - кинопроекционник КО-140М ( 140/1.8 ) + DSI-Pro.
Доп: разные телевики + самодельное колесо фильтров с USB + QHY6.
Darkbox - термометр/термостат + пельтье холодильник для съемки правильных дарков.

andreichk

  • Гость
Re: 33 мегапикселя на ладони
« Ответ #551 : 17 Дек 2015 [01:59:59] »
День прошёл безрезультатно. написал процедурки для термодатчика, а он всё равно не отдаёт ничего. Осциллом смотрю, команды поступают, а в обратку только ФФ.

//=====================================================================================
//============= КОМАНДЫ УПРАВЛЕНИЯ ТЕРМОДАТЧИКОМ ======================================
//=====================================================================================
void commands( unsigned char reg, unsigned char comm ){
unsigned char byte = 0x00;

     status = flWriteChannel(handle, 1000, reg, 1, &comm, &error);//гоним байт команды в ФПГА
                                                               flSleep(100);
status = flWriteChannel(handle, 1000, reg, 1, &byte, &error);//обнуляем
}

void data_dallas( unsigned char reg, unsigned char bytes ){

status = flWriteChannel(handle, 1000, reg, 1, &bytes, &error);//гоним байт данных в ФПГА
//flSleep(100);
}

void reset_dallas(void){
                      commands( 0x01, 0x10 );//сброс термосенсора
}
void read_dallas(void){
                      commands( 0x01, 0x20 );//команда чтения
}
void write_dallas(void){
                      commands( 0x01, 0x40 );//команда записи
}

void write_data(unsigned char data ){

                      data_dallas( 0x0C, data );//данные на запись
                    write_dallas();  //команда записи
}


//===================================================================================
//========== ЧТЕНИЕ ТЕРМОДАТЧИКА DALLAS DS18B20 =====================================
//===================================================================================
void dallas_read( void ){
int i=0;
// ===== команды управления чтением данных с термодатчика DALLAS DS18B20 ===========

reset_dallas();  //сброс термосенсора
write_data(0xCC);//послать команду пропустить ROM
write_data(0x44);//послать команду температурного преобразования


                 flSleep(1000);

reset_dallas();  //сброс термосенсора
write_data(0xCC);//послать команду пропустить ROM
write_data(0xBE);//считать последовательно 9 байт оперативной памяти


  for ( i = 0; i < 9; i++) {
                        read_dallas();//команда ЧТЕНИЕ ПАМЯТИ 
                               }
}

Оффлайн Василий Вершинин

  • *****
  • Сообщений: 3 713
  • Благодарностей: 122
  • Per anus ad astra
    • Skype - vasiliy_vershinin
    • Сообщения от Василий Вершинин
Re: 33 мегапикселя на ладони
« Ответ #552 : 17 Дек 2015 [10:23:24] »
Может вывод на приём не переключается?

Оффлайн Mixa

  • *****
  • Сообщений: 721
  • Благодарностей: 31
    • Сообщения от Mixa
Re: 33 мегапикселя на ладони
« Ответ #553 : 17 Дек 2015 [12:16:17] »
Может вывод на приём не переключается?
Наверное, это можно проверить, воткнув в шину сопр и посмотреть, дергается ли что-то со стороны DS

andreichk

  • Гость
Re: 33 мегапикселя на ладони
« Ответ #554 : 17 Дек 2015 [12:34:16] »
Может вывод на приём не переключается?
Наверное, это можно проверить, воткнув в шину сопр и посмотреть, дергается ли что-то со стороны DS
сопротивление на землю ?

Оффлайн Василий Вершинин

  • *****
  • Сообщений: 3 713
  • Благодарностей: 122
  • Per anus ad astra
    • Skype - vasiliy_vershinin
    • Сообщения от Василий Вершинин
Re: 33 мегапикселя на ладони
« Ответ #555 : 17 Дек 2015 [12:47:50] »
кусок кода верхнего уровня в студию

andreichk

  • Гость
Re: 33 мегапикселя на ладони
« Ответ #556 : 17 Дек 2015 [13:39:57] »
кусок кода верхнего уровня в студию
я ж приводил уже, а ты даже цитировал его.. правда я там уже дописал чего-то, но это тогда дома буду.

Оффлайн Василий Вершинин

  • *****
  • Сообщений: 3 713
  • Благодарностей: 122
  • Per anus ad astra
    • Skype - vasiliy_vershinin
    • Сообщения от Василий Вершинин
Re: 33 мегапикселя на ладони
« Ответ #557 : 17 Дек 2015 [14:24:16] »
Я там не нашел явного перевода выхода в HiZ по условию начала приема данных от датчика

Оффлайн Mixa

  • *****
  • Сообщений: 721
  • Благодарностей: 31
    • Сообщения от Mixa
Re: 33 мегапикселя на ладони
« Ответ #558 : 17 Дек 2015 [14:37:09] »
Может вывод на приём не переключается?
Наверное, это можно проверить, воткнув в шину сопр и посмотреть, дергается ли что-то со стороны DS
сопротивление на землю ?
Не, в разрыв, мелкое, чтоб подтяжку не искажало.

andreichk

  • Гость
Re: 33 мегапикселя на ладони
« Ответ #559 : 17 Дек 2015 [14:38:58] »
Я там не нашел явного перевода выхода в HiZ по условию начала приема данных от датчика
я подозреваю, что не сделал этого, дома проверю
bus<=myoutdata when RD='1' else (others=>'Z');
myindata<=bus;
это вот это оно?

на верилоге типа так должно выглядеть
 wire bus  =   ( RD )  ? myoutdata :   8'bzzzzzzzz;
« Последнее редактирование: 17 Дек 2015 [14:44:17] от Andreichk »