Página 1 de 1

Como funciona e como utilizar o “Fractional”????

MensagemEnviado: 02 Set 2010 19:33
por ivan braga
Olá foreiros.

Bom, como diz o título, preciso entender como funciona e como utilizar o “Fractional”, sempre trabalhei com os PICs lendo os conversores ADC com “unsigned int” e depois multiplicava por um valor especifico e pronto, tinha a informação da tensão presente no dito pino do µC.

Porém agora estou me enveredando pelos caminhos do dsPIC e quero aprender como usar essa “inovação”, pelo menos para min.

Vou citar um exemplo para que possam me ajudar a entender o “Fractional”.

No momento tenho um dspic33f trabalhando a 3.3v, e um pino do modulo ADC configurado como entrada, quando faço a leitura neste pino usando o formato de entrada “unsigned int” depois da conversão tenho o seguinte valor ‘454’ e quando o faço usando “unsigned Fractional” tenho o valor ‘29056’. Quando multiplico 0.00322v * 454 tenho uma tensão de ~1.46v (3.3/1024=0.00322...).

Como faria isso usando o “Fractional”?

Desde já obrigado.

Ivan

MensagemEnviado: 03 Set 2010 09:41
por Djalma Toledo Rodrigues
When the multiplier is configured for fractional multiplication,
the data is represented as a two’s complement
fraction, where the MSB is defined as a sign bit and the
radix point is implied to lie just after the sign bit (QX
format). The range of an N-bit two’s complement
fraction with this implied radix point is -1.0 to (1 – 21-N).
For a 16-bit fraction, the Q15 data range is -1.0
(0x8000) to 0.999969482 (0x7FFF) including ‘0’ and
has a precision of 3.01518x10-5. In Fractional mode,
the 16 x 16 multiply operation generates a 1.31 product
which has a precision of 4.65661 x 10-10.

Pág. 43
2.6.1 MULTIPLIER

http://ww1.microchip.com/downloads/en/D ... 70165a.pdf

Atente para duas coisas:

1ª) O Range vai de aproximadamente -1 a +1 Zero incluido
2ª) O Formato é Complemento de 2

DJ

MensagemEnviado: 03 Set 2010 13:20
por ivan braga
Obrigado pelo retorno Djalma.

Já havia "tentado" ler, "pois copio e colo no google" esta informação, porem não compreendi.

Por isso usei o exemplo no post anterior, para que alguem possa me explicar como usar de maneira efetiva este recurso.

De qualquer forma agradeço a resposta e continuo aguardando para ver um exemplo prático.


Ivan

MensagemEnviado: 03 Set 2010 14:46
por MOR_AL
Vamos lá.
1 - O resultado de uma conversão de 10 bits deu 454, que em binário é 01 1100 0110 ( 256+128+64+4+2 = 454).
2 - Um número SEM sinal, no formato fractional é representado da seguinte forma:
a) Número de bits: N (no seu caso é 10).
b) O bit menos significativo (o da direita) tem o fator -N, ou -10. A medida que for considerando os bits à esquerda, seu fator vai diminuindo de uma unidade. No primeiro bit mais significativo o fator vale -1.
c) Então 01 1100 0110 vai valer: (^ é elevado a) (* é vezes)
0*2^-1 + 1*2^-2 + 1*2^-3 + 1*2^-4 + 0*2^-5 + 0*2^-6 + 0*2^-7 + 1*2^-8 + 1*2^-9 + 0*2^-10 =
= 1*2^-2 + 1*2^-3 + 1*2^-4 + 1*2^-8 + 1*2^-9 = 0,443359375 (44,3359375% do total de 1024 valores)
d) ... que multiplicado por 1024 = 454

Como funciona está aí. Como usar, nunca usei. :)

Esse valor de 29056 foi obtido como? Em binário como ele estaria representado? Quantos bits teria?
MOR_AL

MensagemEnviado: 03 Set 2010 18:14
por tcpipchip
Se nao entendeu...

Podes brincar aqui

http://babbage.cs.qc.edu/IEEE-754/

MensagemEnviado: 04 Set 2010 10:21
por Djalma Toledo Rodrigues
O Fracional não é Decimal mas, creio que entendera melhor assim:

Para Inteiro:

Bit8 *2^8 + Bit7 *2^7 + .... + Bit1 *2^1 + Bit0 *2^0

Para Fracional:

Bit *2^-1 + Bit *2^-2 + Bit *2^- 3 + .... + Bit *2^- 7 + Bit *2^-8 ...

2^-1 = 1/2
2^-2 = 1/4
2^-3 = 1/8

e assim por diante

Esta nesse formato arcaico que nem Inglès usa mais.

Além disso observar o Complemento de 2

Mas, para o ADC pode-se contornar, evitar, a fração escolhendo a Tensão de Referência adequada

Por Exemplo ADC 10 Bits ---> 1024
Atribui-se 2 mV a cada Bit
A Tensão de referência será portanto de 2.048 Vdc

E por esta razão existem Reguladores Tensão para essa finalidade.

DJ

MensagemEnviado: 06 Set 2010 22:56
por ivan braga
Obrigado a todos pelas repostas, apartir das informações e direções que vocês me deram, vou dar uma googleada para melhor entender o assunto.

Ivan