5 Portas de comunicação 2 - ufsj.edu.br - PB... · • Diferentemente do módulo PWM, este PWM...

43
25/04/2017 1 1 25/04/2017 Parte 5 PORTAS DE COMUNICAÇÃO 2 25/04/2017 1. COMPARE 00 E 01 2. COMPARE 10 E 11 3. CAPTURE 4. PSP 5. COMUNICAÇÃO SERIAL 6. SPI™ – PIC16F877 1 3 25/04/2017 COMPARE 00 E 01 COMPARE 00 E 01 1 Modos de operação Na configuração PWM-PWM, os módulos operam à mesma frequência, por TMR2<9:0>. Em configurações sem PWM, os módulos operam à mesma frequência, por TMR1<15:0>. Em conjunto com capture ou compare, não há interação, pois usam temporizadores diferentes. Em capture ou compare, TMR1 deve estar no modo síncrono – T1CON<T1SYNC> = 0. 4 25/04/2017 COMPARE 00 E 01 1 CCP2 CCP1 25/04/2017 Multiplexação Compare Nos modos 00 e 01, os pinos do módulo devem ser configurados como saída. • TRISC<1> = 0 Compare 2. • TRISC<2> = 0 Compare 1. Nos modos 10 e 11, os pinos são usados como PORTC. Pinagem na PIC COMPARE 00 E 01 1 Compare: CCPRx<15:0> é comparado com TMR1<15:0>. Quando a igualdade é obtida, ocorre algum evento pré- estabelecido. Comparador 6 25/04/2017

Transcript of 5 Portas de comunicação 2 - ufsj.edu.br - PB... · • Diferentemente do módulo PWM, este PWM...

Page 1: 5 Portas de comunicação 2 - ufsj.edu.br - PB... · • Diferentemente do módulo PWM, este PWM possui resolução de 16 bits, não podendo operar em resolução menor. Modos 00

25/04/2017

1

125/04/2017

Parte 5PORTAS DE COMUNICAÇÃO

225/04/2017

1. COMPARE 00 E 012. COMPARE 10 E 113. CAPTURE4. PSP5. COMUNICAÇÃO SERIAL6. SPI™ – PIC16F877

COMPARE 00 E 011

325/04/2017

COMPARE 00 E 01

COMPARE 00 E 011Modos de operação

• Na configuração PWM-PWM, os módulosoperam à mesma frequência, por TMR2<9:0>.

• Em configurações sem PWM, os módulosoperam à mesma frequência, por TMR1<15:0>.

• Em conjunto com capture ou compare, não háinteração, pois usam temporizadores diferentes.

• Em capture ou compare, TMR1 deve estar nomodo síncrono – T1CON<T1SYNC> = 0.

425/04/2017

COMPARE 00 E 011

CCP2CCP1

525/04/2017

Multiplexação

Compare

• Nos modos 00 e 01, os pinosdo módulo devem serconfigurados como saída.

• TRISC<1> = 0 Compare 2.• TRISC<2> = 0 Compare 1.• Nos modos 10 e 11, os pinos

são usados como PORTC.

Pinagem na PIC

COMPARE 00 E 011

• Compare: CCPRx<15:0> é comparado com TMR1<15:0>.• Quando a igualdade é obtida, ocorre algum evento pré-

estabelecido.

Comparador

625/04/2017

Page 2: 5 Portas de comunicação 2 - ufsj.edu.br - PB... · • Diferentemente do módulo PWM, este PWM possui resolução de 16 bits, não podendo operar em resolução menor. Modos 00

25/04/2017

2

COMPARE 00 E 011

• O comparador tem ação instantânea.• Da saída do comparador até o pino de saída

CCPx, não há nenhum elemento de memória.• A ação no pino CCPx é instantânea.• A ação ocorre logo no início do passo de

contagem onde a coincidência acontece.• O FF RS é o mesmo do circuito PWM.

725/04/2017

ComparadorCOMPARE 00 E 011

825/04/2017

<CCPxM1:CCPxM0> Evento

00 Inicia CCPx em 0 e leva a 1 quando ocorre a coincidência.

01 Inicia CCPx em 1 e leva a 0 quando ocorre a coincidência.

10 Não afeta a saída CCPx.CCPxIF = 1 na coincidência.

11 Não afeta CCPx. Modo gatilho.CCPxIF = 1 na coincidência.

reset default

Modos de operaçãoCCP1CON/CCP2CON 017h/01Dh

1 0

COMPARE 00 E 011Seleção da saída – Modos 00 e 01

925/04/2017 Tris bit

Pino 16 ou 17

Output

Input1-bit21MUX

COMPARE

PWM

Seleção – CCPxM2

FFRS

1-bit21MUX

Seleção – CCPxM2

COMPARE

PWM

R

S

CAPTURE01

01

COMPARE 00 E 011

1025/04/2017

1-bit21MUX

PWM

COMPARE

FFRS

1-bit21MUX

PWM

COMPARE

<CCPxM1><CCPxM0>

Controle de inversão – Modos 00 e 01

COMPARE 00 E 011

1125/04/2017

• O módulo Compare age como um controlador PWM.• Diferentemente do módulo PWM, este PWM não

possui controle de frequência ou de período.• Diferentemente do módulo PWM, este PWM possui

resolução de 16 bits, não podendo operar emresolução menor.

Modos 00 e 01COMPARE 00 E 011

1225/04/2017

Modos 00 e 01

• TOSC: Período do relógio.• TCY: Período de instrução.• TSTEP: Tempo do passo de contagem.• TRAMP: Tempo de uma contagem completa.

Page 3: 5 Portas de comunicação 2 - ufsj.edu.br - PB... · • Diferentemente do módulo PWM, este PWM possui resolução de 16 bits, não podendo operar em resolução menor. Modos 00

25/04/2017

3

COMPARE 00 E 011

1325/04/2017

Modos 00 e 01

FFFFh

t0000h

T

COMPARE 00 E 011

1425/04/2017

Modos 00 e 01Válido para módulos

PWM e Compare

Módulo Compare

Módulo Compare

Módulo PWM em 8 bits

Módulo PWM em 10 bits

COMPARE 00 E 011

1525/04/2017

Modo 01• CCPRx<15:0> determina o DC%.• Semelhante ao modo PWM do módulo CCPx.• Quando TMR1<15:0> = CCPRx<15:0> a

saída Compare já assume valor zero.• O dutty-cycle é diretamente proporcional aCCPRx<15:0>.

CCPRx<15:0>

FFFFh

01

CCPRxt

t0000h

COMPARE 00 E 011

1625/04/2017

• Não é possível obter 100%.

CCPRx<15:0> DC%0000h 0%4000h 25%8000h 50%C000h 75%FFFFh 99%10000h 100%

Modo 01

COMPARE 00 E 011

1725/04/2017

CCPRx = 0000h CCPRx = FFFFh

Modo 01COMPARE 00 E 011

1825/04/2017

Modo 01• É possível usar o PWM do

módulo Compare no modo 01 emconjunto com o conversor A/D.• ADRESH CCPRxH

• ADRESL CCPRxL

Vide exemplos

Page 4: 5 Portas de comunicação 2 - ufsj.edu.br - PB... · • Diferentemente do módulo PWM, este PWM possui resolução de 16 bits, não podendo operar em resolução menor. Modos 00

25/04/2017

4

COMPARE 00 E 011

1925/04/2017

Modo 00• Reset default.• Semelhante ao modo 01, mas invertido.• Quando TMR1<15:0> = CCPRx<15:0> a

saída Compare já assume valor um.• O dutty-cycle é diretamente proporcional aFFFFh - CCPRx<15:0>.

CCPRx<15:0>

FFFFh

10

CCPxt

t0000h

COMPARE 00 E 011

2025/04/2017

• Não é possível obter 0%.

Modo 00

CCPRx<15:0> DC%0000h 100%4000h 75%8000h 50%C000h 25%FFFFh 0,001%10000h 0%

COMPARE 00 E 011

2125/04/2017

Modo 00COMPARE 00 E 011

2225/04/2017

CCPRx = 0000h CCPRx = FFFFh

Modo 00 – Máximo e mínimo

COMPARE 00 E 011

2325/04/2017

Modo 00

• Se o cálculo do dutty-cycle ou do CCPRx<15:0>no modo 00 parecerem muito difíceis, é possívelfazer o cálculo para o modo 01 e converter para omodo 00.

• DC%00 = 100% - DC%01

• CCPRx<15:0>00 = 10000h - CCPRx<15:0>01• CCPRx<15:0>00 = 216 - CCPRx<15:0>01

Vide exemplos

COMPARE 10 E 112

2425/04/2017

COMPARE 10 E 11

Page 5: 5 Portas de comunicação 2 - ufsj.edu.br - PB... · • Diferentemente do módulo PWM, este PWM possui resolução de 16 bits, não podendo operar em resolução menor. Modos 00

25/04/2017

5

COMPARE 10 E 112

2525/04/2017

• <CCPxM1:CCPxM0> = 11b

• Trigger Special Event.• TMR1 é reiniciado.• CCPRx<15:0> comporta-se como um

period register de 16 bits para o TMR1.• Diferentemente do módulo PWM, este

controlador de período não permite ocontrole do dutty-cycle.

• Não utiliza o pino (16 ou 17), que éatribuído a PORTC.

Modo gatilho – 11

PORTC

COMPARE 10 E 112

2625/04/2017

Modo gatilho – Reset

• Como a reiniciação em TMR1<15:0> não se deve aum overflow, o flag de sinalização de overflow deTMR1<15:0> (PIR1<0>, TMR1IF) não é acionado.

• No caso de CCPRx<15:0>=FFFFh, como existeoverflow, então o flag de sinalização de overflow deTMR1<15:0> (PIR1<0>, TMR1IF) é acionado.

• Se CCPRx<15:0>≠FFFFh, este flag não pode serutilizado pois não será acionado.

COMPARE 10 E 112

2725/04/2017

Modo gatilho – Conversão A/D

• O gatilho, além de reiniciar TMR1<15:0>, inicia umaconversão A/D, caso o conversor esteja habilitado.

• Isto permite a aquisição de dados em intervalos regulares.• Aplicações como áudio e vídeo requerem uma taxa de

amostragem (em Hz) constante.• O gatilho pode ser usado como um gerador de relógio

para a entrada analógica.• Este gatilho para a conversão A/D somente está

disponível no módulo CCP2, está ausente no CCP1.

COMPARE 10 E 112

2825/04/2017

Modo gatilho – Controle do período de TMR1• CCPRx: Period Register.• 16 bits (0000h a FFFFh).• CCPRx representa o último valor da contagem.• O comparador gera um reset na contagem.• O comparador verifica se TMR1 é igual a CCPRx.• Reset: TMR1<15:0> = CCPRx<15:0>.• O reset é realizado no próximo passo de contagem, e isso

pode demorar vários TCY, dependendo do prescaler ratio.• O valor de CCPRx está incluído na contagem (reset síncrono).

COMPARE 10 E 112

2925/04/2017

Modo gatilho – Controle do período de TMR1

16-bit

16-bit

16-bit

COMPARE 10 E 112

3025/04/2017

• Sem CCPRx, TMR1 conta como qualquer outro contador.• Ao atingir o valor máximo (FFFFh), um reset é dado no

próximo passo de contagem, respeitando o prescaler.• Esta situação é obtida configurando CCPRx = FFFFh.

FFFFh

t

Modo gatilho – Controle do período de TMR1

Page 6: 5 Portas de comunicação 2 - ufsj.edu.br - PB... · • Diferentemente do módulo PWM, este PWM possui resolução de 16 bits, não podendo operar em resolução menor. Modos 00

25/04/2017

6

COMPARE 10 E 112

3125/04/2017

CCPRx<15:0>FFFFh

0000hCCPRx<15:0>

t

t

• A linha inclinada representa ovalor equivalente a TMR1<15:0>.

Modo gatilho – Controle do período de TMR1COMPARE 10 E 112

3225/04/2017

CCPRx<15:0> = FFFFh

CCPRx<15:0> < FFFFh

TMÁX

T

t

t

Modo gatilho – Controle do período de TMR1

COMPARE 10 E 112

t

t

t

CCPRx<15:0> = FFFFh

CCPRx<15:0> = 7FFFh

CCPRx<15:0> = 3FFFh

3325/04/2017

Período máximo

Metade do período máximo

Um quarto do período

máximo

216 passos

215 passos

214 passos

Modo gatilho – Controle do período de TMR1COMPARE 10 E 112

3425/04/2017

• Como os intervalos de contagem são regulares, arelação entre o período e CCPRx<15:0>+1 é linear.

• Configurando CCPRx = 0000h, não há contagem,TMR1 = 0000h sempre.

• Configurando CCPRx = FFFFh, não há ação do CCPRx.• O valor dado por CCPRx<15:0> está incluído na

contagem.• A quantidade de passos de contagem é dada porCCPRx<15:0>+1.

Modo gatilho – Controle do período de TMR1

COMPARE 10 E 112

3525/04/2017

• Se o TMR1 prescaler ratio for de 1:1, o reset é executadono próximo TCY, que é o próximo passo de contagem.

• Se o TMR1 prescaler ratio for 1:2, 1:4 ou 1:8, o passo decontagem contém 2, 4 ou 8 TCY’s, respectivamente.

