DSP – TMS320LF2407A

Download Report

Transcript DSP – TMS320LF2407A

Interrupções do DSP
• 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 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