Перейти к содержанию
    

McSava

Свой
  • Постов

    317
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные McSava


  1. Можно замените USB микросхему с весрии 2.0 на 3.0. Повысить разрядность/быстродействие АЦП или количество каналов. Добавить ЦАП или еще какую нибудь фишку. Это для того чтоб использовать наработки.

    Можно добавить WiFi и использовать экран самртфона для вывода информации.

  2. У меня сотрудники ругались когда-то за подобную ерунду с монтажниками. Оказалось они в флюс добавляют глицерин, чтоб лучше "блястело".

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

    Но это было уже давно. И этой конторы больше нет. Поспрашивайте у своих монтажников, может там у кого-то генетическая память осталась.

  3. Не по теме. К замечаниям о качестве платы.

    Но я вспоминаю свою первую плату сделанную от руки, и потом напечатанную через ЛУТ.

    Не говоря уже о платах заказанных на заводе и спаянных проф монтажниками или на линии.

    Сейчас я скажу, что это был ужас. А тогда это была моя первая САМОСТОЯТЕЛЬНАЯ плата.

    Абсолютно негативными комментариями можно убить любые начинания и желания развиваться у человека.

     

    Вводных данных для совета было мало. Поэтому сразу накинулись на качество платы и монтажа.

    На будущее можно посоветовать автору темы более подробно описать как не работает и какие действия проведены.

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

     

     

  4. Какой именно ответственный режим? Сейчас есть модули GSM с функцией e-Call. Но там задача дозвонится на номер 112. И он идёт как экстренный, без денег на счёте и даже в чужой сети.

  5. Делать заземление или отодвигать подальше от батарей приборы - каждый решает сам.

    Мне вспоминается случай из морга, когда мы забирали родственника, а там "гулял" мальчик лет шести-семи и ждал пока врачи найдут контакты каких-нибудь родственников. Так как его отца убило при мойке полов на кухне.

  6. Нужно сделать csv-файл

    в котором указать номер по порядку для каждой стороны, Имя, Номер в корпусе, Тип, Сторону установки, Инвертирование

    При этом нужно следить за тем, что сторона Top - это 0, Bottom - 1, Left -2, Right -3.

    Иначе потом на этапе втягивания выдаст ошибку.

    В help данная информация есть.

    Pin Order,Pin Label,Pin Number,Pin Type,Side,Inverted
    T1,VCORE_12,12,POWER,0,FALSE
    T2,VCORE_37,37,POWER,0,FALSE
    T3,VCORE_64,64,POWER,0,FALSE
    T4,VCCIO_20,20,POWER,0,FALSE
    T5,VCCIO_31,31,POWER,0,FALSE
    T6,VCCIO_42,42,POWER,0,FALSE
    T7,VCCIO_56,56,POWER,0,FALSE
    T8,VPLL,9,POWER,0,FALSE
    T9,VPHY,4,POWER,0,FALSE
    T10,VREGIN,50,POWER,0,FALSE
    B1,AGND,10,Ground,1,FALSE
    B2,GND_1,1,Ground,1,FALSE
    B3,GND_5,5,Ground,1,FALSE
    B4,GND_11,11,Ground,1,FALSE
    B5,GND_15,15,Ground,1,FALSE
    B6,GND_25,25,Ground,1,FALSE
    B7,GND_35,35,Ground,1,FALSE
    B8,GND_47,47,Ground,1,FALSE
    B9,GND_51,51,Ground,1,FALSE
    L1,OSCI,2,IN,2,FALSE
    L2,DM,7,BI,2,FALSE
    L3,DP,8,BI,2,FALSE
    L5,RESET#,14,IN,2,TRUE
    L6,TEST,13,IN,2,FALSE
    R1,VREGOUT,49,POWER,3,FALSE
    R2,PWREN#,60,OUT,3,TRUE
    R3,SUSPEND#,36,OUT,3,TRUE
    R4,EECS,63,OUT,3,FALSE
    R5,EECLK,62,OUT,3,FALSE
    R6,EEDATA,61,BI,3,FALSE
    R7,OSCO,3,OUT,3,FALSE
    R8,REF,6,OUT,3,FALSE

  7. здравствуйте! к expeditionPcb может быть прикручена прекрасная утилита 3DPCBViewer, но к сожалению экспорта из нее не нашел. можно ли как-нибудь выгрузить платку в step, чтобы механикам проще было ее в корпус упаковать?

    В 7.9.5 такого не было.

    Там информация для экспорта бралась из данных Placement Outline.

     

    В новой версии обещают сделать более удобный импорт/экспорт.

  8. Переходных отверстий на термопаде может быть 20 штук и более. Поэтому токи распределятся там параллельно.

    ЛМК может служить как простым разветвителем, так и и меть встроенный VCO или PLL для получения нужной частоты.

    На картинке видно рядом с микросхемой два генератора. И если на LMK они умножаются, то может быть есть возможность умножать их в АЦП.

    аппаратная и проектная.

     

  9. Можно тактовый сигнал провести во внутреннм слое под микросхемой АЦП. Если под ней есть переходные отверстия на землю, то в слое где ведём клок, убираем кольца переходных отверстий (только на пути сигнала). И сможем провести тактовый сигнал.

     

    Кстати, на вход АЦП подаётся 864 МГц. Может в ней есть встроенная PLL и можно подавать сигнал меньшей частоты?

  10. Есть вариант - работать на 400, и иметь 8 сигналов разрешения, сдвинутых на такт друг от друга - вот это будет точно.

    А если настроить pll на 400 запуститься?

    Если поднять частоту до 400 наверно не будет работать, максимальная частота 175 для ep1c3-8

     

    Для 8 максимальная частота 275 МГц

     

    Если PLL позволяет сделать два вывода, то можно попытаться сделать два сигнала 200 сдвинутые на 45 градусов.

    Ими питать разные части схемы и используя сигналы разрешения выбирать фазу.

     

    Если нужна внутрення память, то дальше будет хуже - память поддерживается только до частоты ~197МГц.

    Так что выход или менять микросхему/семейство или менять струтуру проекта, чтоб её можно было подогнать под доступные ресурсы.

  11. ..на 100 МГЦ? не было никогда проблем с разводкой 100 Мгц цифры

    Умеючи можно и постоянку запороть.

     

    А для аналоговой части нужно быть аккуратным. 16 бит при размахе 2,2В пик-пик дают 33 мкВ.

    Тут можно и тактовую словить в спектре и сами данные из цифры. И еще много чего. Но обычно достаточно вникнуть в рекомендации на проектирование схемы и платы от производителя.

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

    Особенно если у нас беспроводная система передачи данных. Сжатие производить здесь же возле камеры.

    Можно подводить широкополосную магистраль к объёкту съёмки.

    Но можно обеспечить распознавание момента когда нужно передавать картинку в хорошем качестве, а когда достаточно мониторинга работоспособности системы.

    Это позволит существенно сэкономить на количестве передаваемых данных. Камеры с интефейсами проводными (Ethernet) и беспроводными (WiFi) есть, помимо SD карточных. Есть с хорошим качеством картинки.

    С ИК-подсветкой, HDR, распознованием зоны ответсвенности, зоны записи и прочими наворотами.

    Вот только устроит ли цена на это всё?

     

     

     

  13. Помимо пропайки всей схемы

     

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

    Не забудте пропаять контакты переменных резисторов в регилировке громкости и тембра (если есть). Они тоже могут быть не пропаяны.

     

     

     

  14. Скажите кто как обычно делает: оставляет настройки Gerber Machine Format по умолчанию или меняет параметры, если да то какие лучше выставить?

     

    Настрйки изменяю в соответствии с требованиями производителя.

    Ну и в мм не всегда хватает 2 разряда целых для больших плат.

     

    По поводу ошибки. Когда-то, перед формироваинием GERBER файлов, я не зафиксировал все цепи.

    Открыл проект, а в нём был включен режим Gloss. Сдвинулась дорожка и переходное отверстие.

    Я не сделал перезаливку полигонов, то ли обычных, то ли негативных.

    И получил КЗ на внутренний слой.

    Это было в версии ЕЕ2005, но проблема была в моей версии :)

     

     

    Глазами я это не увидел. Про проверку цепей в CAM (IPC-356) узнал уже после прихода плат.

    Думал, что проверки на DRC достаточно.

     

    За некорректное отображение в CAM не скажу, я не в курсе этого.

    Но когда-то производитель запорол платы. Прислал с кружечками от ПО разбросанными по всей плате.

    Платы переделывали.

     

  15. Тут еще нужно учесть интерфейс самого АЦП. На 100 МГц есть паралельные, последовательные (LVDS) их сочетания и есть еще с гигабитными сигналами JESD204(A, B). Есть ли SPI я не в курсе.

    На NXP отладочной плате была возможность накапливать данные в буфере самой микросхемы АЦП 1024 отсчёта и выкачивать их через SPI в USB переходник.

    Может такой вариант вам подойдёт. Ну и процессоры тоже могут быть с поддержкой JESD204. Правда я таких не знаю.

  16. Не буду вас отговаривать от желания написать всё самому. С ядром тоже если, что придётся разбираться. Но у него есть модель для ModelSim.

     

     

    по конфигурационным регистрам могу дать часть кода на verilog от Lattice.

    Они делают что-то подобное. Но хочу предупредить, что код был учебный и в ходе учебы его чуток подправили (мне достался уже такой).

     

    Ядро не работало с некоторыми материнками на VIA процессоре и чипсете (Embedded) и не заводилось на некоторых современных платах с Intel Core-i3/5/7.

    Поэтому перешли на PCI Mega Wizard от Altera.

     

    Здесь в коде по IO-map запрашивается 4К памяти. Хотя PCI от Altera ограничивает на IO всего 256 регистров.

    Какие еще есть подводные камни, я не в курсе.

     

    // --------------------------------------------------------------------
    // >>>>>>>>>>>>>>>>>>>>>>>>> COPYRIGHT NOTICE <<<<<<<<<<<<<<<<<<<<<<<<<
    // --------------------------------------------------------------------
    // Copyright © 2001 by Lattice Semiconductor Corporation
    // --------------------------------------------------------------------
    
    //
    // Permission:
    //
    //   Lattice Semiconductor grants permission to use this code for use
    //   in synthesis for any Lattice programmable logic product.  Other
    //   use of this code, including the selling or duplication of any
    //   portion is strictly prohibited.
    //
    // Disclaimer:
    //
    //   This VHDL or Verilog source code is intended as a design reference
    //   which illustrates how these types of functions can be implemented.
    //   It is the user's responsibility to verify their design for
    //   consistency and functionality through the use of formal
    //   verification methods.  Lattice Semiconductor provides no warranty
    //   regarding the use or functionality of this code.
    //
    // --------------------------------------------------------------------
    //		   
    //					 Lattice Semiconductor Corporation
    //					 5555 NE Moore Court
    //					 Hillsboro, OR 97214
    //					 U.S.A
    //
    //					 TEL: 1-800-Lattice (USA and Canada)
    //						  408-826-6000 (other locations)
    //
    //					 web: http://www.latticesemi.com/
    //					 email: [email protected]
    //
    // --------------------------------------------------------------------
    // Revision History :
    // --------------------------------------------------------------------
    //   Ver  :| Author			:| Mod. Date :| Changes Made:
    //   v1.0 :| D.S.			  :| 12/08/98  :| Initial Creation
    // --------------------------------------------------------------------
    //
    //	Module  config_mux
    // This block implements the PCI target configuration registers, and
    // the PCI data output MUX.  It controls when data gets written into the
    // configuration registers, and what data gets presented onto the output
    // data bus (pci_dat_out) during reads.
    //
    // Note:  The read values for the base address registers are set in this
    //		block.  BA0 & BA1 always return the size of the memory block for the
    //		backend app. when read. 
    //
    
    module config_mux (pci_dat_out, ba0_size, ba1_size, bkend_dat_in, 
    			   pci_dat, pci_cbe_l, pci_addr, pci_rst_l, 
    	   abort_sig, pci_clk, com, cbe_reg_l, 
    	   idsel_reg, ba0_en, ba1_en, pci_irdy_l,
    	   //JO ADD
    	   ba0_rw_reg, ba1_rw_reg
    	   //END JO ADD
    	   );
    
     output [31:0] pci_dat_out; // the pci output data bus
     output [31:4] ba0_size; // The address space required for ba0
     output [31:4] ba1_size; // The address space required for ba1
     output [2:0] com; // The Mem - I/O enable bits of the command reg
     output ba1_en, ba0_en;
    
     input pci_irdy_l;
     input [3:0] cbe_reg_l;
     input idsel_reg;
     input [31:0] bkend_dat_in; // back end data in
     input [7:0] pci_addr;
     input [31:0] pci_dat; // pci data
     input [3:0] pci_cbe_l; // byte enables in
    
     input pci_rst_l; // async reset
     input abort_sig; // state machine is aborting set status
     input pci_clk; 
     //JO ADD
     input [31:0] ba0_rw_reg; 
     input [31:0] ba1_rw_reg;
     //END JO ADD
    
    /******************************************************************/
    // reg declarations
    reg [7:0] int_line; // r/w interupt line register
    reg [31:0] pci_dat_out; // output data bus
    reg [31:0] cfg_dat_out; // output data bus
    reg [2:0] com; // The command register
    reg stat11; // The status register bit for signaled target abort
    reg stat_com_en;
    reg int_line_en;
    reg ba1_en;
    reg ba0_en;
    
    wire cfg_en;
    reg cfg_out;
    
    /******************************************************************/
    
    
    // The following parameters set the values for the read only 
    // configuration registers.
    
    /******************************************************************/
    /************	Start Reg 00h Section			  ***************/
    /******************************************************************/
    // reg 00h (DevID/VendorID)
    parameter	DEVICE_ID	 = 16'hBEEF; // BEEF :)))
    parameter	VENDOR_ID	 = 16'hDEAD; // DEAD :)))
    /******************************************************************/
    /************	End Reg 00h Section			  *****************/
    /******************************************************************/
    
    
    /******************************************************************/
    /************	Start Reg 04h Section			  ***************/
    /******************************************************************/
    //reg 04h (status/command) 
    
    // The only bits used in this section are status[11:9] 
    // Command[1:0] The rest are all disabled to 0 at the Mux inputs
    
    // `defines used for devsel
    `define fast	2'b00
    `define medium  2'b01
    `define slow	2'b10
    parameter DEV_SEL = `medium; // medium devsel timing
    
    // The creation of the status and Command Registers
    always @ (posedge pci_clk or negedge pci_rst_l)
     if (pci_rst_l == 1'b0) begin 
     com <= 3'b000; // disable I/O and MEM space accesses.
     stat11 <= 1'b0; // reset target abort status bit
     end
     else if (stat_com_en == 1'b1) begin 
      if (!pci_cbe_l[0])  // check to see if byte lane is enabled
    	com <= pci_dat[2:0]; 
      else
    	com <= com;
      if (!pci_cbe_l[3] && pci_dat[27]) // check to see if byte lane is enabled
    	stat11 <= 0; // write a 1 clears this bit
      else
    	stat11 <= stat11;	
     end 
     else if (abort_sig == 1'b1) begin 
     stat11 <= 1'b1; // set target abort status bit
     com <= com;
     end 
     else begin 
    stat11 <= stat11;
    com <= com;
     end
    /******************************************************************/
    /************	End Reg 04h Section			  *****************/
    /******************************************************************/
    
    
    
    /******************************************************************/
    /************	Start Reg 08h Section			  ***************/
    /******************************************************************/
    // reg 08h (Class/revision)
    parameter	CLASS_CODE	= 24'h058000;	// Memory Controller 
    parameter	REVISION_ID   =  8'h01;		// Rev. 01
    /******************************************************************/
    /************	End Reg 08h Section			  *****************/
    /******************************************************************/
    
    
    
    /******************************************************************/
    /************	Start Reg 0Ch Section			  ***************/
    /******************************************************************/
    // reg 0Ch (Misc Functions)
    // No BIST, Type 00 header, Ignore Cachelinesize, No Latency Set,
    parameter MISC_FUNCTIONS = 32'h00002000;
    
    /******************************************************************/
    /************	End Reg 0Ch Section			  *****************/
    /******************************************************************/
    
    
    
    
    /******************************************************************/
    /************  Start Base Address Defines Section   ***************/
    /******************************************************************/
    
    // Base address registers. 
    // The Following `defines are used in the Base Address Parameters
    // To set if the Back End Device is:
    //   -User I/O or Memory
    //   -Where it is locatated in the address map
    //   -If the backend device is prefetchable
    //   -How much address space it requires
    
    `define MEM_ON		 1'b0
    `define IO_ON		  1'b1
    
    `define ANYWHERE_IN_32 2'b00
    `define BELOW_1M	   2'b01
    `define ANYWHERE_IN_64 2'b10
    
    `define PREFETCH_ON	1'b1
    `define PREFETCH_OFF   1'b0
    
    `define ADDR_2G	 28'h8000_000
    `define ADDR_1G	 28'hC000_000
    `define ADDR_512M   28'hE000_000
    `define ADDR_256M   28'hF000_000
    `define ADDR_128M   28'hF800_000
    `define ADDR_64M	28'hFC00_000
    `define ADDR_32M	28'hFE00_000
    `define ADDR_16M	28'hFF00_000
    `define ADDR_8M	 28'hFF80_000
    `define ADDR_4M	 28'hFFC0_000
    `define ADDR_2M	 28'hFFE0_000
    `define ADDR_1M	 28'hFFF0_000
    `define ADDR_512K   28'hFFF8_000
    `define ADDR_256K   28'hFFFC_000
    `define ADDR_128K   28'hFFFE_000
    `define ADDR_64K	28'hFFFF_000
    `define ADDR_32K	28'hFFFF_800
    `define ADDR_16K	28'hFFFF_C00
    `define ADDR_8K	 28'hFFFF_E00
    `define ADDR_4K	 28'hFFFF_F00
    `define ADDR_2K	 28'hFFFF_F80
    `define ADDR_1K	 28'hFFFF_FC0
    `define ADDR_512	28'hFFFF_FE0
    `define ADDR_256	28'hFFFF_FF0
    `define ADDR_128	28'hFFFF_FF8
    `define ADDR_64	 28'hFFFF_FFC
    `define ADDR_32	 28'hFFFF_FFE
    `define ADDR_16	 28'hFFFF_FFF
    
    /******************************************************************/
    /************  End Base Address Defines Section   ***************/
    /******************************************************************/
    
    
    
    /******************************************************************/
    /************	Start Reg 10h Section		   ***************/
    /******************************************************************/
    // reg 10h (Base Address 0) BA0 Using `defines from above
    parameter [31:0] BA0 = {`ADDR_4K,`PREFETCH_OFF,`ANYWHERE_IN_32,`IO_ON};
    assign ba0_size = BA0[31:4]; // Used to decode hit_ba0_l
    /******************************************************************/
    /************	End Reg 10h Section			  *****************/
    /******************************************************************/
    
    
    
    /******************************************************************/
    /************	Start Reg 14h Section			 ***************/
    /******************************************************************/
    // reg 14h (Base Address 1) BA1 Using `defines from above
    parameter [31:0] BA1 = {`ADDR_1M,`PREFETCH_OFF,`ANYWHERE_IN_32,`MEM_ON};
    assign ba1_size = BA1[31:4]; // Used to decode hit_ba1_l
    /******************************************************************/
    /************	End Reg 14h Section			  *****************/
    /******************************************************************/
    
    
    /******************************************************************/
    /************	Start Reg 2C Section			   ***************/
    /******************************************************************/
    // reg 2Ch (SubsystemID/Subsystem VendorID)
    parameter	SUB_SYSTEM_ID = 16'hBEEF; // Govyadina
    parameter	SUB_VENDOR_ID = 16'hDEAD; // Set to AMD
    /******************************************************************/
    /************	End Reg 2Ch Section			  *****************/
    /******************************************************************/
    
    
    
    /******************************************************************/
    /************	Start Reg 3C Section			   ***************/
    /******************************************************************/
    // reg 3C (Max_Lat/Min_Gnt/Interrupt Pin/ Interupt Line)
    // Interupt Pin is set to 1 corresponding to inta_l
    
    parameter INT_PIN = 8'h01;
    parameter MIN_GNT = 8'h2A;
    
    // The int_line reg is defined here
    // The software will write to this register
    // to set the system IRQ used for the interrupt
    always @ (posedge pci_clk or negedge pci_rst_l)
     if (pci_rst_l == 1'b0) begin 
    int_line = 8'h00;
     end 
     else if (int_line_en && !pci_cbe_l[0] ) begin // check byte enables
    int_line = pci_dat[7:0];
     end
     else begin 
    int_line = int_line;	
     end
    // Max_Lat & Min_Gnt are not implemented so they are 0's in Mux
    /******************************************************************/
    /************	End Reg 3Ch Section			  *****************/
    /******************************************************************/
    
    /******************************************************************/
    /************	Start Write Enable section		 ***************/
    /******************************************************************/
    
    `define write_04 (pci_addr[7:0] == 8'h04)
    `define write_10 (pci_addr[7:0] == 8'h10)
    `define write_14 (pci_addr[7:0] == 8'h14)
    `define write_3C (pci_addr[7:0] == 8'h3C)
    
    assign cfg_en = (cbe_reg_l == 4'b1011 && idsel_reg == 1'b1) ? 1'b1 : 1'b0;
    
    always @ (cfg_en or pci_irdy_l or pci_addr[7:0])
    begin 
     if (cfg_en && !pci_irdy_l) begin 
    if (`write_04) begin 
      stat_com_en <= #1 1;
      ba0_en <= #1 0;
      ba1_en <= #1 0;
      int_line_en <= #1 0;
      end
    else if (`write_10) begin 
      ba0_en <= #1 1;
      stat_com_en <= #1 0;
      ba1_en <= #1 0;
      int_line_en <= #1 0;
      end
    else if (`write_14) begin 
      ba1_en <= #1 1;
      stat_com_en <= #1 0;
      ba0_en <= #1 0;
      int_line_en <= #1 0;
      end
    else if (`write_3C) begin 
      int_line_en <= #1 1;
      stat_com_en <= #1 0;
      ba0_en <= #1 0;
      ba1_en <= #1 0;
      end
    else begin 
      stat_com_en <= #1 0;
      ba0_en <= #1 0;
      ba1_en <= #1 0;
      int_line_en <= #1 0;
    end
     end
     else begin 
      stat_com_en <= #1 0;
      ba0_en <= #1 0;
      ba1_en <= #1 0;
      int_line_en <= #1 0;
     end
    end
    
    
    
    
    /******************************************************************/
    /************	Start Output Mux Section		   ***************/
    /******************************************************************/
    
    
    always @ (posedge pci_clk or negedge pci_rst_l)
     begin 
    if (!pci_rst_l) begin 
    cfg_out <= #1 1'b0;
      end
      else if (cbe_reg_l == 4'b1010) begin 
    cfg_out <= #1 1'b1;
      end
      else begin
    	cfg_out <= #1 1'b0;
      end
     end
    
    always @ (cfg_dat_out or bkend_dat_in or cfg_out)
    begin 
     if (cfg_out) begin 
      pci_dat_out <= #1 cfg_dat_out;
    end
     else
    begin 
      pci_dat_out <= #1 bkend_dat_in[31:0];	
    end
    end
    
    
    
    
    always @ (posedge pci_clk or negedge pci_rst_l)
    begin 
     if (!pci_rst_l) begin 
    	cfg_dat_out <= #1 32'b0; // zero at reset
      end
      else begin 
    //JO MOD decode from pci_addr[5:2] to [7:2] (256 byte)
    case (pci_addr [7:2])
      6'b0000_00: cfg_dat_out <= #1 {DEVICE_ID,VENDOR_ID};// reg 00h (DevID/VendorID)
      6'b0000_01: cfg_dat_out <= #1 {4'b0,stat11,DEV_SEL,9'b0,13'b0,com};//reg 04h (status/command)
      6'b0000_10: cfg_dat_out <= #1 {CLASS_CODE,REVISION_ID}; // reg 08h (Class/revision)
      6'b0000_11: cfg_dat_out <= #1 MISC_FUNCTIONS; // reg 0Ch (Misc Functions);
      //JO MOD
      //4'b01_00: cfg_dat_out <= #1 BA0; // reg 10h (Base Address 0);
      6'b0001_00: cfg_dat_out <= #1 {ba0_rw_reg[31:4], 4'b1111} & BA0;
      //4'b01_01: cfg_dat_out <= #1 BA1; // reg 14h (Base Address 1);
      6'b0001_01: cfg_dat_out <= #1 {ba1_rw_reg[31:4], 4'b1111} &  BA1;
      //END JO MOD
      6'b0010_11: cfg_dat_out <= #1 {SUB_SYSTEM_ID,SUB_VENDOR_ID}; // reg 2Ch (SubsystemID/Subsystem VendorID);
      6'b0011_11: cfg_dat_out <= #1 {8'b0,MIN_GNT,INT_PIN,int_line}; // reg 3C (Max_Lat/Min_Gnt/Interrupt Pin/ Interupt Line);
      default:  cfg_dat_out <= #1 32'b0; // unimplemented return 0's;
    endcase
      end
    
    end
    
    
    
    /******************************************************************/
    /************	End Output Mux Section		   ***************/
    /******************************************************************/
    
    
    endmodule //of config_mux
    

  17. Нужно реализовать BAR0 описывающий адресное пространство памяти размером 0х3С

    Адресация у вас делается по байтам или по 32 разрядным регистрам?

     

    У Altera в PCI Mega Wizard для Memory BAR нельзя откусить меньше 1K (0xFFFFFC00) адресного пространства. Сейчас точно не скажу, но в ситеме при выделении вашему устройтсву памяти диапазон адресов также выравнивается по 4К адресации. То есть ужиматься до 3С смысла нет.

     

    Про вычисления 26 и 6 бит не совсем понял. Вы делаете описание конфигурационных регистров руками?

     

    В устройстве мы можем пользоваться полноценными 32 разрядными регистрами и писать и читать сразу 32 бита. При желании можно и 8, 16 и 24 бита читать/писать.

     

  18. Может повторюсь. Но как-то была проблема с Gygabyte-ными матерями и нашим устройством. При выходе 43/45 чипсета (на 775 сокете) отваливалось наше устройство. До этого плата везде работала. Грешили на свой контроллер (тода еще PCI через мост). Помогла перепрошивка БИОСа.

    Так что если там вчера работало, а тут сегодня нет. Я первым делом лезу на сайт за обновляшками.

  19. В дешевом ЛА на 100 МГц можно запустить только два или три канала.

    Если посмотреть в FPGA, то есть Logic Analyzer у Altera или ChipScope у Xilinx.

    У них свои ограничения на количество данных, но перебором можно отловить ситуацию, что происходит на шине.

    Но это если нужно сэкономить и выкрутится. Если есть возможность, то я бы иногда не отказался от хорошего ЛА.

  20. Две частоты мы увидим после обработки - перевода сигнала в частотную область.

    Говорить, что сигнал в данный конкретный отсчёт содержит две гармоники немного не корректно, так как две гармоники у нас появляются через какое-то время накопления (количество отсчетов для преобразования Фурье).

    если грубо, то по одной точке судить о частоте нельзя.

  21. Из тех, что подороже - ещё вот такой предлагают. За 100 зелёных бумажек. Что, кстати, за него думаете?

    У нас на работе аналог https://www.saleae.com/logic16 за ~35$. с алиэкспресса. За свои деньги он нормалный вариант. Тем более что местные его продавали за 100$.

     

     

     

  22. Здравствуйте.

    Подскажите пожалуйста, как можно вывести Bill of Materials отдельно по слоям топ и бот? Ну то есть чтобы было в идеале 2 файла, один с компонентами на слое Топ, второй с компонентами на слое Бот.

     

    Можно еще в Expedition PCB меню File > Export > General Interfaces в котором нужно выбрать Generic AIS c указанием Part Number или Part label.

    Он выдаст таблицу координат посадочных мест с указанием стороны установки.

    C66                              CC0402-KR-X5R-5BB-104            0.00       53.40      70.60      TOP        NO
    U8                               PEF22552                         0.00       110.00     63.00      TOP        NO
    C28                              CC0402-KR-X7R-9BB-103            270.00     60.35      36.30      BOTTOM     YES
    R16                              RC0603FR-074K99                  270.00     70.90      80.60      TOP        NO
    C30                              CC0402-KR-X7R-9BB-103            270.00     62.35      36.30      BOTTOM     YES

     

    Потом можно втянуть в табличный редактор и удалить не нужные колнки и отсортировать по сторонам верх и низ.

     

    Это на случай если в Report Writer не найдётся подобного.

  23. Подскажите, пожалуйста, по Вашему опыту, как Вы выбираете - устанавливать на микросхему (или транзистор) радиатор или для ее охлаждения достаточно отвода тепла на плату? При какой выделяемой тепловой мощности достаточно охлаждения на плату, а когда уже требуется радиатор?

    Обычно читаю документацию. Если узрел до проектирования - хорошо, если по факту нагрева -хуже. Те микросхемы которые мы используем все идут с рекомендациями относительно проектирования посадочного места и отвода тепла. В том числе отвода тепла на площадь платы. Такие микросхемы удобнее тем, что не нужны дополнительные заказыне радиаторы.

    Если греющийся элемент это ПЛИС или АЦП, то там иногда подстраховываемся закладывая крепления под радиатор, а иногда предварительная компиляция проекта указывает, что на таких скоростях с такой загрузкой микросхемы использовать её без радиатора не рекомендуется. Как показывает практика - микросхема уходит в защиту или отваливается системная шина и виснет вся систма.

     

    Есть инструменты по расчету тепловіделения на плате. У Mentor Graphics это HyperLynx Thermal и FloTERM.

    Там есть возможность посмотреть как греется компоненты на плате и как греется плата в корпусе с учётом обдува и расположения других плат и блоков. Но там нужно хорошо разбираться какие данные вводим.

  24. Посмотрите на маркировку на корпусе. Может у вас версия с подстраиваемымм напряжением. Мало ли, перепутали.

    Для 3,0 В должно L02A (3.3 - L00A)

    Подстаиваемая версия - L06B.

     

    Если её мало по току, то в таком же корпусе есть LP3990MF она на 150 мА.

×
×
  • Создать...