• O reset ocorre no próximo passo de contagem após acoincidência e não, necessariamente, no próximo TCY.

• Tal como ocorre no TMR2, o prescaler ratio atua,também, no relógio do comparador e do circuito de reset.

<T1CKPS1:T1CKPS0> Ratio

00 1:101 1:210 1:411 1:8

Modo gatilho – Controle do período de TMR1COMPARE 10 E 112

3625/04/2017

Modo gatilho – Controle do período de TMR1

0000h

CCPPRx<15:0>Match

Reset

TCY

t

TSTEP

Prescaler

Exemplo para prescaler ratio = 1:4

<T1CKPS1:T1CKPS0> Ratio

00 1:101 1:210 1:411 1:8

Page 7: 5 Portas de comunicação 2 - ufsj.edu.br - PB... · • Diferentemente do módulo PWM, este PWM possui resolução de 16 bits, não podendo operar em resolução menor. Modos 00

25/04/2017

7

COMPARE 10 E 112

3725/04/2017

• TOSC: Período do relógio.• TCY: Período de instrução.• TSTEP: Tempo do passo de contagem.• TRAMP: Tempo de uma contagem completa.

Modo gatilho – Controle do período de TMR1COMPARE 10 E 112

3825/04/2017

Modo gatilho – Controle do período de TMR1

COMPARE 10 E 112

3925/04/2017

Reset default: CCPRx = ffffhModo gatilho – Controle do período de TMR1

COMPARE 10 E 112

4025/04/2017

16-bitCOMP Bit set

CCPRxIF

16-bitTMR1

0

15

16-bitCCPRx

0

15

Reset

Modo gatilho – Controle do período de TMR1

COMPARE 10 E 112

4125/04/2017

CCPRx<15:0Ratio 1:XX > 1

t

CCPRx<15:0>

Ratio 1:1

t

T

<T1CKPS1:T1CKPS0> Ratio

00 1:101 1:210 1:411 1:8

Modo gatilho – Controle do período de TMR1

TRAMP

Efeito do prescaler

COMPARE 10 E 112

4225/04/2017

16-bit

16-bit

16-bit

Modo gatilho – Controle do período de TMR1

Page 8: 5 Portas de comunicação 2 - ufsj.edu.br - PB... · • Diferentemente do módulo PWM, este PWM possui resolução de 16 bits, não podendo operar em resolução menor. Modos 00

25/04/2017

8

COMPARE 10 E 112

4325/04/2017

• fOSC influencia no período.• CCPRx influencia no período.• Prescaler ratio influencia no período.

Modo gatilho – Controle do período de TMR1

• fOSC TRAMP

• TOSC TRAMP linearmente• Presc. TRAMP linearmente• CCPRx+1 TRAMP linearmente

COMPARE 10 E 112

4425/04/2017

Modo gatilho – Controle do período de TMR1

1. Desligar o TMR1.2. Desligar o CCP.3. Zerar o TMR1.4. Alterar a palavra.5. Ligar o CCP.6. Ligar o TMR1.

• O módulo PWM utiliza um holdingregister a fim de que a palavraDC<9:0> não sofra alteraçãodurante o período de TMR2.

• A função gatilho do módulo Comparenão possui um holding register.

• A palavra de comparação não podeser alterada durante o período.

• Em caso de necessidade dealteração, é preciso:

Nã Vide exemplos

COMPARE 10 E 112

4525/04/2017

Modo 10

• Software interrupt mode.• Não afeta a saída CCPx.• CCPxIF = 1 na coincidência.• Útil quando se deseja que uma

determinada rotina seja executada emintervalos regulares, interrompendo aexecução normal do programa.

• Útil quando se aplica controle PI, PD ouPID, necessitando da derivada temporalou da integral temporal da função.

COMPARE 10 E 112

4625/04/2017

Compare – Interrupção• A comutação do pino de saída (00 e 01) ou a

reiniciação de TMR1 (11) ativa uma interrupção.

• PIR1: Peripheral Interrupts Bits 1.• PIR1<2>, CCP1IF: CCP1 Interrupt Flag Bit.• PIR2<0>, CCP2IF: CCP2 Interrupt Flag Bit.

• 0: Não houve coincidência.• 1: Houve coincidência (TMR2IF não retorna a zero automaticamente).

• PIE1: Peripheral Interrupts Enable Bits.• PIE1<2>, CCP1IE: CCP1 Interrupt Enable Bit.• PIE2<0>, CCP2IE: CCP2 Interrupt Enable Bit.

• 0: CCPxIF desabilitado (reset default).• 1: CCPxIF habilitado.

COMPARE 10 E 112

4725/04/2017

Comparação

Recurso Compare00 ou 01

MóduloPWM

CompareGatilho

Controle da frequência Não Sim

8 bitsSim

16 bitsControle do dutty-cycle

Sim16 bits

Sim10 bits Não

CAPTURE3

CAPTURE

4825/04/2017

Page 9: 5 Portas de comunicação 2 - ufsj.edu.br - PB... · • Diferentemente do módulo PWM, este PWM possui resolução de 16 bits, não podendo operar em resolução menor. Modos 00

25/04/2017

9

CAPTURE3

CCP2CCP1

4925/04/2017

Multiplexação

Capture

• Os pinos do módulo devem serconfigurados como entrada.

• TRISC<1> = 1 Capture 2.• TRISC<2> = 1 Capture 1.

Pinagem na PIC

CAPTURE3

• Capture: CCPRx captura o valor de TMR1<15:0>.• TMR1H CCPRxH

• TMR1L CCPRxL

• A captura ocorre durante algum evento pré-estabelecido.• O evento é obtido nas entradas CCPx.• Essa cópia é feita no mesmo TCY, isto é, todos os dois

bytes de CCPR são gravados simultaneamente, pois estacópia não é efetuada pela ULA, não usa o 8-bit data bus.

• Por meio do programa, esta cópia não é possível; cadabyte de CCPR precisa ser gravado em um períodoseparado.

Efeito da captura

5025/04/2017

CAPTURE3Blocos funcionais

5125/04/2017

<T1CKPS1:T1CKPS0> Ratio

00 1:101 1:210 1:411 1:8

CAPTURE3Configurações

5225/04/2017

<CCPxM1:CCPxM0> Evento no pino CCPx

00 Borda de descida01 Borda de subida10 Cada 4 bordas de subida11 Cada 16 bordas de subida

reset default

• O módulo Capture possui um contador Prescaler próprio.• Não se trata do contador Prescaler de TMR1.

CCP1CON/CCP2CON 017h/01Dh

0 1

CAPTURE3Operação

5325/04/2017

• O módulo Capture pode ser usado como umcronômetro.

• O SFR CCPRx<15:0> informa quantos passosde contagem se passaram desde o últimooverflow de TMR1<15:0> até a ocorrência doevento pré-estabelecido.

• Para saber quantos TCY se passaram, bastamultiplicar este valor pelo TMR1 prescaler ratio.

• Se esse ratio for maior do que 1:1, a capturapode ocorrer em uma fração do passo dacontagem onde ela ocorreu.

CAPTURE3Operação

5425/04/2017

• O valor dos passos de contagem obtidos pode sertransformado em valor de tempo a partir dosseguintes dados:• fOSC

• Quantidade de TOSC’s em um TCY.• TMR1 Prescaler ratio.

• Nem sempre é necessário converter para o valor emtempo, pois, em muitos casos, o objetivo écomparar o valor obtido com valores pré-estipuladosou comparar uma sequência de valores obtidos.

Page 10: 5 Portas de comunicação 2 - ufsj.edu.br - PB... · • Diferentemente do módulo PWM, este PWM possui resolução de 16 bits, não podendo operar em resolução menor. Modos 00

25/04/2017

10

CAPTURE3

5525/04/2017

Exemplo para 1:4

0000h

Instante da ocorrência do evento

TCY

t

Reconhecimento da

ocorrência do evento

Conclusão da cópia

Exemplo para prescaler ratio = 1:4

<T1CKPS1:T1CKPS0> Ratio

00 1:101 1:210 1:411 1:8

Prescaler

TSTEP

CAPTURE3

5625/04/2017

Exemplo para 1:4

Instante da ocorrência do evento

Reconhecimento da

ocorrência do evento

Conclusão da cópia

Q1Q2Q3Q4

CAPTURE3Capture Prescaler

5725/04/2017

• A opção pela captura em 4 ou 16 bordasacrescenta um contador de 2 ou 4 bits.

• Esta opção pode ser interessante quandoos eventos ocorrem de forma periódica auma frequência mais alta do que a máximaque TMR1 pode suportar (incluindo o efeitodo TMR1 prescaler ratio).

Even

to 1

tEven

to 2

Even

to 3

Even

to 4

Even

to 5

Even

to 6

Even

to 7

Even

to 8

Even

to 9

1:4

Exemplo para capture prescaler ratio = 1:4

CAPTURE3

Z

Z

5825/04/2017

Captura 1:1 – ExemploFFFFh

0000h

T

t

tEvento Evento Evento Evento Evento

CCPRx<15:0>

t

1CCPxIF

CAPTURE3

Z

Z

5925/04/2017

Captura 1:4 – ExemploFFFFh

0000h

T

t

t

CCPRx<15:0>

t1 CCPxIF

• Um a cada quatro eventos é considerado.

CAPTURE3

6025/04/2017

• Para que a captura tenha serventia como cronômetro, épreciso que haja dois eventos.

• O primeiro evento marca o início da marcação do tempo.• O segundo eventomarca o término da marcação do tempo.• O tempo total é a diferença entre as duas marcações.

Intervalo

Page 11: 5 Portas de comunicação 2 - ufsj.edu.br - PB... · • Diferentemente do módulo PWM, este PWM possui resolução de 16 bits, não podendo operar em resolução menor. Modos 00

25/04/2017

11

CAPTURE3

6125/04/2017

• O módulo PWM pode ser usado com 8 ou 10 bits.• Igualmente, o módulo capture pode ser usado com 8 ou 16

bits.• Raras são as aplicações que requerem 16 bits de precisão.• A maioria das aplicações requer, apenas, 8 bits.• O uso de 16 bits requer o uso dos SFR´s CCPRxH e CCPRxL

além de GPR´s para armazenamento destas informações,dois para o instante inicial e dois para o final.

• O uso de 8 bits usa, apenas, CCPRxH, um GPR para oinstante inicial e um para o final. Isso torna o programa maissimples.

8 ou 16 bitsCAPTURE3

6225/04/2017

Captura – Caso 1 – 16 bits

tEvento(1) Evento(2)

CCPRx<15:0>(2)

CCPRx<15:0> (1)

CC

PRx<15:0>

FFFFh

0000h

CAPTURE3

6325/04/2017

• Os dois eventos estão na mesma rampa.• Não é preciso analisar as mudanças de rampa.• CCPR<15:0> = CCPR(2)<15:0> – CCPR(1)<15:0>.• CCPR<15:0> representa a quantidade de passos de

TMR1<15:0> compreendidos entre os dois evento.• t é proporcional a CCPR<15:0>.

Captura – Caso 1 – 16 bits

Vide exemplos

CAPTURE3

6425/04/2017

Captura – Caso 1 – 8 bits

tEvento(1) Evento(2)

CCPRxH(2)

CCPRxH(1)

CC

PRxH

FFh

00h

• A análise é feita sobre o byte mais significativo.

CAPTURE3

6525/04/2017

• CCPRxH = CCPRxH(2) – CCPRxH(1).• CCPRxH representa a quantidade de passos

de TMR1H compreendidos entre os dois evento.• t é proporcional a CCPRxH.• Os passos de TMR1H são 28 vezes mais lentos

do que os passos de TMR1<15:0>.

Captura – Caso 1 – 8 bits

Vide exemplos

CAPTURE3

6625/04/2017

Captura – Caso 2 – 16 bits

t

Evento(1) Evento(2)

CCPRx(2)

CCPRx(1)FFFFh

0000h

Page 12: 5 Portas de comunicação 2 - ufsj.edu.br - PB... · • Diferentemente do módulo PWM, este PWM possui resolução de 16 bits, não podendo operar em resolução menor. Modos 00

25/04/2017

12

CAPTURE3

6725/04/2017

Captura – Caso 2 – 16 bits

• Os eventos estão em rampas diferentes.• A operação CCPR(2)<15:0> – CCPR(1)<15:0>

resulta em um número negativo.• CCPR não pode ser um número negativo.• É preciso converter a rampa de 16 bits para 17 bits.• Eleva-se a segunda rampa.• Tem-se um TMR1<16:0>

CAPTURE3

6825/04/2017

Captura – Caso 2 – 16 bits

t

Evento(1) Evento(2)

CCPRx(2)

CCPRx(1)

CCPRx

0000h

10000hFFFFh

1FFFFh

• TMR1, embora tenha, apenas, 16 bits,comporta-se como se tivesse 17 bits.

• O bit mais significativo deTMR1<16:0> é gravado em um GPR.

CAPTURE3

6925/04/2017

Captura – Caso 2 – 16 bits

• Ao elevar a segunda rampa, seu valor sobe 216 degraus.• O valor CCPR(2)<15:0> torna-se CCPR(2)<15:0> + 216.• CCPR = 216 + CCPR(2) – CCPR(1).• CCPR = 10000h + CCPR(2) – CCPR(1).• A adição do valor 10000h consiste da adição do

