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