In the virtualwire instruction guide it give me this calculation. I would like to know what this calculation is for?
Messages of up to VW_MAX_PAYLOAD (27) bytes can be sent (Does this mean maximum 27 bits can be send using the library) Each message is transmitted as: • 36 bit training preamble consisting of 0-1 bit pairs (what does this mean?) • 12 bit start symbol 0xb38 (what does this mean?) • 1 byte of message length byte count (4 to 30), count includes byte count and FCS bytes (what does this mean?) • n message bytes, maximum n is VW_MAX_PAYLOAD (27) (what does this mean?) • 2 bytes FCS, sent low byte-hi byte (what does this mean?)
Everything after the start symbol is encoded 4 to 6 bits, Therefore a byte in the message is encoded as 2x6 bit symbols, sent hi nybble, low nybble. (what does this mean?) Each symbol is sent LSBit first.
The Arduino Diecimila clock rate is 16MHz => 62.5ns/cycle. For an RF bit rate of 2000 bps, need 500microsec bit period. (How do you know whether you need 500microsec bit period?) The ramp requires 8 samples per bit period, so need 62.5microsec per sample => interrupt tick is 62.5microsec. (what does this mean?) The maximum packet length consists of (6 + 2 + VW_MAX_MESSAGE_LEN*2) * 6 = 408 bits = 0.204 secs (at 2000 bps). (How to calculate this?) where VW_MAX_MESSAGE_LEN is VW_MAX_PAYLOAD + 3 (= 30). (How to calculate this?)
I really need someone who can explain to me this part. Which I don't understand at all except getting the period from 16MHz frequecny.