décimo sétimo bit mais significativo, TMR1<16>.• Usando modo hexadecimal, o resultado negativo da

subtração é informado de forma errada na calculadora.• É preciso, primeiro acrescentar 216 e, depois, fazer as

outras operações, a fim de evitar o surgimento de umnúmero negativo.

CAPTURE3

7025/04/2017

Captura – Caso 2 – 8 bits

t

Evento(1) Evento(2)

CCPRxH(2)

CCPRxH(1)FFh

00h

CAPTURE3

7125/04/2017

Captura – Caso 2 – 8 bits

• Os eventos estão em rampas diferentes.• A operação CCPRxH(2)<7:0> – CCPRxH(1)<7:0>

resulta em um número negativo.• CCPRxH não pode ser um número negativo.• É preciso converter a rampa de 8 bits para 9 bits.• Eleva-se a segunda rampa.• Tem-se um TMR1H<8:0>

CAPTURE3

7225/04/2017

Captura – Caso 2 – 8 bits

t

Evento(1) Evento(2)

CCPRxH(2)

CCPRxH(1)

CCPRxH

00h

100hFFh

1FFh

• TMR1H, embora tenha, apenas, 8 bits,comporta-se como se tivesse 9 bits.

• O bit mais significativo de TMR1H<8:0> é gravado em um GPR.

Page 13: 5 Portas de comunicação 2 - ufsj.edu.br - PB... · • Diferentemente do módulo PWM, este PWM possui resolução de 16 bits, não podendo operar em resolução menor. Modos 00

25/04/2017

13

CAPTURE3

7325/04/2017

Captura – Caso 2 – 8 bits

• Ao elevar a segunda rampa, seu valor sobe 28 degraus.• O valor CCPRxH(2)<7:0> torna-se CCPRxH(2)<7:0> + 28.• CCPRxH = 28 + CCPRxH(2) – CCPRxH(1).• CCPRxH = 100h + CCPRxH(2) – CCPRxH(1).• A adição do valor 100h consiste da adição do nono bit

mais significativo, TMR1H<8>.• Usando modo hexadecimal, o resultado negativo da

subtração é informado de forma errada na calculadora.• É preciso, primeiro acrescentar 28 e, depois, fazer as

outras operações, a fim de evitar o surgimento de umnúmero negativo.

CAPTURE3

7425/04/2017

t

CCPRx(2)

CCPRx(1)

EventoEvento

t

TMR1IF

Captura – Caso 3 – 16 bits

CAPTURE3

7525/04/2017

• O intervalo é maior do que o período do TMR1.• Contando quantas ações (comando set) ocorreram emTMR1IF, é possível medir intervalos maiores do que operíodo de TMR1.

• É preciso permanecer verificando o valor de TMR1IF aolongo do período entre os dois eventos.

• Caso TMR1IF=1, é sinal de que outra rampa teve início.• O contador de reset’s em TMR1 (N), um GPR qualquer,

é incrementado e o flag é reiniciado (TMR1IF=0).• O intervalo é medido por:• CCPR = (N216) + CCPR(2) – CCPR(1).• CCPR = (N10000h) + CCPR(2) – CCPR(1).

Captura – Caso 3 – 16 bitsCAPTURE3

7625/04/2017

tN=N+1N=1

N=N+1N=2

N=N+1N=3

N=N+1N=4

N=N+1N=5

EventoEvento

N=0

Captura – Caso 3 – 16 bits

CAPTURE3

7725/04/2017

• CCPR(1) é copiado em um GPR duplo.• CCPR(2) é copiado em outro GPR duplo.• Não é recomendado fazer a subtração diretamente sobre

CCPR, pois, durante este cálculo, pode ocorrer um evento.• A cópia é de dois bytes.• A subtração é de dois bytes, requerendo cuidado com o

borrow entre os bytes.• O resultado da subtração é gravado em um terceiro GPR

duplo.• Como N216 é um número de 17 bits ou mais, é preciso usar

três ou mais GPR’s para armazenar o resultado.• Não há uma instrução para multiplicação, requerendo a

criação de um programa para a realização desta operação.

Captura – Caso 3 – 16 bitsCAPTURE3

7825/04/2017

• Se N jamais supera 255, então um GPR é suficientepara armazená-lo, porém, se este limite for superado,poderão ser necessários dois ou mais GPR’s.

• Isso tudo mostra como pode ser difícil criar umprograma assembler para a realização destas tarefas.

• Este é o caso em que começa a valer a pena usarlinguagens de compilação e não de montagem.

Captura – Caso 3 – 16 bits

Page 14: 5 Portas de comunicação 2 - ufsj.edu.br - PB... · • Diferentemente do módulo PWM, este PWM possui resolução de 16 bits, não podendo operar em resolução menor. Modos 00

25/04/2017

14

CAPTURE3

7925/04/2017

• CCPRH = (N28) + CCPRH(2) – CCPRH(1).• CCPRH = (N100h) + CCPRH(2) – CCPRH(1).

Captura – Caso 3 – 8 bits

• CCPRH(1) é copiado em um GPR.• CCPRH(2) é copiado em outro GPR.• O resultado da subtração é gravado em um terceiro GPR.• Como N28 é um número de 9 bits ou mais, é preciso usar

dois ou mais GPR’s para armazenar o resultado.

Vide exemplos

CAPTURE3Interrupções

8025/04/2017

• Uma solicitação de interrupção é realizada.• CCP1IF: CCP1 Interrupt Flag Bit.• PIR1<2> (Peripheral Interrupts 1).• CCP2IF: CCP2 Interrupt Flag Bit.• PIR2<0> (Peripheral Interrupts 1).• 0: Não houve uma captura de TMR1 (reset default).• 1: Houve uma captura de TMR1.• Quando a configuração capture é alterada,

também ocorre um pedido de interrupção.

CAPTURE3

8125/04/2017

Comparação

<CCPxM3:CCPxM2> Modo Pino CCPx00 Desligado PORTC01 Capture Entrada10 Compare 00 01 Saída10 Compare 10 11 PORTC11 PWM Saída

reset default

PSP4

8225/04/2017

PSP

PSP4

8325/04/2017

Necessidade• Um projeto real, pode conter diversos chip’s

MCU ou P.• O sistema possui um barramento de dados

próprio, que é ligado ao barramento de dadosdos chip’s por meio das portas paralelas.

• É preciso que haja controle do barramento dedados do sistema para que não ocorra conflito.

• O PSP é usado quando se deseja ligar a PIC aum outro barramento de dados, controlado porum outro chip.

• Os bufferes de entrada PSP são TTL.

PSP4

8425/04/2017

Necessidade• A diferença entre a porta paralela escrava e as

portas paralelas normais é que a escravapossui sistema de controle de fluxo, tal comouma porta serial.

• Na porta paralela normal, é o próprio chip quedetermina quando realizar uma leitura equando realizar uma gravação.

• Na porta paralela escrava, quem decide omomento de uma leitura ou de uma gravação éo outro chip, aquele que controla o barramentode dados do sistema que conecta os chip’s.

• É usado um SFR de dados, tal como em umaporta paralela comum.

• Bits de controle de fluxo são usados.

Page 15: 5 Portas de comunicação 2 - ufsj.edu.br - PB... · • Diferentemente do módulo PWM, este PWM possui resolução de 16 bits, não podendo operar em resolução menor. Modos 00

25/04/2017

15

PSP4

8525/04/2017

SFR’s na PIC

• A comunicação é assíncrona, não estácondicionada ao período de instrução da PIC.

• A gravação em PORTD ocorre, apenas, em Q4.• A leitura em PORTD ocorre, apenas, em Q2.

Serial A/DPORT PWM PSP

8-bit PIC Data Bus

SFR SFR SFR SFRFile Registers

8-bit 10-bit 10-bit

8-bit8-bit8-bit

PORTD

8-bit

8-bit8-bit

PSP4

8625/04/2017

Sistema Genérico

PIC 1 PIC 2P MEM I/O

Data Bus externo

Controlador Periférico Periférico Periférico Periférico

• O controlador pode ser um P, MCU ou DSP.• O controlador, geralmente, é o dispositivo

com a maior capacidade de processamento.

PSP4

8725/04/2017

Sistema Genérico

• O controlador pode ser um P, MCU ou DSP.• O controlador, geralmente, é o dispositivo com a

maior capacidade de processamento.• O comando CS (chip select) permite a

conecção do data bus do sistema ao periférico.• Somente um periférico pode estar ativo por vez.• Periférico desativado está em 3S no data bus.

CS1

CS2

CS3

CS4

Data Bus

PSP4

8825/04/2017

Sistema Genérico

• Alguns chip’s periféricos permitem gravação.• Há, então, três comandos: CS, RD e WR.• RAM’s possuem os três comandos.• ROM’s possuem, apenas, CS e RD.• MCU conectada por PSP comporta-se como uma RAM.

PSP4

8925/04/2017

Comunicação• A comunicação é assíncrona porque cada chip

pode possuir um relógio diferente.• O barramento do sistema precisa ser de 8 bits.• Se o barramento for de 16 bits, um circuito

pode fazer a leitura de duas palavras econvertê-las em uma de 16 bits para, depois,enviar ao barramento do sistema.

• Se o barramento for que 4 bits, um circuitopode dividir a palavra da PIC em duas de 4bits, enviadas em duas etapas ao barramentodo sistema.

PSP4

9025/04/2017

Barramento externo maior do que o interno

8-bitMUX21

16-bitP

16-bit Data Bus

8-bitPIC

8-bit Data Bus

D15 D0

D00

D07

D08

D15

SELEÇÃO0: Low Byte1: High Byte

8-bit

8-bit

Page 16: 5 Portas de comunicação 2 - ufsj.edu.br - PB... · • Diferentemente do módulo PWM, este PWM possui resolução de 16 bits, não podendo operar em resolução menor. Modos 00

25/04/2017

16

PSP4

9125/04/2017

Barramento externo maior do que o interno

8-bitDEMUX

12

16-bitP

16-bit Data Bus

8-bitPIC

8-bit Data Bus

D15 D0

D00

D07

D08

D15

SELEÇÃO0: Low Byte1: High Byte

8-bit

8-bit

PSP4

9225/04/2017

16-bitP

16-bit Data Bus

8-bitPIC

D15 D0

D00

D07

D08

D15

8-bitPIC

Barramento externo maior do que o interno

8-bit

8-bit

PSP4

9325/04/2017

8-bitP

16-bitPIC

CPHIGH

8-bitREG

CPLOW

8-bitREG

8-bit Data Bus

8-bit Data Bus

8-bit Data Bus

D00

D07

D08

D15

Barramento externo menor do que o interno

CP: clock pulse

8-bit

8-bit

PSP4

9425/04/2017

• Parallel slave mode• Para configurar os pinos do chip para PSP, é preciso

programar o SFR TRISE (089h).• TRISE<4> , PSPMODE , deve ser corretamente programado.

• 0: Modo I/O – PORTD – reset default.• 1: Modo PSP.

SFR Addr. Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0TRISE 089h IBF OBF IBOV PSPMODE - I/O I/O I/O

Compartilhamento

PSP4

9525/04/2017

Compartilhamento• O PSP usa PORTD para dados (modo

PSP e modo I/O).• O PSP usa saídas TTL, sem efeito ST.• A configuração TRISD é irrelevante, pois

quem controla o sentido é um outro chip.

PSP4

9625/04/2017

Configuração• O PSP compartilha os pinos de PORTE para controle.• Os bits de controle são unidirecionais, entrada.• /RD: Read– Leitura do conteúdo da PIC.• /WR: Write– Escrita no barramento da PIC.• /CS: Chip Enable.• Estes pinos devem ser configurados como entrada.

TRISE<RE0>=1TRISE<RE1>=1TRISE<RE2>=1

Page 17: 5 Portas de comunicação 2 - ufsj.edu.br - PB... · • Diferentemente do módulo PWM, este PWM possui resolução de 16 bits, não podendo operar em resolução menor. Modos 00

25/04/2017

17

PSP4

9725/04/2017

Pinagem (DIP)PSP PIN Nome

0 19 RD0/PSP01 20 RD1/PSP12 21 RD2/PSP23 22 RD3/PSP34 27 RD5/PSP45 28 RD0/PSP56 29 RD1/PSP67 30 RD2/PSP7

PSP PIN NomeRD 8 RE0/RDWR 9 RE1/WRCS 10 RE2/CS

• PSPMODE = 0: Funções em verde.• PSPMODE = 1: Funções em vermelho.

PSP4

9825/04/2017

/RD/WD/CE

PSP7PSP6PSP5PSP4

PSP0PSP1

PSP3PSP2

Pinagem (DIP)

PSP4

9925/04/2017

Entrada / Saída

• Há um circuito para cada bit do PSP.• O FF D sensível a borda perfaz o SFR PORTD.• O buffer 3S de saída não é o buffer 3S controlado por TRISD.• O buffer TTL de entr. não é o buffer TTL controlado por TRISD.• O butter 3S de entrada é controlado por PSPMODE.• Os bufferes de entr. são acionados pelos bits de controle PSP.

PSP4

10025/04/2017

Buffer 3S

Bufferinput

output

input

PSPIF=(/WR/CS)+(/CS/RD)

Buffer 3S

Entrada / Saída

RD

TRISE<4>PSPMODE

