210 likes | 330 Views
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
E N D
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 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 - 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.
Prioridade de Interrupções • Quando dois ou mais pedidos de interrupções ocorrerem ao mesmo tempo: • A interrupção de maior prioridade será executada;
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.