micropci v1 - faculdade de engenharia da universidade do portoee00013/micropci/files/micropc... ·...

24
MICROPCI V1.1 INTERFACE PCI - MANUAL DE UTILIZA¸ C ˜ AO Oct´ avio C´ esar Martins Pinto [email protected] Departamento de Engenharia Electrot´ ecnica e de Computadores 2 a Edi¸ ao, Maio 2006 - Rev. 1.0

Upload: others

Post on 30-Jan-2021

0 views

Category:

Documents


0 download

TRANSCRIPT

  • MICROPCI V1.1INTERFACE PCI - MANUAL DE UTILIZAÇÃO

    Octávio César Martins [email protected]

    Departamento de Engenharia Electrotécnica e de Computadores2a Edição, Maio 2006 - Rev. 1.0

  • Conteúdo

    1 Introdução ao MICROPCI 1

    2 Constituição e caracteŕısticas 22.1 Conectores da interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

    2.1.1 Alimentação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22.1.2 Conector de ligação a CORE51 . . . . . . . . . . . . . . . . . . . . . . . . . . . 32.1.3 Conector genérico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42.1.4 Conector PCI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

    2.2 Configuração dos jumpers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.3 Cabos de ligações . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

    2.3.1 Flat Cable de 40 pinos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.3.2 Flat Cable de 20 pinos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.3.3 Power Cable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

    3 Modo de funcionamento 83.1 Escrita série e directa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103.2 Leitura série e directa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

    4 Modificações do MICROPCIv1.0 12

    A Hardware da interface MICROPCI 14A.1 PCB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14A.2 Lista de Componentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15A.3 Esquema Eléctrico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

    B Caracteŕısticas gerais do shift register 74xxx299 18

    C Aspectos sobre futuros melhoramento da interface 21

    ii

  • Caṕıtulo 1

    Introdução ao MICROPCI

    A interface MICROPCI é resultado de um projecto de fim de curso de Engenharia Electrotécnica,desenvolvido pelo aluno Octávio César Martins Pinto. A interface MICROPCI é uma interface PCIde 32 bits para microcontroladores de 8bits.

    Este documento é um manual de utilização da interface MICROPCI, descrevendo a suas caracteŕıs-ticas, e o modo de utilização da mesma.

    Figura 1.1: MicroPCI v1.1

    1

  • Caṕıtulo 2

    Constituição e caracteŕısticas

    O MICROPCI é uma interface geral para acesso e controlo do barramento PCI com alimentaçãoprópria, através de um sistema microcontrolado ou outro. Para isso existe dois conectores principaispara ligação destes sistemas que estão descritos nas secções seguintes.

    2.1 Conectores da interface

    Figura 2.1: Conectores da interface

    2.1.1 Alimentação

    Figura 2.2: Conector de alimentação DC

    2

  • O conector da alimentação permite a ligação de uma Fonte DC entre 6.5V e 18V. Este conectortem protecção contra inversão de polaridade, mas só funciona tendo a polaridade correctamente ligada!É recomendado utilizar uma tensão de alimentação da ordem dos 9V, para evitar sobreaquecimentodos reguladores de tensão.

    Existe um LED (Vermelho) que quando ligado indica que a interface está correctamente ligada.

    2.1.2 Conector de ligação a CORE51

    A interface disponibiliza um conector de ligação directa à CORE51, facilitando o desenvolvimentode software para microcontrolador de 8 bits. Este é um conector de 40 pinos, mas só alguns dos sinaissão utilizados.

    Figura 2.3: Conector de ligação a CORE51 (40 pinos)

    Pino 8051 Sinal Sinal Descrição Pino 8051 Sinal Sinal Descrição

    1 P1.0 PCI CLK CLOCK do barramento PCI 40 VCC - -2 P1.1 S IN Serial INPUT - shifts registers 39 P0.0(AD0) - -3 P1.2 DEVSEL# Sinal PCI - Device Select 38 P0.1(AD1) - -4 P1.3 TRDY# Sinal PCI - Target Ready 37 P0.2(AD2) - -5 P1.4 STOP# Sinal PCI - Stop transaction 36 P0.3(AD3) - -

    6 P1.5 OE Output Enable - shifts registers 35 P0.4(AD4) - -7 P1.6 PAR Sinal PCI - Parity 34 P0.5(AD5) - -8 P1.7 S1 Mode Select 1 - shifts registers 33 P0.6(AD6) - -9 RESET RST Reset - do barramento PCI 32 P0.7(AD7) - -

    10 P3.0(RxD) - - 31 EA/VPP - -

    11 P3.1(TxD) - - 30 ALE/PROG - -

    12 P3.2(INT0) INTB# Sinal PCI - Interrupt B (e D)a 29 PSEN - -13 P3.3(INT1) INTA# Sinal PCI - Interrupt A (e C)b 28 P2.7(A15) - -14 P3.4(T0) CLK CLOCK - shifts registers 27 P2.6(A14) - -15 P3.5(T1) S OUT Serial OUTPUT - shifts registers 26 P2.5(A13) - -

    16 P3.6(WR) - - 25 P2.4(A12) - -

    17 P3.7(RD) - - 24 P2.3(A11) - -18 - - - 23 P2.2(A10) - -19 - - - 22 P2.1(A9) - -20 GND GND Ground 21 P2.0(A8) - -

    aVer configuração do Jumper 2.bVer configuração do Jumper 1.

    Tabela 2.1: Definição dos sinais do conector de ligação à CORE51 de 40 pinos

    3

  • 2.1.3 Conector genérico

    Existe um outro conector de 20 pinos que disponibiliza a maior parte dos sinais do barramentoPCI e todos os sinais de controlo da interface. Este conector permite aceder a sinais que possam terrelevância em algumas aplicações.

    Figura 2.4: Conector genérico (20 pinos)

    Pino Sinal Descrição Ligação

    1 INTB# Sinal PCI - Interrupt B (e D)* barramento PCI com R=10k pull-up2 INTA# Sinal PCI - Interrupt A (e C)* barramento PCI com R=10k pull-up3 S OUT Serial OUTPUT - shifts registers shift register4 PAR Sinal PCI - Parity barramento PCI5 /CLR Clear - shifts registers shift register6 STOP# Sinal PCI - Stop transaction barramento PCI7 PERR# Sinal PCI - Parity Error barramento PCI8 S IN Serial INPUT - shifts registers shift register9 PCI CLK CLOCK do barramento PCI barramento PCI10 PRSNT2# Sinal PCI - Device Present 2 barramento PCI com R=10k pull-up11 PRSNT1# Sinal PCI - Device Present 1 barramento PCI com R=10k pull-up12 GNT# Sinal PCI - Grant barramento PCI13 REQ# Sinal PCI - Request barramento PCI14 DEVSEL# Sinal PCI - Device Select barramento PCI15 TRDY# Sinal PCI - Target Ready barramento PCI16 SERR# Sinal PCI - System Error barramento PCI17 /OE Output Enable - shifts registers shifts registers18 S1 Mode Select 1 - shifts registers shifts registers19 CLK CLOCK - shifts registers shifts registers20 RST Reset - do barramento PCI via inversor para o barramento PCI

    Tabela 2.2: Definição dos sinais do conector geral de 20 pinos

    2.1.4 Conector PCI

    A interface foi desenvolvida em torno do conector PCI de 32bits/5V.

    Figura 2.5: Conector PCI de 32bits/5V (124 pinos)

    4

  • Figura 2.6: Descrição dos pinos do conector PCI

    Nota: Sinais do conector PCI que não foram usados na interface:

    • Sinais JTAG : A1-TRST#, A3-TMS, A4-TDI, B2-TCK, B4-TDO.

    • Sinais de POWER Management : A14-3.3Vaux, A19-PME#.

    • Todos os sinais “reserved”: A9, A11, A40, A41, B10, B14.

    • Sinais de expansão de 64bits : A60-REQ64#, B60-ACK64#.

    • Sinal B39-LOCK#

    5

  • 2.2 Configuração dos jumpers

    No MICROPCI existe apenas 2 jumpers, que permite aceder às interrupções INTC# e INTD# dobarramento PCI.

    Figura 2.7: Configuração dos Jumpers

    Jumper OFF ONJP1 INTA# INTA# e INTC#JP2 INTB# INTB# e INTD#

    Tabela 2.3: Definição dos Jumpers

    Sendo as sáıdas INTA#, INTB#, INTC# e INTD# open-drain, a ligação deste sinais foram agru-pados dois a dois para diminuir o número de sinais necessários. O circuito de ligações pode ser vistono esquema eléctrico da página 17 na figura A.5.

    Nota: Caso os jumpers estejam ON, para saber qual a interrupção que foi gerada é necessárioconsultar os registos internos de cada função do dispositivo PCI.

    2.3 Cabos de ligações

    2.3.1 Flat Cable de 40 pinos

    O cabo de 40 pinos permite a ligação directa à placa de desenvolvimento CORE51.

    Figura 2.8: Flat cable de ligação do MICROPCI à CORE51

    6

  • Na figura seguinte mostra-se a forma correcta da ligação do MicroPCI à CORE51

    Figura 2.9: Ligação entre MICROPCI e CORE51

    2.3.2 Flat Cable de 20 pinos

    O cabo de 20 pino permite a ligação dos sinais do MicroPCI à uma breadboard.

    Figura 2.10: Flat cable para ligação à breadboard

    2.3.3 Power Cable

    O cabo de alimentação permite alimentar a microPCI. Como já foi referido este poderá ligar a umafonte de alimentação DC externa de 6.5V - 18V.

    Figura 2.11: Cabo de Alimentação do MicroPCI

    Como está representado na figura 2.11 o conector preto é a massa, e o vermelho o conector positivo!(A inversão destes não danificará o MicroPCI, mas não funcionará até por correctamente os conectores.)

    7

  • Caṕıtulo 3

    Modo de funcionamento

    Sendo o barramento PCI constitúıdo por muitos sinais (32 de endereços/dados e 21 principais decontrolo), seria dif́ıcil ligar e controlar directamente através de pequenos microcontroladores, nomea-damente os de 8 bits. Esta interface foi, portanto, desenvolvida de modo a poder aceder à maior partedos sinais em modo série recorrendo a shifts registers universais de 8bits ligados em cadeia, ou sejapermitindo ler e escrever n vezes 8bits com apenas 5 sinais (Excluindo o ’clear’). Neste caso foramutilizado 5 shifts registers disponibilizando um total de 40bits.

    Figura 3.1: Representação lógica da cadeia dos 5 shifts registers usados na interface.

    Nota: As caracteŕısticas principais dos shifts register podem ser encontradas nos anexos B página18. Os sinais do barramento PCI, ao qual liga cada registo dos shifts registers, encontra-se na tabela3.1 na página 9.

    Na versão 1.1 da interface MICROPCI, o sinal S0, já não está dispońıvel nos conectores (Substitúıdopor PAR). Sendo que a cadeia de shifts registers só têm dois modos de funcionamento:

    1. Shift Right - A cada impulso de Clock, os 40 registos são deslocados no sentido de S IN paraS OUT.

    2. Parallel Load - A cada impulso de Clock, os 40 sinais são carregados para os registos.

    Por outro lado, o shift register U2, só funciona como output isto é o sinal OE só controla os buffersde sáıda de U1,U3,U4 e U5 que correspondem aos 32bits de AD.

    Nas secções seguintes, mostra-se como utilizar a cadeia de shifts registers, para escrever e ler sinaisdo barramento PCI.

    8

  • Shift Número Sinal Número SinalRegister do pino na cadeia PCI

    U1 7 A/QA ou I/O0 1 AD[31]U1 13 B/QB ou I/O1 2 AD[16]U1 6 C/QC ou I/O2 3 AD[29]U1 14 D/QD ou I/O3 4 AD[23]U1 5 E/QE ou I/O4 5 AD[25]U1 15 F/QF ou I/O5 6 AD[21]U1 4 G/QG ou I/O6 7 AD[27]U1 16 H/QH ou I/O7 8 AD[19]

    U2 7 A/QA ou I/O0 9 IDSELU2 13 B/QB ou I/O1 10 FRAME#U2 6 C/QC ou I/O2 11 -U2 14 D/QD ou I/O3 12 IRDY#U2 5 E/QE ou I/O4 13 C/BE[3]#U2 15 F/QF ou I/O5 14 C/BE[2]#U2 4 G/QG ou I/O6 15 C/BE[1]#U2 16 H/QH ou I/O7 16 C/BE[0]#

    U3 7 A/QA ou I/O0 17 AD[30]U3 13 B/QB ou I/O1 18 AD[28]U3 6 C/QC ou I/O2 19 AD[26]U3 14 D/QD ou I/O3 20 AD[24]U3 5 E/QE ou I/O4 21 AD[15]U3 15 F/QF ou I/O5 22 AD[22]U3 4 G/QG ou I/O6 23 AD[20]U3 16 H/QH ou I/O7 24 AD[18]

    U4 7 A/QA ou I/O0 25 AD[17]U4 13 B/QB ou I/O1 26 AD[8]U4 6 C/QC ou I/O2 27 AD[13]U4 14 D/QD ou I/O3 28 AD[10]U4 5 E/QE ou I/O4 29 AD[11]U4 15 F/QF ou I/O5 30 AD[12]U4 4 G/QG ou I/O6 31 AD[9]U4 16 H/QH ou I/O7 32 AD[14]

    U5 7 A/QA ou I/O0 33 AD[7]U5 13 B/QB ou I/O1 34 AD[6]U5 6 C/QC ou I/O2 35 AD[5]U5 14 D/QD ou I/O3 36 AD[4]U5 5 E/QE ou I/O4 37 AD[3]U5 15 F/QF ou I/O5 38 AD[2]U5 4 G/QG ou I/O6 39 AD[1]U5 16 H/QH ou I/O7 40 AD[0]

    Tabela 3.1: Definição das ligações dos shifts registers ao barramento PCI

    9

  • A negrito estão assinalados os sinais que tiveram que ser reordenados devido às modificações (VerCap. 4 na página 12)

    3.1 Escrita série e directa

    Existe sinais na interface que são acesśıveis directamente para escrita, ou seja, sem passar pelacadeia de shifts registers, nomeadamente:

    Para o barramento PCI: Para o controlo da cadeia de shifts registers:

    • PCI CLK

    • RST

    • PAR

    • GNT#

    • S1

    • CLR

    • S IN

    • OE

    • CLK ou CP

    Este sinais podem ser escritos directamente através do respectivo pino dos conectores de 20 ou 40pinos! Por outro lado existe sinais que só estão acesśıveis via os shifts registers.(ver tabela 3.1na página 9)

    Método para escrever na cadeia de shifts registers:

    • Configurar a cadeia de shifts registers:

    1. Por no modo “Shift Right”: S1=0 (S0=1 por hardware).

    2. Desactivar o master reset/clear : CLR1=1.

    3. O sinal Output Enable (OE) pode estar activo ou inactivo conforme o desejado.

    • Preparar os 40 bits a introduzir na cadeia dos shifts registers.

    • Introduzir na cadeia o bit 40 em primeiro, 39 em seguida e assim sucessivamente até ao bit 1 deforma a ficarem ordenados correctamente.

    1. Escrever o bit em S IN

    2. Efectuar um impulso ascendente em CLK (ou CP conforme datasheet)Após o impulso os 40 bits são deslocados ficando o bit de S IN no registo 1

    3. Voltar ao ponto 1 até ter introduzidos os 40 bits.

    Nota: Ao introduzir os 40 bits, os dados anteriores são substitúıdos pelos novos! Para optimizar oprocesso, pode-se ler os bits que vão saindo em S OUT à medida que se vai escrevendo para os shiftsregisters, desta forma só num ciclo escrevemos 40 bits nesses e podemos ler os 40 bits anteriores!(Esteprocedimento só é valido se os bits que se introduz na cadeia de shifts registers não depende do valorlido.)

    1Nota: Este bit só está dispońıvel no conector de 20 pinos!

    10

  • 3.2 Leitura série e directa

    Existe sinais na interface que são acesśıveis directamente para leitura, ou seja, sem passar pelacadeia de shifts registers,nomeadamente:

    Para o barramento PCI: Para o controlo da cadeia de shifts registers:

    • INTB#

    • INTA#

    • PERR#

    • SERR#

    • PRSNT1#

    • PRSNT2#

    • REQ#

    • PAR

    • DEVSEL#

    • TRDY#

    • STOP#

    • S OUT

    Este sinais podem ser lidos directamente através do respectivo pino dos conectores de 20 ou 40pinos! Por outro lado existe sinais que só estão acesśıveis via os shifts registers.(ver tabela 3.1na página 9)

    Método para ler da cadeia de shifts registers:

    • Configurar a cadeia de shifts registers:

    1. Por no modo “Shift Right”: S1=0 (S0=1 por hardware).

    2. Desactivar o master reset ou clear : CLR2=1.

    3. O sinal Output Enable (OE) pode estar activo ou inactivo conforme o desejado.

    • Preparar os 40 bits que irão receber os dados lidos.

    • Ler na cadeia o bit 40 em primeiro, 39 em seguida e assim sucessivamente até ao bit 1 de formaa ficarem ordenados correctamente.

    1. Ler o bit em S OUT

    2. Efectuar um impulso ascendente em CLK (ou CP conforme datasheet)Após o impulso os 40 bits são deslocados, o registo 40 passa agora a ter o valor do registo39.

    3. Voltar ao ponto 1 até ter lido os 40 bits.

    Nota: Ao ler os 40 bits, será introduzido nos shifts registers o que estiver em S IN em cada impulso!Para optimizar o processo, pode-se escrever os bits seguintes à leitura desta forma só num ciclo lemos40 bits e escrevemos 40 novos bits na cadeia!( Este procedimento só é valido se os bits que se introduzna cadeia de shifts registers não depende do valor lido.)

    2Nota: Este bit só está dispońıvel no conector de 20 pinos!

    11

  • Caṕıtulo 4

    Modificações do MICROPCIv1.0

    Na fase de desenvolvimento da interface foram detectadas falhas que obrigaram a modificações dainterface MICROPCI v1.0.

    Falhas detectadas:

    Numa transacção PCI de leitura (Ex: Configuration Read), depois da fase de endereçamento no1o clock, no 2o clock é necessário colocar em alta-impedância o barramento AD[31:0] (Turn-AroundCycle) de modo a que no 3o clock (Data Phase) o dispositivo PCI possa colocar dados em AD[31:0],caso contrário poderia ocorrer curtos-circuitos!

    Na versão 1.0 da interface, ao colocar os 32 bits de AD em alta-impedância (OE=1) os sinais de con-trolo FRAME#, IRDY#, IDSEL, C/BE#[3:0], e PAR eram também colocados em alta-impedâncias,devido ao sinal OE ser comum aos 5 shifts registers (que disponibilizam os 40 sinais). Ou seja nãoera posśıvel continuar a controlar a transacção PCI de leitura! (Nota: Nas transacções de escrita, nãohavia problemas devido a não ser necessário colocar os 32 bits de AD em alta impedância).

    Por outro lado, verificou-se que os sinais de controlo, mesmo os não usados deveriam ter resistênciade pull-up de forma a estabilizar os sinais, e no arranque do sistema não activar sinais indesejada-mente. Alguns dos sinais já tinha resistência de pull-up, outros estão ligados directamente aos pinosdo microcontrolador que têm resistência de pull-up internas, mas existe outros que não têm.

    Solução:

    De várias soluções, optou-se pela seguinte:

    • Colocar os sinais de controlo FRAME#, IRDY#, IDSEL e C/BE#[3:0] num único shift register.

    • Por o sinal OE desse shift register sempre activo (=0).

    • Por o sinal de PAR directamente num pino do microcontrolador.

    • Colocar resistência de pull-up externamente usando uma breadboard e o cabo de 20 pinos paraligação à breadboard.

    Notas: Devido a interface controlar o dispositivo sempre em modo slave, FRAME#, IRDY#,IDSEL e C/BE#[3:0] nunca necessitam de ser posto em alta-impedância, visto ser sempre o mastera controlar esses sinais.

    12

  • Por outro lado, PAR é um sinal que deve ser controlado pelo agente que coloca dados em AD, ouseja pelo master na fase de endereçamento, e na escrita de dados, pelo slave quando o master efectualeitura de dados!

    Para colocar PAR num dos pinos do microcontrolador (via conector de 40 pinos) foi necessárioremover o sinal S0, que era redundante. Isto é nos modos de funcionamento (ver figura B.3 página 19)verificamos que só necessitamos de 2 modos: shift right, e parallel load. Nesses dois modos verificamosque S0 é sempre ‘1’, dáı se ter ligado directamente por hardware este sinal ao valor lógico ‘1’.

    13

  • Apêndice A

    Hardware da interface MICROPCI

    A.1 PCB

    Figura A.1: PCB - Camada inferior Figura A.2: PCB - Camada Superior

    14

  • Figura A.3: PCB - Componentes

    A.2 Lista de Componentes

    Conectores:

    • CON1 - Conector 12V fêmea

    • CON2 - Conector 20 pinos para flat cable

    • CON3 - Conector 40 pinos para flat cable

    • JP1, JP2 - Jumper

    • PCI1 - Conector PCI 32bits/5V

    Condensadores:

    • C1,C2,C3 - 10µF (Tântalo, 25V)

    • C4,C7 - 100µF (Electroĺıtico, 25V)

    • C5 - 560pF (Cerâmico)

    • C6 - 1500pF (Cerâmico)

    • C8 - 1000µF (Electroĺıtico, 16V)

    Bobinas:

    • L1 - 56µH (Tipo choke, Imin=200mA)

    • L1 - 100µH (Tipo choke, Imin=100mA)

    Diodos:

    • D1,D2 - 1N5819

    • D4 - (3A)

    • D5 - LED Vermelho (1.8V/2.5mA)

    15

  • Tranśıstores:

    • Q1 - BC547

    Resistências:

    • R1,R2,R3,R4 - 47KΩ 1/4W

    • R5 - 68Ω 1/4W

    • R6,R9 - 0.25Ω 1/4W

    • R7,R11,R12 - 3K9Ω 1/4W

    • R8,R10 - 33KΩ 1/4W

    • R13 - 1KΩ 1/4W

    • R14 - 10KΩ 1/4W

    Circuitos Integrados:

    • U1,U2,U3,U4,U5 - 74HCT299

    • U7 - LM1086-3.3

    • U8 - LM1086-5

    • U9,U10 - MC34063A

    A.3 Esquema Eléctrico

    Ver página 17.

    Nota:O esquema eléctrico é relativo a v1.0 da interface! As modificações relativas a versão 1.1 foramefectuadas directamente no mesmo PCB recorrendo a fios, e cortes de pistas para ligar os sinais comoespecificado anteriormente.

    Figura A.4: Modificações da interface microPCI v1.0

    16

  • 5 5

    4 4

    3 3

    2 2

    1 1

    DD

    CC

    BB

    AA

    +5V/1.5A MAX

    +3.3V/1.5A MAX

    +12V/0.2A MAX

    -12V/0.1A MAX

    1.

    0

    Mic

    roP

    CI v

    1.0

    - Int

    erfa

    ce P

    CI

    C

    11

    Tues

    day,

    Apr

    il 04

    , 200

    6

    Title

    Size

    Doc

    umen

    t Num

    ber

    Rev

    Dat

    e:S

    heet

    of

    S_I

    N

    S1S1

    S1S1

    INTB

    #

    INTC

    #

    PCI_CLK

    INTA#

    S_OUT

    RST

    /OES0

    STOP#

    PRSNT1#

    TRDY#

    /OE

    CLK

    CLK

    DEVSEL#

    CLK

    /CLR

    /CLR

    /CLR

    CLK

    CLK

    INTB#

    S0

    CLK

    S0S0

    S0

    S_IN

    RST

    S1

    S1

    REQ#

    /OE

    TRDY#

    AD

    [0..3

    1]

    INTD

    #

    RS

    T

    C/B

    E3#

    SE

    RR

    #

    PR

    SN

    T1#

    C/B

    E0#

    PA

    R

    PE

    RR

    #

    TRD

    Y#

    IRD

    Y#

    INTB

    #

    GN

    T#

    FRA

    ME

    #

    PC

    I_C

    LK

    STO

    P#

    INTC

    #

    DE

    VS

    EL#

    C/B

    E2#

    INTD

    #

    RS

    T#

    INTA

    #

    RE

    Q#

    PR

    SN

    T2#

    PR

    SN

    T2#

    C/B

    E1#

    RS

    T#

    IDS

    EL

    /CLR

    C/B

    E1#

    FRA

    ME

    #

    C/B

    E0#

    IRD

    Y#

    PA

    R

    IDS

    EL

    CLK

    /OE

    /OE

    /OE

    /OE

    S1S0/CLR

    AD

    23

    STOP#

    PCI_CLK

    INTA#

    /CLRS0S_OUT

    PR

    SN

    T1#

    INTA

    #

    INTB#

    S_IN

    AD

    19

    C/B

    E3#

    AD

    10

    AD

    4

    AD

    18

    AD

    8

    AD

    26

    AD

    16

    AD

    25

    AD

    10

    AD

    29

    AD

    15

    AD

    2

    AD

    20

    AD

    0

    AD

    31

    AD

    25

    AD

    21

    AD

    31

    S_O

    UT

    AD

    9

    AD

    13

    AD

    17

    AD

    14

    AD

    5

    AD

    27

    AD

    18

    AD

    3

    AD

    12

    AD

    17

    AD

    28

    AD

    28

    AD

    15

    AD

    30

    AD

    24

    AD

    14

    C/B

    E2#

    AD

    6

    AD

    11

    AD

    30

    AD

    20

    AD

    21

    AD

    19

    AD

    29

    AD

    7

    AD

    26

    AD

    13

    AD

    16

    AD

    11

    AD

    27

    AD

    8

    AD

    1

    AD

    22

    AD

    22A

    D23

    AD

    9

    AD

    24

    AD

    6

    AD

    2

    AD

    5

    AD

    1

    AD

    3

    AD

    7

    AD

    4

    AD

    0

    AD

    12

    SERR#

    GNT#PRSNT2#

    DEVSEL#PERR#

    D1

    1N58

    19

    L156

    uH

    D2

    1N58

    19

    R10

    33K

    R13

    1K

    U8

    LM10

    86-5

    13

    2

    VIN

    VO

    UT

    GND

    U2

    74H

    CT2

    99

    20 10

    1218 11 9 2 3 1 19

    8 17 7 13 6 14 5 15 4 16

    VCC GND

    CLK

    SL

    SR

    CLR

    OE

    1O

    E2

    S0

    S1

    QL

    QR

    A/Q

    AB

    /QB

    C/Q

    CD

    /QD

    E/Q

    EF/

    QF

    G/Q

    GH

    /QH

    R3

    47K

    U9

    MC

    3406

    3A

    5 3 64

    8 7

    1 2C

    OM

    P

    TCA

    P

    VC

    CG

    ND

    DC

    PK

    SW

    CS

    WE

    R5

    68R

    +C

    310

    uF

    R9

    R25

    PC

    I1A

    1A

    2A

    3A

    4A

    5A

    6A

    7A

    8A

    9A

    10A

    11A

    12A

    13A

    14A

    15A

    16A

    17A

    18A

    19A

    20A

    21A

    22A

    23A

    24A

    25A

    26A

    27A

    28A

    29A

    30A

    31A

    32A

    33A

    34A

    35A

    36A

    37A

    38A

    39A

    40A

    41A

    42A

    43A

    44A

    45A

    46A

    47A

    48A

    49

    A52

    A53

    A54

    A55

    A56

    A57

    A58

    A59

    A60

    A61

    A62

    B1

    B2

    B3

    B4

    B5

    B6

    B7

    B8

    B9

    B10

    B11

    B12

    B13

    B14

    B15

    B16

    B17

    B18

    B19

    B20

    B21

    B22

    B23

    B24

    B25

    B26

    B27

    B28

    B29

    B30

    B31

    B32

    B33

    B34

    B35

    B36

    B37

    B38

    B39

    B40

    B41

    B42

    B43

    B44

    B45

    B46

    B47

    B48

    B49

    B52

    B53

    B54

    B55

    B56

    B57

    B58

    B59

    B60

    B61

    B62

    D4

    DIO

    DE

    C5

    560p

    FR

    11

    3K9

    R14

    10K

    U4

    74H

    CT2

    99

    20 10

    1218 11 9 2 3 1 19

    8 17 7 13 6 14 5 15 4 16

    VCC GND

    CLK

    SL

    SR

    CLR

    OE

    1O

    E2

    S0

    S1

    QL

    QR

    A/Q

    AB

    /QB

    C/Q

    CD

    /QD

    E/Q

    EF/

    QF

    G/Q

    GH

    /QH

    CO

    N1

    PO

    WE

    R1 2 3

    R4

    47K

    U3

    74H

    CT2

    99

    20 10

    1218 11 9 2 3 1 19

    8 17 7 13 6 14 5 15 4 16

    VCC GND

    CLK

    SL

    SR

    CLR

    OE

    1O

    E2

    S0

    S1

    QL

    QR

    A/Q

    AB

    /QB

    C/Q

    CD

    /QD

    E/Q

    EF/

    QF

    G/Q

    GH

    /QH

    U7

    LM10

    86-3

    .3

    2

    13

    GND

    VIN

    VO

    UT

    JP1

    L2 100

    uH

    +

    C8

    1000

    uF

    R8

    33K

    R7

    3K9

    CO

    N3

    1234567891011121314151617181920 21

    22232425262728293031323334353637383940

    U1

    74H

    CT2

    99

    20 10

    1218 11 9 2 3 1 19

    8 17 7 13 6 14 5 15 4 16

    VCC GND

    CLK

    SL

    SR

    CLR

    OE

    1O

    E2

    S0

    S1

    QL

    QR

    A/Q

    AB

    /QB

    C/Q

    CD

    /QD

    E/Q

    EF/

    QF

    G/Q

    GH

    /QH

    U10

    MC

    3406

    3A

    5 3 64

    8 7

    1 2C

    OM

    P

    TCA

    P

    VC

    CG

    ND

    DC

    PK

    SW

    CS

    WE

    R12 3K

    9

    CO

    N2

    12345678910 11

    121314151617181920

    R1

    47K

    +C

    710

    0uF

    U5

    74H

    CT2

    99

    20 10

    1218 11 9 2 3 1 19

    8 17 7 13 6 14 5 15 4 16

    VCC GND

    CLK

    SL

    SR

    CLR

    OE

    1O

    E2

    S0

    S1

    QL

    QR

    A/Q

    AB

    /QB

    C/Q

    CD

    /QD

    E/Q

    EF/

    QF

    G/Q

    GH

    /QH

    +C

    210

    uF

    +C

    410

    0uF

    R6

    R25

    Q1 BC

    547

    C6

    1500

    pF

    D5

    1.8V

    /2.5

    mA

    +C

    110

    uF

    JP2

    R2

    47K

    Figura A.5: Esquema eléctrico do MICROPCI v1.0

    17

  • Apêndice B

    Caracteŕısticas gerais do shift register74xxx299

    O 74xxx299 é um shift register universal de 8 bits com armazenamento, sáıdas “3-State”, e reset as-śıncrono. Existe diversos fabricantes deste integrado (Ex: Philips-74HC/HCT299, Texas Instruments-CD74AC/ACT/ALS299, STMicroelectronics-M74HC299, e outros). Para uma informação mais de-talhadas consultar os datasheets dos fabricantes. Nesta secção foi seleccionado o fundamental paracompreender o funcionamento deste circuito integrado.

    Figura B.1: Pinos do circuito integrado

    Figura B.2: Descrição dos pinos do circuito integrado

    18

  • Figura B.3: Descrição dos modos de funcionamento

    Figura B.4: Diagrama lógico

    19

  • Nota: Relativamente aos modos de funcionamento,o shift left não está acesśıvel na interface,ou seja estes sinais não foram ligados, permitindo apenas efectuar shifts right.

    20

  • Apêndice C

    Aspectos sobre futuros melhoramentoda interface

    Esta interface sendo uma versão original, possui alguns problemas, e aspectos que podem ser me-lhorados nomeadamente:

    • Corrigir o pinout dos reguladores de tensão LM1086-3.3 e LM1086-5.

    • Ter a possibilidade através de interruptores ligar/desligar qualquer tensão de alimentação (+5V,+3.3V, +12V e -12V) de modo a economizar energia quando a placa PCI só usa algumas dessasalimentações, e diminuir o rúıdo provocado pelas fontes comutadas.

    • Tentar encontrar suportes para circuitos integrados (20 e 8 pinos) que permitisse soldar nacamada superior e inferior do PCB, o que permitiria trocar circuitos danificados com facilidade.

    • Colocar 4 leds nas sáıdas reguladas para saber quais as tensões activas.

    • Tentar colocar os jumpers em locais mais acesśıveis.

    • Estudar o problema de alimentações (+5V e GND) separadas para CORE51 e MICROPCI quegera rúıdo nos sinais.

    • Verificar se as 4 interrupções podem ser todas agrupadas numa só (Sendo Open-Drain), paradiminuir número de sinais necessários (4 para 1) analisando por software qual a interrupção quefoi gerada, consultando os registos internos do dispositivo PCI.

    • Colocar um Jumper(ou resistência de pull-up) que permite activar/desactivar o sinal de /CLR(por a ńıvel lógico 0) devido a só está dispońıvel no conector de 20 pinos, e é necessário estardesactivo para escrever para a cadeia de shifts registers quando se trabalha com o conector de40 pinos.

    • Por resistência de pull-up nos sinais de controlo PCI (Mesmo nos não usados) para garantirvalores estáveis na inicialização do sistema e quando nenhum agente está a escrever para essessinais.(Usar arrays de resistências de 2K7Ω, valor das especificações PCI).

    • Colocar conector PCI com todos os pinos, mesmo os não usados.(Necessário usar pistas 12 eespaçamento de 8 no máximo, o que é realizável na FEUP).

    • Ter um conector para as alimentações +12V,-12V,+5V,+3.3V, e GND que permite visualizar ossinais de alimentação e alimentar outros circuitos caso seja necessário, através de um cabo.

    21

  • • Redimensionar a fonte de alimentação, para corrente máxima mais baixa (1A parece ser maisque suficiente para a maioria das placas), e colocar as fontes comutada a entrada de modo a nãosobrecargar o regulador de 5V, tendo mais dois reguladores de tensão +12V e -12V na sáıda dafonte comutada.

    • Espalhar condensador pelas alimentações dos circuitos integrados, e do barramento PCI, paradiminuir o rúıdo.

    Experiência adquirida na montagem da interface:

    • Antes de colocar os componentes para soldar, por o verniz, e deixar tempo suficiente para estesecar! Convém ser num śıtio com poucas poeiras, e evitar colocar os dedos em cima dessa atéestar completamente seco.

    • Na fase de projecto não esquecer de alargar os “Pads” suficientemente para poder furar e aindasobrar cobre a volta do pino para este poder ser soldado.

    • Na fase de projecto, ter o cuidado na disposição dos componentes, no aspecto em que estesdeverão ser soldados com um ferro de soldar, e o espaço entre estes pode dificultar esta tarefa.

    • Com componentes SMD, verificar sempre o espaço ocupado pelo componente e se pode ou nãopassar pistas por baixo deste ou não.

    22