PSP4

10125/04/2017

Modo RD (output)

Buffer

output

input

output

input

PSPIF=1

1

1

0

0

0 1

1

desligado

1 ligado

0 ligado

0 ligado

1 desligado

RD

PSP4

10225/04/2017

Modo WR (input)

Bufferinput

output

input

PSPIF=1

0

1

1

1

1 desligado

0 ligado

0 ligado

1 0

1

ligado

0 desligadoinput

RD

Page 18: 5 Portas de comunicação 2 - ufsj.edu.br - PB... · • Diferentemente do módulo PWM, este PWM possui resolução de 16 bits, não podendo operar em resolução menor. Modos 00

25/04/2017

18

PSP4

10325/04/2017

Interrupção

• Quando um /RD ou /WR é feito na PSP, uma solicitaçãode interrupção é realizada.

• PSPIF: Parallel Slave Port Read/Write Interrupt Flag bit.• PIR1<7> (Peripheral Interrupts 1)• 0: Não houve um /RD ou /WR (reset default).• 1: Houve um /RD ou /WR.

PSP4

10425/04/2017

Interrupção

• Não é permitido fazer BSF PIR1, PSPIF.• PIR1<7> recebe “1” em /RD ou em /WR.• PIR1<7> recebe “0” manualmente.• BCF PIR1, PSPIF.• Esse comando é dado após a ciência do evento.

PSP4

10525/04/2017

Interrupção

• PSPIE: Parallel Slave Port Read/Write Interrupt Enable Bit.• PIE1<7> (Peripheral Interrupts Enable Bits 1).• 1: Habilita interrupção PSP.• 0: Desabilita interrupção PSP.

• PIR1 000001100b, 0Ch, banco 0• PIE1 010001100b, 8Ch, banco 1

PSP4

10625/04/2017

• IBF: Input Buffer Full.• OBF: Output Buffer Full.• IBOV: Input Buffer Overflow.• IBF é usado em uma escrita externa.• OBF é usado em uma leitura externa.• Controle semelhante ao da porta serial.

SFR Addr. Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0TRISE 089h IBF OBF IBOV PSPMODE - I/O I/O I/O

Gerenciamento da comunicação

PSP4

10725/04/2017

• Quando uma palavra é recebida pela PIC®, IBF=1.• Isto indica que a PIC® recebeu uma palavra do outro chip.• Esta palavra precisa ser lida pelo data bus da PIC®.• Quando PORTD é lido, IBF=0 automaticamente.• Se IBF=0, então a PIC® pode receber uma nova palavra.

Gerenciamento da comunicação

• Quando uma palavra é escrita em PORTD, pela PIC®, OBF=1.• Isto indica que a PIC® está aguardando que a palavra seja

lida pelo outro chip.• Quando o outro chip faz a leitura, OBF=0 automaticamente.• Se OBF=0, então PORTD pode receber uma nova escrita.

PSP4

10825/04/2017

• Se IBF=1, o outro chip não pode enviar nova palavra.• Se isso acontece, então IBOV=1.• Se IBOV=1, então o último envio do chip externo foi perdido.

Gerenciamento da comunicação

• Se OBF=1, então PORTD ainda não foi enviado ao outro chip.• Se OBF=1, então uma escrita em PORTD faz o envio anterior

ser perdido.

• Após PORTD ser lido pelo outro chip, PSPIF=1.• Após PORTD ser escritopelo outro chip, PSPIF=1.

Page 19: 5 Portas de comunicação 2 - ufsj.edu.br - PB... · • Diferentemente do módulo PWM, este PWM possui resolução de 16 bits, não podendo operar em resolução menor. Modos 00

25/04/2017

19

COMUNICAÇÃO SERIAL5

10925/04/2017

COMUNICAÇÃO SERIAL

COMUNICAÇÃO SERIAL5

11025/04/2017

• A comunicação serial permite a troca deinformação por meio de linhas de transmissãoque não sejam de natureza elétrica, como luz eoutras ondas eletromagnéticas.

• A comunicação serial simplifica a comunicaçãosem fio.

• A comunicação serial simplifica as comunicações(com ou sem fio) de longas distâncias.

Motivação

COMUNICAÇÃO SERIAL5

11125/04/2017

AplicaçõesCOMUNICAÇÃO SERIAL5

11225/04/2017

• A comunicação paralela é mais simples, apalavra é enviadas em uma única etapa, aidentificação dos bits é imediata, o efeito deerros é menos grave.

• A comunicação serial é mais sofisticada, pois a identificação dos bits de uma palavra não é imediata, o efeito dos erros é mais grave.

• A comunicação paralela pode usar protocolosde sincronização e detecção de erro(principalmente em computação), mas isso éopcional em sistemas mais simples.

• A comunicação serial requer uso obrigatório deprotocolos, mesmo nos sistemas mais simples.

Protocolo

COMUNICAÇÃO SERIAL5

11325/04/2017

• Alô?• Tem alguém aí?• Está me ouvindo?• Fale mais alto.• Fale mais devagar.• Posso falar agora?• Espere um pouco.• O que?• Agora vou desligar.• Peraí, não terminei.• Até mais.

Palavras de sinalização em conversa ao telefoneCOMUNICAÇÃO SERIAL5

11425/04/2017

• Simplex: Comunicação unilateral.• Exemplo de transmissão: Display serial.• Exemplo de recepção: Teclado serial.

• Duplex: Multiplexação entre transmissão e recepção.• Exemplo: Comunicação via rádio.

• Full duplex: Transmissão e recepção simultâneos.• Exemplo: Telefone.

Tipos de comunicação

• Embora todos os protocolos de comunicaçãoserial permitam transmissão e recepção,muitos são os casos em que somente umsentido de transmissão é usado.

Page 20: 5 Portas de comunicação 2 - ufsj.edu.br - PB... · • Diferentemente do módulo PWM, este PWM possui resolução de 16 bits, não podendo operar em resolução menor. Modos 00

25/04/2017

20

COMUNICAÇÃO SERIAL5

11525/04/2017

Comunicação síncrona

• A comunicação síncrona possui um sinal de relógio quedetermina a sincronia entre os dois agentes dacomunicação.

• Um dos elementos controla o relógio.• Este elemento é chamado de master.• O outro elemento é chamado de slave.• A sincronia torna o protocolo de comunicação mais simples.• A comunicação assíncrona tem a vantagem de não

consumir uma via para este sinal.

COMUNICAÇÃO SERIAL5

11625/04/2017

Vias de dados

• Se existem duas vias de dados, uma é usada para saída dedados, e a outra é usada como entrada de dados.

• Cada via representa uma comunicação simplex.• Se, existe, apenas, uma via de dados, ela é usada para

entrada e para saída.• Neste caso, não é possível efetuar comunicação full-duplex.• Comunicação com duas vias de dados é mais simples.• Comunicação com uma via de dados é mais econômica.

Vias Simplex Duplex Full-duplex1 Sim Sim Não2 Sim Sim Sim

COMUNICAÇÃO SERIAL5

11725/04/2017

Comunicação de duas vias• Sempre que uma transmissão é efetuada, uma

recepção também é efetuada, e vice-versa.• Transmissão simplex ou duplex: Uma palavra relevante

é enviada e uma palavra irrelevante é recebida.• Recepção simplex ou duplex: Uma palavra irrelevante

é enviada e uma palavra relevante é recebida.• Comunicação full-duplex: Uma palavra relevante é

enviada e uma palavra relevante é recebida.• A diferenciação entre os tipos de comunicação está,

apenas, na relevância das palavras.

Evento Palavra enviada Palavra recebidaTransmissão simplex ou duplex Relevante Irrelevante

Recepção simplex ou duplex Irrelevante RelevanteComunicação full-duplex Relevante Relevante

COMUNICAÇÃO SERIAL5

11825/04/2017

Principais protocolos usados em MCU´s

Protocolo Vias de dados ModoSPI™ 2 SíncronoI2C™ 1 Síncrono

USART™ 1 SíncronoUSART™ 2 Assíncrono

VEREMOS

COMUNICAÇÃO SERIAL5

11925/04/2017

• SPI™.• Hardware mais simples.• Ideal para comunicação entre MCU’s.• Suporta full-duplex.

• USART™.• Hardware mais sofisticado.• Ideal para comunicação entre MCU e computador.• Permite comunicação assíncrona (mais complexa).• Suporta full-duplex (somente no modo assíncrono).

• I2C™.• Ideal para comunicação de longa distância.• Suporta até half-duplex.

VEREMOS

Comparação entre os protocolosCOMUNICAÇÃO SERIAL5

12025/04/2017

Comparação entre SPI™ e I2C™

http://www.mikroe.com/img/publication/pic-books/pic-microcontrollers/chapter/06/fig6-21.gif

clock

clock

2-wire full-duplex

1-wire half-duplex

Page 21: 5 Portas de comunicação 2 - ufsj.edu.br - PB... · • Diferentemente do módulo PWM, este PWM possui resolução de 16 bits, não podendo operar em resolução menor. Modos 00

25/04/2017

21

COMUNICAÇÃO SERIAL5

12125/04/2017

• SPI™, QSPI™, Microwire™.• 3-wire interface.1. CS ou SS – seleção (opcional).2. SCLK – clock.3. SDI ou DIN ou MOSI – input.4. SDO ou DOUT ou MISO – output.• Edge trigged.

• I2C™ , SMBUS™• 2-wire interface.1. SDA – dado.2. SCL – clock.• Level trigged.

DiferençasVEREMOS

VEREMOS

COMUNICAÇÃO SERIAL5

12225/04/2017

• Serviu como origem do protocolo SPI™.• Concepção: Como o protocolo foi concebido.• MID – Microwire™ Interface Device.• Marca registrada da National Semiconductor.• Criado para a família de MCU’s COPS™.• Microwire™ (Application Note 452), janeiro de 1992.• Microwire/Plus™ (Application Note 579), maio de 1989.• Há referências anteriores a 1989.• Comunicação síncrona.

Microwire™

COMUNICAÇÃO SERIAL5

12325/04/2017

• Permite transmissão e recepção ao mesmo tempo.• Uso de duas vias de dados.• Um via é usada para entrada, outra para saída.• A comunicação pode ser do tipo full-duplex.• Em cada via, a comunicação é do tipo simplex.• Um dispositivo é o controlador e os demais são periféricos.• São usadas três vias:

• SI Serial Input.• SO Serial Output.• SK Serial Clock (sincronia).

• Microwire™ não permite seleção de slave via protocolo.• A seleção pode ser feita por hardware adicional.

Microwire™COMUNICAÇÃO SERIAL5

12425/04/2017

• O valor nas duas vias de dado é capturado nas borda de SK.• A comunicação é síncrona.• O Microwire™ não permite a escolha das bordas.• O SPI™ permite a escolha das bordas.

MASTER SLAVE

SK

SI

SO

Microwire™

COMUNICAÇÃO SERIAL5

12525/04/2017

• Um registrador de deslocamento (shift-register) realiza aconversão.

• No caso da PIC®, esse registrador é o SSPSR (não SFR).• O bit 7 é enviado primeiro, o bit 0 por último.• No lado paralelo, vem o data bus.• No lado serial, os pinos de comunicação.• Um registrador (buffer register ou holding register) retém

o valor do data bus na conversão para serial.• No caso da PIC®, esse SFR é o SSPBUF.

Microwire™COMUNICAÇÃO SERIAL5

MASTER SLAVESI SO

SI

SK

12625/04/2017

Microwire™

H G F E D C B AP O N M L K J I

Page 22: 5 Portas de comunicação 2 - ufsj.edu.br - PB... · • Diferentemente do módulo PWM, este PWM possui resolução de 16 bits, não podendo operar em resolução menor. Modos 00

25/04/2017

22

COMUNICAÇÃO SERIAL5

12725/04/2017

x x x x x x x xReceptor

7 6 5 4 3 2 1 0Transmissor

x x x x x x x 7Receptor

6 5 4 3 2 1 0 xTransmissor

x x x x x x 7 6Receptor

5 4 3 2 1 0 x xTransmissor

x x x x x 7 6 5Receptor

4 3 2 1 0 x x xTransmissor

x x x x 7 6 5 4Receptor

3 2 1 0 x x x xTransmissor

x x x 7 6 5 4 3Receptor

2 1 0 x x x x xTransmissor

x x 7 6 5 4 3 2Receptor

1 0 x x x x x xTransmissor

x 7 6 5 4 3 2 1Receptor

0 x x x x x x xTransmissor

7 6 5 4 3 2 1 0Receptor

x x x x x x x xTransmissor

Microwire™COMUNICAÇÃO SERIAL5

12825/04/2017

H G F E D C B AP O N M L K J I

MASTER SLAVESI SO

SI

SKInício da transmissão full-duplex

P O N M L K J IH G F E D C B A

MASTER SLAVESI SO

SI

SKTérmino da transmissão full-duplex

Microwire™

COMUNICAÇÃO SERIAL5

12925/04/2017

• Os dois registradores de 8 bits podem ser consideradoscomo um único registrador de deslocamento de 16 bits.

• A comunicação implica na operação swap do registradorde 16 bits.

• A comunicação implica na permutação das informaçõesdos registradores de deslocamento de 8 bits.

• O sentido da comunicação é determinado a partir do ladoonde o registrador de 8 bits é escrito e o lado onde é lido.

