Djalma Toledo Rodrigues escreveu:
Não fiz cálculo, mas, assim a priore, parece um resultado bem mediocre para um uC de 32 bits .
Com um PIC12Fxxx , dedicado e com clock de 4 MHz eu consigo uma onda quadrada de 250 000 cps* com Duti Cicle exato de 50% e com resolução de 2 useg.
* Cps e não Hz , pois, a rigor sómente a onda senoidal possui frequência.
Usando a porta PWM, a limitação seria a frequência de clock do pll dividido por 2 (30mhz no exemplo acima), e até onde entendo a resolução seria idêntica ao step do divisor usado pelo periférico do pwm (1/30e06 neste caso), mas o jitter seria baixissimo (inferior ao clock do cristal, que é melhorado pelo retorno do loop do pwm), portanto, assumindo que a resolução corresponda a expectativa, a precisão não seria problema. Quando se pega 30mhz e leva pra fora do µC, pode ser que lá na placa ocorram problemas, mas é outra história.
Já usando o método acima, não parei pra calcular todas as variáveis, mas chutando que a latência de atendimento da FIQ é, no pior caso (hmm assumindo que o handler esteja na RAM e que ela tenha realmente zero wait-states), 29 ciclos, o que dá 0.525 µs a 60mhz se calculei direito, assumindo que dê pra fazer com outros 29 ciclos (incluindo o retorno), daria cerca de 1.05 µs. O jitter neste caso (assumindo que a interrupção seja sempre atendida a tempo) também não conta muito, pois o que importa é tomar a atitude a tempo, já que as comutações são feitas pelos periférios e não pelo handler.