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; 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