Microwire™COMUNICAÇÃO SERIAL5

13025/04/2017

P O N M L K J I H G F E D C B AO N M L K J I H G F E D C B A P

N M L K J I H G F E D C B A P O

M L K J I H G F E D C B A P O NL K J I H G F E D C B A P O N M

K J I H G F E D C B A P O N M LJ I H G F E D C B A P O N M L K

I H G F E D C B A P O N M L K J

H G F E D C B A P O N M L K J I

Início

Passo 1

Passo 2

Passo 3

Passo 4

Passo 5

Passo 6

Passo 7

Passo 8

Microwire™

COMUNICAÇÃO SERIAL5

13125/04/2017

Microwire™

x x x x x x x xShift register 2

x x x x x x x xShift register 1

7 6 5 4 3 2 1 0Buffer 1

TransmitterInício da transmissão simplex

7 6 5 4 3 2 1 0Shift register 2

x x x x x x x xShift register

7 6 5 4 3 2 1 0Buffer 2

ReceiverTérmino da transmissão simplex

COMUNICAÇÃO SERIAL5

13225/04/2017

Microwire™

x x x x x x x xShift register

7 6 5 4 3 2 1 0Buffer

TransmitterInício da transmissão

7 6 5 4 3 2 1 0Shift register

7 6 5 4 3 2 1 0Buffer

ReceiverTérmino da transmissão

• A transmissão tem início após a gravação do buffer.• A recepção é concluída com a gravação do buffer.• O buffer serve para que as palavras parciais

contidas no shift register permaneçam indisponíveispara o resto do circuito.

Page 23: 5 Portas de comunicação 2 - ufsj.edu.br - PB... · • Diferentemente do módulo PWM, este PWM possui resolução de 16 bits, não podendo operar em resolução menor. Modos 00

25/04/2017

23

COMUNICAÇÃO SERIAL5

13325/04/2017

• AN474.• SIO: Serial Input-Output Register.• ÷: Prescaler.

Microwire™

prescaler

COMUNICAÇÃO SERIAL5

13425/04/2017

Master Slave

prescaler

Microwire™

COMUNICAÇÃO SERIAL5

13525/04/2017

Microwire™ – Dois slaves – Daisy-chain

MASTER

SLAVE 1SKSISO

SLAVE 2

SK1

SI1

SO1

SK2

SI2

SO2

COMUNICAÇÃO SERIAL5

13625/04/2017

Microwire™ – Dois slaves – Daisy-chain

X W V U T S R Q P O N M L K J I H G F E D C B A

SLAVE2 SLAVE1 MASTER

P O N M L K J I H G F E D C B A X W V U T S R Q

SLAVE2 SLAVE1 MASTER

H G F E D C B A X W V U T S R Q P O N M L K J I

SLAVE2 SLAVE1 MASTER

COMUNICAÇÃO SERIAL5

13725/04/2017

Microwire™ – N slaves – Daisy-chain

MASTER

SLAVE N SLAVE 4 SLAVE 3 SLAVE 2 SLAVE 1

SCLK

COMUNICAÇÃO SERIAL5

13825/04/2017

Microwire™ – Dois slaves em paralelo

MASTER

SLAVE 1SKSISO

SLAVE 2

SK1

SI1

SO1

SK2

SI2

SO2Lógica de seleção

CS

CS

Page 24: 5 Portas de comunicação 2 - ufsj.edu.br - PB... · • Diferentemente do módulo PWM, este PWM possui resolução de 16 bits, não podendo operar em resolução menor. Modos 00

25/04/2017

24

COMUNICAÇÃO SERIAL5

13925/04/2017

Microwire™/Plus

• AN579.• SIOR: Serial Input-Output Register.• A novidade são os bits de sinalização.

COMUNICAÇÃO SERIAL5

14025/04/2017

• Serial Peripheral Interface.• Evolução da comunicação serial Microwire™.• Tudo o que vale para o Microwire™ vale para o SPI™.• Marca registrada da National Semiconductor.• Originalmente projetado para operar a 110kHz.• É um Microwire™ com mais recursos.• Novos recursos:

• Quatro modos de clock, ao invés de um.• Controle slave select.

SPI™

COMUNICAÇÃO SERIAL5

14125/04/2017

Concepção• Concepção é a forma como o protocolo foi idealizado e nem

sempre corresponde, 100%, à implementação física, comona PIC®, por exemplo.

• Utiliza quatro vias:• SCLK: Serial Clock.• MOSI: Master Out Slave In - Data from Master to Slave.• MISO: Master In Slave Out - Data from Slave to Master.• /SS: Slave Select (opcional).

• Pode haver vários slaves, sendo, cada um, identificado poruma via /SS (no nosso da PIC®, apenas uma via).

• Pode haver apenas um master.• O número de vias é dado por 3 + N, N é o número de slaves.

COMUNICAÇÃO SERIAL5

14225/04/2017

Concepção – Um slave

• Esta é a concepção feita pela National Semiconductor.• Quando há, apenas, um slave, a ligação /SS é opcional.• O uso de /SS dá mais segurança à comunicação.• Na PIC®, o nome dos pinos é diferente.• Na PIC®, o /SS do master vem de um bit de porta paralela.• Se MOSI está desconectado, o slave lê “0”.• Se MISO está desconectado, o master lê “0”.

MASTER SLAVE

SCLKMOSIMISO/SS

Opcional

COMUNICAÇÃO SERIAL5

14325/04/2017

Concepção – Um slave

MASTER SLAVE

SCLKMOSIMISO/SS

Opcional

MASTER SLAVE

SCLKMOSIMISO/SS

Opcional

MASTER SLAVE

SCLKMOSIMISO/SS

Opcional

Simplex MS Simplex SM

Full duplex ou Half duplex

COMUNICAÇÃO SERIAL5

14425/04/2017

Concepção – Dois slaves

MASTER

SLAVE 1SCLKMOSIMISO/SS1/SS2 SLAVE 2

SCLK1

MOSI1

MISO1

/SS1

SCLK2

MOSI2

MISO2

/SS2

Page 25: 5 Portas de comunicação 2 - ufsj.edu.br - PB... · • Diferentemente do módulo PWM, este PWM possui resolução de 16 bits, não podendo operar em resolução menor. Modos 00

25/04/2017

25

COMUNICAÇÃO SERIAL5

14525/04/2017

Concepção – Dois slaves

t

t

SLAVE1

SLAVE2 SLAVE2 buzzy

SLAVE1 buzzySLAVE1 iddle

SLAVE2 iddle

SS1

SS2

/SS2 /SS1 Situação1 1 Sem comunicação1 0 Comunicação habilitada com slave 10 1 Comunicação habilitada com slave 20 0 Conceitualmente proibido

COMUNICAÇÃO SERIAL5

14625/04/2017

Concepção – Dois slaves

• Por causa da existência de três situações válidas, nãoé possível empregar um decodificador para transformara seleção entre dois slave’s em uma seleção entrequatro slave’s.

• A existência de, apenas, uma saída /SS não temserventia na seleção de dispositivo, porém é útil naaplicação de protocolos de comunicação mais seguros.

• Na PIC®, não existe saída /SS.

COMUNICAÇÃO SERIAL5

14725/04/2017

Concepção – Dois slaves – Daisy-chain

MASTER

SLAVE 1SCLKMOSIMISO/SS

SLAVE 2

SCLK1

MOSI1

MISO1

/SS1

SCLK2

MOSI2

MISO2

/SS2

Opcional

COMUNICAÇÃO SERIAL5

14825/04/2017

Concepção – Dois slaves – Daisy-chain

• A ligação Daisy-chain tem a vantagem de usar, apenas,um sinal /SS.

• Como há, apenas, um /SS, essa ligação é opcional.• Quando se tem muitos slaves a uma distância grande,

esta ligação pode representar grande economia de fios.• Sua desvantagem é a maior demora na comunicação,

pois as palavras precisam passar por todos os slave’s.

COMUNICAÇÃO SERIAL5

14925/04/2017

Concepção – Configuração

• CPOL Clock Polarity.• CPHA Clock Phase.

http://upload.wikimedia.org/wikipedia/commons/thumb/6/6b/SPI_timing_diagram2.svg/400px-SPI_timing_diagram2.svg.png

COMUNICAÇÃO SERIAL5

t

t

CPOL=0

CPOL=1

15025/04/2017

Concepção – Configuração

• CPOL=0: Comunicação inativa (idle) em nível baixo.• CPOL=1: Comunicação inativa (idle) em nível alto.

Page 26: 5 Portas de comunicação 2 - ufsj.edu.br - PB... · • Diferentemente do módulo PWM, este PWM possui resolução de 16 bits, não podendo operar em resolução menor. Modos 00

25/04/2017

26

COMUNICAÇÃO SERIAL5

15125/04/2017

Concepção – Configuração

t

CPOL=0CPHA=0

7 6 5 4 3 2 1 0idle idle

t

CPOL=0CPHA=1

7 6 5 4 3 2 1 0idle idle

COMUNICAÇÃO SERIAL5

15225/04/2017

Concepção – Configuração

t

CPOL=1CPHA=0

7 6 5 4 3 2 1 0idle idle

t

CPOL=1CPHA=1

7 6 5 4 3 2 1 0idle idle

COMUNICAÇÃO SERIAL5

15325/04/2017

Concepção – Configuração

t

CPOL=0

t/SS

t

CPOL=1

t/SS

• /SS=0: Comunicação permitida.• /SS=1: Sem comunicação – idle.

idle

idle

idle

idle

COMUNICAÇÃO SERIAL5

15425/04/2017

Sensoriamento de longa distância

BarramentoAnalógico

Processamento

Digital

Inlcui entrada serial

Conversor paralelo /

serial

BarramentoDigital 1-bit

SDI

• Como o conversor serial é simplex, há, apenas, uma via desaída de dados, mesmo se o protocolo for Microwire, SPI, etc.

COMUNICAÇÃO SERIAL5

15525/04/2017

Sensoriamento de longa distância

Processamento

Digital

Inlcui entrada serial

Conversor paralelo /

serial

BarramentoDigital 1-bit

SDI

Processamento

Digital

Inlcui entrada serial

1-bitSDI

COMUNICAÇÃO SERIAL5

15625/04/2017

Slave

• O slave pode ser um dispositivo do tipo:• Memória.• Controlador de display (simplex – escrita).• Controlador de teclado (simplex – leitura).• Mouse (simplex – leitura).• Sensor (simplex – leitura).

Page 27: 5 Portas de comunicação 2 - ufsj.edu.br - PB... · • Diferentemente do módulo PWM, este PWM possui resolução de 16 bits, não podendo operar em resolução menor. Modos 00

25/04/2017

27

COMUNICAÇÃO SERIAL5

15725/04/2017

SERIAL EEPROM

https://www.microchip.com/pagehandler/en-us/products/memory/serialEEPROM/home.html

COMUNICAÇÃO SERIAL5

15825/04/2017

25AA010A/25LC010A

http://ww1.microchip.com/downloads/en/DeviceDoc/21832H.pdf

28 x 8-bit SPI™ Bus Serial EEPROM

COMUNICAÇÃO SERIAL5

15925/04/2017

SST25VF512

http://ww1.microchip.com/downloads/en/DeviceDoc/25076A.pdf

512 Kbit SPI™ Serial Flash

COMUNICAÇÃO SERIAL5

16025/04/2017

Memórias e barramentos

https://www.microchip.com/pagehandler/en-us/products/memory/serialSRAM/home.html

COMUNICAÇÃO SERIAL5

16125/04/2017

Vantagem da memória serial• Em um circuito integrado, geralmente, o

maior custo está no encapsulamento.• O custo de encapsulamento é devido a:

1. Pinos de alumínio (Al).2. Área plástica ou cerâmica para

acomodar os pinos.3. Fios de ouro ligando o die e os pinos4. Soldas dos fios de Au nos pinos de Al.5. Contatos de metalização (Al) no die.6. Soldas dos fios de Au no die.7. Área no die gasta com metalizações.

DIE

COMUNICAÇÃO SERIAL5

16225/04/2017

Vantagem da memória serial

8. Área no die gasta para quebarramentos cheguem até asmetalizações.

9. Soldagem dos pinos nas placas.10.Furação das placas (caso haja furos).11.Solda de estanho na placa.12.Cobre (caso haja furos cobreados).13.Área da placa gasta com barramentos.14.Custo de cabos flat para comunicação

entre placas.

Áreaútil

Die

Page 28: 5 Portas de comunicação 2 - ufsj.edu.br - PB... · • Diferentemente do módulo PWM, este PWM possui resolução de 16 bits, não podendo operar em resolução menor. Modos 00

25/04/2017

28

COMUNICAÇÃO SERIAL5

16325/04/2017

Vantagem da memória serial

• Na versão paralela, há problema de:1. Chip grande ocupa mais espaço.2. Quanto mais pinos, maior é a chance

de um ocorrer um mal contato.3. Quanto mais pinos, maior é o peso do

produto final.

COMUNICAÇÃO SERIAL5

16425/04/2017

• Todos os catorze itens aumentam com o aumentodo número de pinos dos chips.

• Como estas vias, quase sempre, interligam doischips, o aumento do número de pinos vem empares.

• Reduzir o número de vias é fundamental na reduçãodo custo de produção e no aumento do yeld.

