Desvios do programa principal para um endereço definido com o objetivo de atender a um evento; As...

Post on 17-Apr-2015

104 views 1 download

Transcript of Desvios do programa principal para um endereço definido com o objetivo de atender a um evento; As...

• Desvios do programa principal para um endereço definido com o objetivo de atender a um evento;

• As interrupções podem ser de hardware ou de software;

Interrupções do DSP

Interrupções de Hardware• Podem ser solicitadas por:

– Pinos externos: • XINT1 – external interruption1• XINT2 – external interruption 2• PDPINTA – Power drive protection interrupt pin A• PDPINTB – Power drive protection interrupt pin B

– Periféricos internos:• EVA e EVB – Event Manager A and B• SPI – Serial Peripherial Interface (serial síncrona)• SCI – Serial Communication Interface (serial assíncrona)• CAN – Controller Area Network• ADC – Analog/Digital Converter (conversor analógico-digital)

Interrupções de Hardware

Interrupções de Hardware

Interrupções de Software• São geradas por instruções:

– INTR endereço• O programa é desviado para o endereço indicado

pela instrução;• Desabilita as interrupções mascaráveis;

– NMI• O programa é desviado para o endereço 0024H;• Desabilita as interrupções mascaráveis;

– TRAP• O programa é desviado para o endereço 0022H;• Não desabilita as interrupções mascaráveis.

Interrupções

Interrupções

Flags de Interrupções

Habilitação de Interrupções – “Máscara”

Habilitação Global de Interrupções - INTM

Interrupções - Exemplo

• Interrupção externa 1 – (evento no pino XINT1):– Se o evento (borda de subida ou descida) ocorre no

pino:• O flag individual é “setado” – XINT1 flag = 1;• XINT1 flag é o bit 15 do Registrador de Controle da

Interrupção Externa 1 – XINT1CR;

– Se o bit de habilitação da interrupção externa 1 estiver “setado”:

• Uma requisição de interrupção é enviada para o “arbitrator”;• XINT1 enable é o bit 0 do XINT1CR;• “Arbitrator” irá comparar a prioridade da interrupção com as

outras interrupções pendentes, se houver;

Interrupções - Exemplo

– O “arbitrator” gerará um pedido de interrupção para a CPU (este pedido se chama INT1):

• INT1 flag = 1;• INT1 flag é o bit 0 do IFR (Registrador de Flags de

Interrupções);

– Se o bit de máscara de interrupção do INT1 estiver habilitado:

• INT1 mask = 1;• INT1 mask é o bit 0 do IMR (Registrador de Máscaras de

Interrupções);

Interrupções - Exemplo

– E se, finalmente, o bit de habilitação global de interrupções estiver “zerado” – ativo em zero:

• INTM = 0;• INTM é o bit 9 do ST0 (Registrador de Status 0);

– Uma interrupção é gerada e o programa se desviará para o endereço 0002H da memória de programa, onde a rotina do usuário será executada.

Interrupções - Exemplo

Endereços dos Vetores de Interrupção

Fontes de Interrupções

Fontes de Interrupções

Prioridade de Interrupções

– Quando dois ou mais pedidos de interrupções ocorrerem ao mesmo tempo:

• A interrupção de maior prioridade será executada;

Prioridade de Interrupções

Interrupção para Proteção do Drive de Potência - PWM

– Pinos PDPINTA e PDPINTB;– Quando a interrupção PDPINT ocorre:

• O DSP desliga automaticamente as saídas PWM colocando-as em alta impedância (45 a 55 ns);

• Uma rotina de interrupção pode ser executada.

Interrupção para Proteção do Drive de Potência - PWM