• Quando o requisito de rapidez não é crítico, o usode memória serial torna o produto final mais barato.

• O chip de memória serial é mais barato do que ochip de memória paralela equivalente, por causa doencapsulamento menor, ainda que seja maiscomplexo internamente,.

Vantagem da memória serial

COMUNICAÇÃO SERIAL5

16525/04/2017

Vantagem da memória serial

• Comunicação com memória(HD) padrão PATA ou IDC.

• Paralelo.• Mais antigo (obsoleto).• Mais caro.

• Comunicação com memória(HD) padrão SATA.

• Série.• Mais recente.• Mais barato.

COMUNICAÇÃO SERIAL5

16625/04/2017

• Não somente memórias, mas todos os dispositivosde entrada/saída também apresentam redução decusto quando o acesso é feito de forma serial.

• Entrada:• Teclado, push-button, toogle-swich.• Mouse.• Outros sensores.

• Saída:• Lâmpada, LED, célula eletroluminescente.• Display (7-seg, alfa, 5x7, gráfico).• Outros atuadores.

Vantagem da comunicação serial

COMUNICAÇÃO SERIAL5

16725/04/2017

Display SPI™

http://guy.carpenter.id.au/gaugette/resources/2012-11-08/ssd1306.jpghttps://www.adafruit.com/images/medium/ID661_MED.jpghttp://www.plastibots.com/wordpress/wp-content/uploads/2012/03/SSD1306AdafruitOLED_1-300x199.jpghttps://www.adafruit.com/images/medium/ID931_MED.jpg

COMUNICAÇÃO SERIAL5

16825/04/2017

Display I2C™

https://www.adafruit.com/images/medium/ID931_MED.jpghttp://bringyourself.in/wp-content/uploads/2010/04/TwiLeDisp4x7s%2B2L-11.jpghttp://www.wide.hk/img/I2C_GLCD_01.jpg

Page 29: 5 Portas de comunicação 2 - ufsj.edu.br - PB... · • Diferentemente do módulo PWM, este PWM possui resolução de 16 bits, não podendo operar em resolução menor. Modos 00

25/04/2017

29

COMUNICAÇÃO SERIAL5

16925/04/2017

Display UART™

https://www.adafruit.com/images/medium/ID931_MED.jpghttp://bringyourself.in/wp-content/uploads/2010/04/TwiLeDisp4x7s%2B2L-11.jpghttp://www.wide.hk/img/I2C_GLCD_01.jpg

COMUNICAÇÃO SERIAL5

17025/04/2017

Sensor de temperatura Microwire™/SPI™

http://www.farnell.com/datasheets /1762747.pdf

• Input: Programação das configurações.• Output: Sensor em uso.

COMUNICAÇÃO SERIAL5

17125/04/2017

Controlador PWM com SPI™

http://cache.freescale.com/files/analog/doc/data_sheet/MC33999.pdf

MASTER SLAVE

PIC

COMUNICAÇÃO SERIAL5

17225/04/2017

Sensor de presença I2C™• Fully Integrated Proximity Sensor with Infrared Emitter,

I2C Interface, and Interrupt Function.

COMUNICAÇÃO SERIAL5

17325/04/2017

Conversores SPI™, I2C™, USART™ para USB

http://www.robotshop.com/media/f iles/images/devantec-usb-i2c-spi-serial-interface.jpghttp://www.robotstorehk.com/sensors/images/USB-I2C.jpg

COMUNICAÇÃO SERIAL5

17425/04/2017

• System Management Bus.• Marca registrada da Intel® Corporation.• Lançado em 1995.• Compatível com I2C™.

SM Bus™

Page 30: 5 Portas de comunicação 2 - ufsj.edu.br - PB... · • Diferentemente do módulo PWM, este PWM possui resolução de 16 bits, não podendo operar em resolução menor. Modos 00

25/04/2017

30

COMUNICAÇÃO SERIAL5

17525/04/2017

• Inter-Integrated Circuit.• Marca registrada da NXP Semiconductors.• Lançado na TecForum at DesignCon 2003

em San Jose, CA, 27/01/2003.• Março de 2003 (Application Note 10216-01).• Evolução do SMBus™.

I2C™

http://www.nxp.com/documents/user_manual/UM10204.pdf

COMUNICAÇÃO SERIAL5

17625/04/2017

I2C™

Mode Data transferStandard-mode 100 kbit/s

Fast-mode 400 kbit/sFast-mode plus 1 Mbit/s

High-speed mode 3.4 Mbit/s

COMUNICAÇÃO SERIAL5

17725/04/2017

I2C™

• Permite transmissão por meio de uma única via.• Transmissão e recepção são realizados em

momentos separados.• A comunicação é do tipo half-duplex.• Utiliza duas vias (concepção):

• SCL: Serial Clock Line.• SDA: Seria Data Line.

COMUNICAÇÃO SERIAL5

17825/04/2017

I2C™ – Idéia de funcionamento

COMUNICAÇÃO SERIAL5

17925/04/2017

Ponte SPI™ para I2C™ em VHDL

http://www.eewiki.net/display/LOGIC/SPI+to+I2C+Bridge+%28VHDL%29

SPI™ – PIC16F8776

18025/04/2017

SPI™ – PIC16F877

Page 31: 5 Portas de comunicação 2 - ufsj.edu.br - PB... · • Diferentemente do módulo PWM, este PWM possui resolução de 16 bits, não podendo operar em resolução menor. Modos 00

25/04/2017

31

SPI™ – PIC16F8776

18125/04/2017

• SSP Synchronous Serial Port• USART™ Universal Synchronous

Asynchronous Receiver Transmitter

Módulos seriais na PIC

SPI™ – PIC16F8776

18225/04/2017

• Synchronous Serial Port.• Porta serial síncrona.• Comunicação com periféricos externos ou outras MCU’s.• Quatro modos de operação.

• SPI™ master.• SPI™ slave.• I2C™ master.• I2C™ slave.

SSP

VEREMOS

VEREMOS

SPI™ – PIC16F8776

18325/04/2017

1. SSP: Synchronous Serial Port.2. BSSP: Basic SSP.3. MSSP: Master SSP (PIC16F877).

Módulo SSP – Variações

MSSP

SSP

BSSP

Recursos

VEREMOS

SPI™ – PIC16F8776

18425/04/2017

SPI™/I2C™ – Modos de operação<SSPM3:SSPM0> SSP BSSP MSSP

0000

SPI™ Master0001001000110100 SPI™ Slave01010110 I2C™ Slave01111000

ReservadoI2C™ Master

1001

Reservado

1010

1011 I2C™ Master1100 Reservado11011110 I2C™ Slave I2C™ Master1111

VEREMOS

VEREMOS

SPI™ – PIC16F8776

18525/04/2017

SPI™/I2C™ – Modos de operação

<SSPM2:SSPM0> Modo000 SPI™ Master mode clock = fOSC/4 = fCY (1:1)001 SPI™ Master mode clock = fOSC/16 = fCY/4 (1:4)010 SPI™ Master mode clock = fOSC/64 = fCY/16 (1:16)011 SPI™ Master mode clock = TMR2 output/2.100 SPI™ Slave mode clock = SCK pin. /SS pin control enabled.101 SPI™ Slave mode clock = SCK pin. /SS pin control disabled.110 I2C™ Slave mode 7-bit address.111 I2C™ Slave mode 10-bit address.

SPI™ – PIC16F8776

18625/04/2017

SPI™/I2C™ – SFR’s• SSPSTAT SSP Status Register 094h• SSPCON SSP Control Register 014h

• SSPBUF SSP Receive Buffer/Transmit Register 013h• SSPADD SSP Address Register (I2C™) 093h

• SSPCON2 SSP Control Register 2 (I2C™) 091h

• SSPSR SSP Shift Register ---

VEREMOS

VEREMOS

VEREMOS

VEREMOS

Page 32: 5 Portas de comunicação 2 - ufsj.edu.br - PB... · • Diferentemente do módulo PWM, este PWM possui resolução de 16 bits, não podendo operar em resolução menor. Modos 00

25/04/2017

32

SPI™ – PIC16F8776

18725/04/2017

SPI™/I2C™ – SFR’s – BSSP

SSPCON

SSPSTAT

0 0

SPI™ – PIC16F8776

18825/04/2017

SPI™/I2C™ – SFR’s – SSP

• Os bits SMP e CKE estão ausentes no modobásico.

• O modo básico contém SMP=0 e CKE=0, asmesmas usadas no Microwire™.

SSPCON

SSPSTAT

SPI™ – PIC16F8776

18925/04/2017

SPI™/I2C™ – SFR’s – MSSP

SSPCON2 (I2C™)

• O SFR SSPCON2 está ausente no modo normal.• A diferença entre SSP e MSSP está, apenas, no modo I2C™.

SSPCON

SSPSTATVEREMOS

VEREMOS

SPI™ – PIC16F8776

19025/04/2017

SPI™/I2C™ – Pinagem na PIC

• /SS SPI™ Slave Select 7• SCK SPI™ Synchronous Serial Clock input/output 18• SDO SPI™ Data Out 24• SDI SPI™ Data In 23

• SCL I2C™ Synchronous Serial Clock input/output 18• SDA I2C™ Data I/O 23

VEREMOS

VEREMOS

VEREMOS

VEREMOS

SPI™ – PIC16F8776

19125/04/2017

SPI™/I2C™ – Pinagem

SDOSDI/SDA

/SS

SCK/SCL

SPI™ – PIC16F8776

19225/04/2017

SPI™/I2C™ – Habilitação• SSPCON<5> SSPEN: Synchronous Serial Port Enable bit.

• 1: Habilitado.• 0: Desabilitado (reset default).

• No modo desabilitado, o módulo serial é desligado,economizando energia.

• No modo desabilitado, os pinos envolvidos na comunicaçãoserial são utilizados pela porta paralela ou AN4.• 07 RA5/AN4/SS• 18 RC3/SCK/SCL• 24 RC5/SDO• 23 RC4/SDI/SDA

Page 33: 5 Portas de comunicação 2 - ufsj.edu.br - PB... · • Diferentemente do módulo PWM, este PWM possui resolução de 16 bits, não podendo operar em resolução menor. Modos 00

25/04/2017

33

SPI™ – PIC16F8776

19325/04/2017

SPI™/I2C™ – Configuração dos pinos

• 07 RA5/AN4/SS• 18 RC3/SCK/SCL• 24 RC5/SDO• 23 RC4/SDI/SDA

reset default

• No modo master ou no modo slave 101,o pino 07 não é usado na comunicação,podendo receber RA5 ou AN4.

• No modo slave 100, o pino 07 deve serconfigurado para sinal digital por meiode ADCON1<3:0>.

<SSPM2:SSPM0> Modo100 SPI™ Slave mode clock = SCK pin. /SS pin control enabled.101 SPI™ Slave mode clock = SCK pin. /SS pin control disabled.

<PCFG3:PCFG0>

AN4

RA50000 A0001 A0010 A0011 A0100 D0101 D011x D1000 A1001 A1010 A1011 A1100 A1101 D1110 D1111 D

SPI™ – PIC16F8776

19425/04/2017

MultiplexaçãoPinagem na PIC

• /SS Slave Select• SCK Clock• SDO Data Out• SDI Data In

SPI™ – PIC16F8776

/SSNão usado

19525/04/2017

• TRISC<3> = 0 SCK Saída• TRISC<4> = 1 SDI Entrada• TRISC<5> = 0 SDO Saída• TRISA<5> = X /SS Não usado

Master – Pinagem na PIC

SDOSDISCK

SPI™ – PIC16F8776

19625/04/2017

Slave – Pinagem na PIC

SDOSDISCK

/SS• TRISC<3> = 1 SCK Entrada• TRISC<4> = 1 SDI Entrada• TRISC<5> = 0 SDO Saída• TRISA<5> = 1 /SS Entrada

SPI™ – PIC16F8776

19725/04/2017

Comunicação simplex

SDISDO

TransmissorMaster

ou Slave

ReceptorMaster

ou Slave

• TRISC<5> = 0 Saída • TRISC<4> = 1 Entrada

SPI™ – PIC16F8776

19825/04/2017

SDOSDISCK

SDOSDISCK

Master Slave

Um slave select

/SSOpcional

Bit de porta paralela/SSNão usado

Page 34: 5 Portas de comunicação 2 - ufsj.edu.br - PB... · • Diferentemente do módulo PWM, este PWM possui resolução de 16 bits, não podendo operar em resolução menor. Modos 00

25/04/2017

34

SPI™ – PIC16F8776

SDO

SDI

SCK

Master

Bits de portaparalela

/SS1

SDO1

SDI1

SCK1

Slave1

/SS2

SDO2

SDI2

SCK2

Slave2

19925/04/2017

Dois slave selectsSPI™ – PIC16F8776

20025/04/2017

Dois slave selects

• O curto-circuito entre SDO1 e SDO2 não é problema porque, como somente um deles é habilitado por vêz, entãoo desabilitado possui este pino em alta impedância (3S).

• O curto-circuito entre SDI1 e SDI2 requer que sejamobservadas as limitações de fan-out do pino SDO master.

SPI™ – PIC16F8776

20125/04/2017

Configuração Daisy-chain

Bit de portaparalela Opcional

SDO

SDI

SCK

Master

/SS

SDO1

SDI1

SCK1

Slave1

/SS

SDO2

SDI2

SCK2

Slave2

SPI™ – PIC16F8776

20225/04/2017

Modos de operação

<SSPM3:SSPM0> Modo0000 Master, clock = fOSC/4 = fCY (1:1)0001 Master, clock = fOSC/16 = fCY/4 (1:4)0010 Master, clock = fOSC/64 = fCY/16 (1:16)0011 Master, clock = TMR2out/20100 Slave, clock = SCK. /SS habilitado0101 Slave, clock = SCK. /SS desabilitado

reset default

SSPCON

SSPSTAT

SPI™ – PIC16F8776

20325/04/2017

Slave Select<SSPM3:SSPM0> Modo0100 Slave, clock = SCK. /SS habilitado0101 Slave, clock = SCK. /SS desabilitado

• No modo slave com /SS desabilitado, estepino assume a função de RA5 ou de AN4.

• No modo master, como a função /SS nãoé usada, então este pino assume a funçãode RA5 ou de AN4.• 07 RA5/AN4/SS.

• Se /SS está em uso, a configuração paraeste pino deve ser a digital por meio deADCON1<3:0> <PCFG3:PCFG0>.

SPI™ – PIC16F8776

20425/04/2017

Configuração

• SSPCON<5> SSPEN: Synchronous Serial Port Enable bit.• 1: Habilitado.• 0: Desabilitado (reset default).

• SSPCON<4> CKP: Clock Polarity Select bit.• 1: Ocioso em nível alto.• 0: Ocioso em nível baixo (reset default).

• Na comunicação entre duas MCU’s ou mais, a configuraçãode CKP deve ser a mesma para todas elas.

Page 35: 5 Portas de comunicação 2 - ufsj.edu.br - PB... · • Diferentemente do módulo PWM, este PWM possui resolução de 16 bits, não podendo operar em resolução menor. Modos 00

25/04/2017

35

SPI™ – PIC16F8776

20525/04/2017

Modos de operação

• Master: A PIC controla o relógio da comunicação.• Slave: O outro lado controla o relógio da comunicação.

• Master: SCK é a saída de relógio SPI™.• Slave: SCK é entrada de relógio SPI™.

• SCK Master: Configurar TRISC<3> = 0• SCK Slave: Configurar TRISC<3> = 1

SPI™ – PIC16F8776

20625/04/2017

Conversão série/paralelo

SPI™ – PIC16F8776

20725/04/2017

Conversão sérieparalelo

• Recepção.• O bit 7 é o primeiro a ser recebido.• A cada término de conversão o

shift register é copiado para obuffer register (master e slave).

SPI™ – PIC16F8776

20825/04/2017

Conversão paralelosérie

• Transmissão.• O bit 7 é o primeiro a ser enviado.• A cada cópia do buffer register

para o shift register, dá-se início auma conversão (master apenas).

SPI™ – PIC16F8776

20925/04/2017

Conversão série/paralelo

glitch filter

SPI™ – PIC16F8776

21025/04/2017

Conexão

Page 36: 5 Portas de comunicação 2 - ufsj.edu.br - PB... · • Diferentemente do módulo PWM, este PWM possui resolução de 16 bits, não podendo operar em resolução menor. Modos 00

25/04/2017

36

SPI™ – PIC16F8776

21125/04/2017

Conexão

http://ww1.microchip.com/downloads/en/devicedoc/spi.pdf

*Bit de porta paralela

*

SPI™ – PIC16F8776

21225/04/2017

Shift Register

bit 7

bit 6

bit 5

bit 4

bit 3

bit 2

bit 1

bit 0 SDISDO

SSPSR

SPI™ – PIC16F8776

21325/04/2017

Buffer

• O buffer permite que a nova recepção sejainiciada antes da leitura da última palavrarecebida.

• O buffer não permite a escrita do mesmoantes do término da última transmissão;isso requer mais um buffer.

• O buffer também impede que palavrasincompletas sejam lidas.

• O buffer faz o papel de um holding register.

SPI™ – PIC16F8776

21425/04/2017

Conversão

ConversorParalelo

Série8-bit

8-bitSSPBUF

SPI™dataout*

8-bitdatabus

ConversorSérie

Paralelo8-bit

8-bitSSPBUF

SPI™data

in

8-bitdatabus

Receiver

Transmitter

SSPSR

SSPSR

*Vide slide seguinte.

SPI™ – PIC16F8776

21525/04/2017

Conversão série/paralelo

• A escrita no buffer register implica em uma automática cópiapara o shift register.

• A escrita no buffer do master implica em uma automáticaconversão paralelo→série.

• A escrita no buffer do slave implica em aguardar até que omaster envie o sinal serial clock para dar andamento àconversão paralelo→série.

• Se o módulo SSP está desligado (SSPCON<5> SSPEN = 0), aescrita no buffer register não implica em uma automática cópiapara o shift register e SSPBUF se comporta como um GPR.

SPI™ – PIC16F8776

21625/04/2017

Recepção – Buffer full

• SSPSTAT<0> <BF>: Buffer Full Status bit.• 0: Comunicação em andamento.• 1: Comunicação concluída.

Page 37: 5 Portas de comunicação 2 - ufsj.edu.br - PB... · • Diferentemente do módulo PWM, este PWM possui resolução de 16 bits, não podendo operar em resolução menor. Modos 00

25/04/2017

37

SPI™ – PIC16F8776

21725/04/2017

7

770

0

0

0

7

7

70

0 7

7

0SDI

• BF=1

• SSPIF=1

• SSPSRSSPBUF

• BF=?

Recepção – Buffer fullSSPSR

SPI™ – PIC16F8776

21825/04/2017

Leitura da recepção• O bit BF não pode ser alterado pelo programador.• O bit BF=1 indica que uma nova palavra foi recebida.• O bit BF=1 indica que a leitura de SSPBUF já pode ser feita.• O bit BF=1 indica que a leitura ainda não foi realizada.• O bit BF=0 indica que não há nova palavra ou que a leitura

já foi feita.• Essa leitura deve ser realizada antes da conclusão da

recepção da próxima palavra.• Ao realizar a leitura, BF=0 automaticamente.

SPI™ – PIC16F8776

21925/04/2017

Recepção

• Término daleitura do bit 0da palavra A.

• Início daleitura do bit 7da palavra B.

8 1 2 3 4 5 6 7 8 1 2 3 4 5

• Término daleitura do bit 0da palavra B.

• Início daleitura do bit 7da palavra C.

RecepçãoPalavra B Recepção

Palavra CRecepçãoPalavra A

Passo

SPI™ – PIC16F8776

22025/04/2017

Passo

8 1 2 3 4 5 6 7 8 1 2 3 4 5

RecepçãoPalavra B Recepção

Palavra CRecepçãoPalavra A

• Recepção dapalavra B.

• Possibilidadede leitura dapalavra A.

• Recepção dapalavra A.

• Possibilidadede leitura dapalavra B.

Recepção

SPI™ – PIC16F8776

22125/04/2017

• Quando a MCU age apenas como transmissor emuma comunicação simplex, o bit BF é irrelevante.

• Quando master ou slave realizam uma transmissão,ocorre, automaticamente, a recepção dos dadoscontidos no shift register do outro lado, recepçãoque é encerrada com BF=1.

• Isto significa que, mesmo em uma comunicaçãohalf-duplex, é preciso fazer BF=0 após cadatransmissão, no master e no slave.

Recepção – Buffer fullSPI™ – PIC16F8776

22225/04/2017

• Um contador de três bits identifica a conclusãoda transmissão/recepção dos oito bits.

Buffer full

3-bitCOUNTER

SPI™clock

Copiar SSPSR para SSPBUFBF=1

Se BF anterior =1 então SSPOV=1SSPIF=1

overflow

Bloquear nova comunicação

Page 38: 5 Portas de comunicação 2 - ufsj.edu.br - PB... · • Diferentemente do módulo PWM, este PWM possui resolução de 16 bits, não podendo operar em resolução menor. Modos 00

25/04/2017

38

SPI™ – PIC16F8776

22325/04/2017

Colisão

• Tentativa de escrever em SSPBUF durante arecepção ou transmissão.

• A escrita não é efetuada.• SSPCON<7> <WCOL>: Write Collision Detect bit.• 0: Não houve colisão.• 1: Houve colisão.• Trata-se de um flag, não pode receber BSF, deve

ser zerado manualmente.

SPI™ – PIC16F8776

22425/04/2017

7

770

0

0

0

7

7

70

0 7

7

0SDISDO

• Não é permitidoescrever em SSPBUF.

• Ao tentar escreverem SSPBUF: WCOL=1

• É permitido escrever em SSPBUF.

Colisão

SPI™ – PIC16F8776

22525/04/2017

Overflow

• SSPCON<6> <SSPOV>: Receive Overflow Indicator bit.• 0: Não houve overflow.• 1: Houve overflow.• Uma nova palavra foi recebida enquanto BF=1.• A palavra anterior foi perdida.• Este bit somente funciona no slave, pois, no master, há total

controle do instante da recepção.• Mesmo que o slave apenas transmita, é preciso sempre lerSSPBUF após as transmissões a fim de fazer BF=0 e SSPOV=0.

• Trata-se de um flag, não pode receber BSF, deve ser zeradomanualmente.

SPI™ – PIC16F8776

22625/04/2017

Conversão série/paraleloTransmitter

• SSPBUF recebe a palavra de oito bits do data bus.• Sendo master, a transmissão é iniciada.• Sendo slave, o sinal de relógio do master é aguardado.• SSPBUF mantém os oito bits da palavra até que todos os oito

bits tenham sido enviados ao pino de saída serial por meio deSSPSR. Após isso, é possível alterar SSPBUF.

• Não é permitida a escrita em SSPBUF durante a transmissão.• Se fosse permitida, uma escrita em SSPBUF durante a

transmissão invalidaria a transmissão em andamento, pois aescrita em SSPBUF dá início, automaticamente, a uma novatransmissão.

SPI™ – PIC16F8776

22725/04/2017

Conversão série/paraleloReceiver

• SSPSR recebe os oito bits do pino de entrada serial.• Quando os oito bits já forem recebidos, SSPSR é copiado

para SSPBUF, que pode ser copiado para o data bus.• Na cópia do SSPSR para SSPBUF, BF=1

automaticamente, no master e no slave.• Não é permitida a escrita em SSPBUF durante a recepção.• Se fosse permitida, uma escrita em SSPBUF durante a

recepção invalidaria a recepção em andamento, pois aescrita em SSPBUF dá início, automaticamente, a umanova transmissão.

SPI™ – PIC16F8776

22825/04/2017

SDO 7 6 5 4 3 2 1 06 5 4 3 2 1 0 x

5 4 3 2 1 0 x x

4 3 2 1 0 x x x3 2 1 0 x x x x2 1 0 x x x x x1 0 x x x x x x

0 x x x x x x x

SDI

x x x x x x x x

Gravado por meio de escrita em SSPBUF.

Master

Deslocamentos automáticos após escrita em SSPBUF.

Copiado automaticamente para SSPBUF; BF=1.

Situação 1 – Master para slave – Half duplex

Page 39: 5 Portas de comunicação 2 - ufsj.edu.br - PB... · • Diferentemente do módulo PWM, este PWM possui resolução de 16 bits, não podendo operar em resolução menor. Modos 00

25/04/2017

39

SPI™ – PIC16F8776

22925/04/2017

SDO SDISlave

x x x x x x x x

x x x x x x x 7

x x x x x x 7 6x x x x x 7 6 5

x x x x 7 6 5 4 x x x 7 6 5 4 3 x x 7 6 5 4 3 2

x 7 6 5 4 3 2 1

7 6 5 4 3 2 1 0Copiado automaticamente para SSPBUF; BF=1.

Deslocamentos automáticos em função de SCK e /SS.

Situação 1 – Master para slave – Half duplexSPI™ – PIC16F8776

23025/04/2017

Situação 1 – Master para slave – Half duplex

7 6 5 4 3 2 1 0Shift register

7 6 5 4 3 2 1 0Buffer

x x x x x x x xShift register

x x x x x x x xShift register

x x x x x x x xBuffer

7 6 5 4 3 2 1 0Shift register

7 6 5 4 3 2 1 0Buffer

7 6 5 4 3 2 1 0Shift register

x x x x x x x xShift register

x x x x x x x xShift register

7 6 5 4 3 2 1 0Shift register

(1)

Slave Receiver Master Transmitter

(2)

(3)

(4)

SPI™ – PIC16F8776

23125/04/2017

Situação 1 – Master para slave – Half duplex

1. O buffer master recebe a palavra a ser transmitida.Simultaneamente, o shifter master recebe uma cópia.

2. Bit a bit, a palavra é enviada ao slave. Simultaneamente,o master recebe a palavra irrelevante (X) do slave.

3. O shifter master recebe a palavra do shifter slave e vice-versa.

4. Terminado o deslocamento dos oito bits, o shifter slave écopiado, automaticamente, para o buffer slave , o shiftermaster é copiado, automaticamente, para o buffer master.

5. BF=1 no master e no slave.

SPI™ – PIC16F8776

23225/04/2017

Situação 2 – Master para slave – Simplex

7 6 5 4 3 2 1 0Shift register

7 6 5 4 3 2 1 0Buffer

x x x x x x x xShift register

0 0 0 0 0 0 0 0Shift register

0 0 0 0 0 0 0 0Buffer

7 6 5 4 3 2 1 0Shift register

7 6 5 4 3 2 1 0Buffer

7 6 5 4 3 2 1 0Shift register

x x x x x x x xShift register

0 0 0 0 0 0 0 0Shift register

7 6 5 4 3 2 1 0Shift register

(1)

Slave Receiver Master Transmitter

(2)

(3)

(4)

SPI™ – PIC16F8776

23325/04/2017

SDO SDIx x x x x x x x

x x x x x x x 7

x x x x x x 7 6x x x x x 7 6 5

x x x x 7 6 5 4 x x x 7 6 5 4 3 x x 7 6 5 4 3 2

x 7 6 5 4 3 2 1

7 6 5 4 3 2 1 0

MasterGravado por meio de escrita em SSPBUF.

Copiado automaticamente para SSPBUF; BF=1.

Situação 3 – Slave para master – Half duplexSPI™ – PIC16F8776

23425/04/2017

SDO 7 6 5 4 3 2 1 06 5 4 3 2 1 0 x

5 4 3 2 1 0 x x

4 3 2 1 0 x x x3 2 1 0 x x x x2 1 0 x x x x x1 0 x x x x x x

0 x x x x x x x

SDI

x x x x x x x x

Slave

Deslocamentos automáticos em função de SCK e /SS.

Copiado automaticamente para SSPBUF; BF=1.

Situação 3 – Slave para master – Half duplex

Page 40: 5 Portas de comunicação 2 - ufsj.edu.br - PB... · • Diferentemente do módulo PWM, este PWM possui resolução de 16 bits, não podendo operar em resolução menor. Modos 00

25/04/2017

40

SPI™ – PIC16F8776

23525/04/2017

Situação 3 – Slave para master – Half duplex

x x x x x x x xShift register

7 6 5 4 3 2 1 0Shift register

7 6 5 4 3 2 1 0Shift register

7 6 5 4 3 2 1 0Buffer

x x x x x x x xShift register

x x x x x x x xBuffer

x x x x x x x xShift register

7 6 5 4 3 2 1 0Shift register

7 6 5 4 3 2 1 0Shift register

x x x x x x x xShift register

Slave Transmitter Master Receiver

7 6 5 4 3 2 1 0Buffer

(1)

(3)

(4)

(5)

x x x x x x x xBuffer

(2)

SPI™ – PIC16F8776

23625/04/2017

Situação 3 – Slave para master – Half duplex1. O buffer slave recebe a palavra a ser transmitida.

Simultaneamente, o shifter slave recebe uma cópia.2. O slave aguarda sinalização para comunicação.3. O buffer master recebe uma palavra irrelevante (X) para dar

início à transmissão.4. A palavra é enviada do slave ao master bit a bit assim que a

oscilação do clock é iniciada pelo master. Simultaneamente, oslave recebe a palavra irrelevante (X) do master.

5. O shifter slave recebe a palavra do shifter master e vice-versa.6. Terminado o deslocamento dos oito bits, o shifter slave é

copiado, automaticamente, para o buffer slave , o shiftermaster é copiado, automaticamente, para o buffer master.

7. BF=1 automaticamente no master e no slave.

SPI™ – PIC16F8776

23725/04/2017

Situação 4 – Slave para master – Simplex

x x x x x x x xShift register

7 6 5 4 3 2 1 0Shift register

7 6 5 4 3 2 1 0Shift register

7 6 5 4 3 2 1 0Buffer

0 0 0 0 0 0 0 0Shift register

0 0 0 0 0 0 0 0Buffer

x x x x x x x xShift register

7 6 5 4 3 2 1 0Shift register

7 6 5 4 3 2 1 0Shift register

0 0 0 0 0 0 0 0Shift register

Slave Transmitter Master Receiver

7 6 5 4 3 2 1 0Buffer

(1)

(3)

(4)

(5)

x x x x x x x xBuffer

(2)

SPI™ – PIC16F8776

23825/04/2017

Situação 5 – Full duplex

H G F E D C B AShift register

P O N M L K J IShift register

P O N M L K J IShift register

P O N M L K J IBuffer

H G F E D C B AShift register

H G F E D C B ABuffer

H G F E D C B AShift register

P O N M L K J IShift register

P O N M L K J IShift register

H G F E D C B AShift register

Slave Transmitter Master Transmitter

P O N M L K J IBuffer

(1)

(3)

(4)

(5)

H G F E D C B ABuffer

(2)

SPI™ – PIC16F8776

23925/04/2017

Situação 5 – Full duplex1. O buffer slave recebe a palavra slave. Simultaneamente, o

shifter slave recebe uma cópia.2. O slave aguarda sinalização para comunicação.3. O buffer master recebe a palavra master. Simultaneamente, o

shifter master recebe uma cópia.4. A palavra master é enviada ao slave bit a bit assim que a

oscilação do clock é iniciada pelo master. Simultaneamente, apalavra slave é enviada ao master bit a bit.

5. O shifter slave recebe a palavra do shifter master e vice-versa.6. Terminado o deslocamento dos oito bits, o shifter slave é

copiado, automaticamente, para o buffer slave , o shiftermaster é copiado, automaticamente, para o buffer master.

7. BF=1 automaticamente no master e no slave.

SPI™ – PIC16F8776

24025/04/2017

Situação 5 – Full duplex

• Do ponto de vista da PIC, a comunicação é semprefull duplex.

• A comunicação é considerada half duplex quando acomunicação relevante é sempre em um único sentido,e este sentido pode mudar em instantes diferentes.

• A comunicação é considerada simplex quando não hácírculo das informações, o caminho é aberto, um ladosomente transmite e o outro lado somente recebe.

Page 41: 5 Portas de comunicação 2 - ufsj.edu.br - PB... · • Diferentemente do módulo PWM, este PWM possui resolução de 16 bits, não podendo operar em resolução menor. Modos 00

25/04/2017

41

SPI™ – PIC16F8776

24125/04/2017

Sinalização

• O protocolo SPI™ na PIC possiu três bits de sinalização:1. SSPSTAT<0> <BF>: Buffer Full Status bit.2. SSPCON<7> <WCOL>: Write Collision Detect bit.3. SSPCON<6> <SSPOV>: Receive Overflow Indicator bit.• O uso desses bits é opcional, porém recomendado.• O bit WCOL faz parte da concepção do protocolo SPI™.

SPI™ – PIC16F8776

24225/04/2017

Master – SPI™ prescaler

Para o SR

TCY

1,4,16

Na página 256 do data sheetmid range está errado

MUX211-bit

<SSPM3:SSPM0> Modo0000 Master, clock = fOSC/4 = fCY (1:1)0001 Master, clock = fOSC/16 = fCY/4 (1:4)0010 Master, clock = fOSC/64 = fCY/16 (1:16)

• Contador prescaler de 4 bits.

SPI™ – PIC16F8776

24325/04/2017

<SSPM3:SSPM0> Modo0000 Master, clock = fOSC/4 = fCY (1:1)0001 Master, clock = fOSC/16 = fCY/4 (1:4)0010 Master, clock = fOSC/64 = fCY/16 (1:16)

Master – SPI™ prescaler• A velocidade da comunicação depende doTMR2 prescaler ratio e do SPI™ prescaler ratio.

• Dois TCY´s são gastos da leitura do SSPBUF.• Dois TCY´s são gastos da escrita do SSPBUF.

;escrita por literalMOVLW 0x45 ;literalMOVWF SSPBUF

;escrita por GPRMOVF 0x45,W ;GPRMOVWF SSPBUF

;leituraMOVF SSPBUF,W ;SFRMOVWF 0x23 ;GPR

SPI™ – PIC16F8776

24425/04/2017

Master – TMR2 output

TCY

1,4,16

<SSPM3:SSPM0> Modo0011 Master, clock = TMR2out/2

<T2CKPS1:T2OUTPS0> Rate

00 1:101 1:41x 1:16

<SSPM3:SSPM0>

Rate0000 1:10001 1:40010 1:16

SPI™ – PIC16F8776

24525/04/2017

Master – TMR2 output

• TMR2out fornece o período de duas rampas de TMR2.• A frequência de TMR2out depende o TMR2 prescaler

ratio, mas não do TMR2 postscaler ratio.• A frequência de TMR2out depende do PR2.• A frequência de TMR2out corresponde à metade da

frequência PWM da função PWM do CCP.

PR2<7:0>

t

<T2CKPS1:T2OUTPS0> Rate

00 1:101 1:41x 1:16

Vide exemplos

SPI™ – PIC16F8776

24625/04/2017

CKPSSPCON<4>

CKESSPSTAT<6>

Transmissão

0 0Borda de subida de SCK

1 10 1

Borda de descida de SCK1 0

Master

CKPSSPCON<4>

Significado

0 Clock inativo em nível baixo.1 Clock inativo em nível alto.

reset default

• SSPCON<4> CKP: Clock Polarity Select bit.• SSPSTAT<6> CKE: SPI™ Clock Edge Select.

Page 42: 5 Portas de comunicação 2 - ufsj.edu.br - PB... · • Diferentemente do módulo PWM, este PWM possui resolução de 16 bits, não podendo operar em resolução menor. Modos 00

25/04/2017

42

SPI™ – PIC16F8776

24725/04/2017

Master

Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0

SPI™ – PIC16F8776

24825/04/2017

Master

SPI™ – PIC16F8776

24925/04/2017

Master

• O master pode iniciar a comunicação em qualquerinstante, pois controla o clock do SPI™, desde que nãointerrompa uma comunicação em curso.

• Quando o master dá início à transmissão, também dáinício à oscilação no pino SCK.

• O master determina quando o slave fará a comunicação.• Quando o slave recebe a oscilação no pino SCK e a

entrada /SS está em zero, inicia a recepção.• Opcionalmente, o slave pode ser insensível a /SS.• A comunicação (transmissão ou recepção) tem início

quando o master SSPBUF sofre uma escrita.

SPI™ – PIC16F8776

25025/04/2017

Master – Sinal /SS

• Se o slave está com o controle por /SS habilitado, este bitdeve ser fornecido pelo master e seu controle é feito por meiodo programa em execução no master.

• A geração do sinal /SS para o slave não é automática, deveestar prevista no programa. Isto permite que vários slavessejam selecionáveis.

• O programa deve realizar os comandos BSF, BCF ou qualqueroutra operação de escrita que configure o bit da porta paralelaque está ligado à entrada /SS do slave.

• O programa deve enviar valor zero quando a comunicaçãoestiver ativa, e um quando estiver inativa (iddle).

SPI™ – PIC16F8776

25125/04/2017

Slave

• <SSPM3:SSPM0>: Synchronous Serial Port Mode Select bits.• SSPCON<3:1> <SSPM3:SSPM1> = 010

• SSPCON<0> SSPM0 = 0: Controle por /SS habilitado.• SSPCON<0> SSPM0 = 1: Controle por /SS desabilitado.• Se o slave está com o controle por /SS habilitado, este bit

deve ser fornecido pelo master e seu controle é feito por meiodo programa em execução no master.

• Estando /SS desabilitado, o pino correspondente é utilizadopela outra função que compartilha o pino (RA5 ou AN4).

<SSPM3:SSPM0> Modo0100 Slave, clock = SCK. /SS habilitado0101 Slave, clock = SCK. /SS desabilitado

SPI™ – PIC16F8776

25225/04/2017

Slave

• Se o slave está com o controle por /SS habilitado, o valor1 impede qualquer shift no slave.

• O valor 1 coloca e mantém todos os bits do shift registerem zero.

• A mudança de 0 para 1 interrompe a comunicação com oslave instantaneamente, zerando todos os bits do slaveshift register.

• Como a contagem de três bits não foi concluída, a cópiaautomática deste registrador para o buffer não érealizada e o bit BF não recebe valor 1.

Page 43: 5 Portas de comunicação 2 - ufsj.edu.br - PB... · • Diferentemente do módulo PWM, este PWM possui resolução de 16 bits, não podendo operar em resolução menor. Modos 00

25/04/2017

43

SPI™ – PIC16F8776

SCK

SCK

25325/04/2017

Circuito de deslocamento

Relógio interno

Mas

ter

Slav

e

glitch filter

glitch filter

SPI™ – PIC16F8776

25425/04/2017

Slave

0: slave selecionado1: slave inibido

• O buffer 3S na saída permite que se liguevários slaves no mesmo circuito, emparalelo, sem a ocorrência de danos.

• Somente um slave é acionado por vêz,enquanto os demais estão com SDO em 3S.

glitch filter

No data sheet está errado

SPI™ – PIC16F8776

25525/04/2017

Slave

SSPCON<0> SSPM0

Pino SCKGerador de clock

proveniente do master.

0: selecionado1: não selecionado

0: com /SS1: sem /SS

<SSPM3:SSPM0> Modo0100 Slave, clock = SCK. /SS habilitado0101 Slave, clock = SCK. /SS desabilitado

glitch filter

SPI™ – PIC16F8776

25625/04/2017

SSPM0 /SS Habilitação0 0 Sim0 1 Não1 0 Sim1 1 Sim

habilitação=/(/SSPM1/SS)

SSPM0 /SS En0 0 00 1 11 0 01 1 0

Slave

glitch filter

SSPM0

No data sheet está errado