FM radio (BR23, BR25)
FM receiver
FM transmitter
The FM transmitter block reads audio data from memory and outputs a multiplex signal in form of a 32-bit value (usually interpreted as a 8.24 fixed point number) to the frequency synthesizer that generates the frequency-modulated carrier.
The memory buffer format is a stereo 16-bit linear PCM with 41666.(6) Hz sampling rate.
output = TX_FREQ + ((Left + Right) / 256 + Pilot19 * TX_PILOT + (Left - Right) * Carrier36 / 256) * TX_MUL * TX_SYN_GAIN / 4096
Registers
| Offset |
Name |
Description |
| 0x00 |
CON |
Control register |
| 0x04 |
BASE |
RX DMA buffer base address |
| 0x08 |
ADC_CON |
|
| 0x0C |
ADC_CON1 |
|
| 0x10 |
HF_CON0 |
|
| 0x14 |
HF_CON1 |
|
| 0x18 |
HF_CRAM |
|
| 0x1C |
HF_CRAM2 |
|
| 0x20 |
HF_DRAM |
|
| 0x24 |
LF_CON |
|
| 0x28 |
LF_RES |
|
| 0x2C |
FMRX_CON4 |
|
| 0x30 |
FMRX_CON5 |
|
| Offset |
Name |
Description |
| 0x34 |
TX_CON0 |
TX control register 1 |
| 0x38 |
TX_CON1 |
TX control regsiter 2 |
| 0x3C |
TX_PILOT |
Pilot tone gain |
| 0x40 |
TX_SYN_GAIN |
Synth gain 1 |
| 0x44 |
TX_MUL |
Multiplier |
| 0x48 |
TX_ADR |
ireg address |
| 0x4C |
TX_LEN |
buffer length / ireg value |
| 0x50 |
TX_FREQ |
base frequency |
| 0x54 |
TX_BASE_ADR |
DMA buffer base address |
| Offset | Name | Description |
|——–|————-|————————-|
CON
| Bits |
Type |
Name |
Default |
Description |
| 14 |
R/W |
|
|
Setting this to ‘0’ enables TX related registers |
| 3 |
R/W |
|
|
|
| 0 |
R/W |
|
|
|
HF_CON1
| Bits |
Type |
Name |
Default |
Description |
| 7 |
R |
PND |
|
Interrupt pending |
| 6 |
W |
CPND |
|
Clear pending interrupt |
| 4 |
R |
|
|
DMA buffer slice index (buffer index that has been filled now) |
TX_CON0
| Bits |
Type |
Name |
Default |
Description |
| 7 |
R/W |
|
|
enable2 |
| 5 |
W |
|
|
Something write strobe |
| 4 |
R |
|
|
DMA buffer slice index (buffer index that can be filled now) |
| 3 |
R/W |
|
|
|
| 1 |
R/W |
|
|
Enable stereo |
| 0 |
R/W |
|
|
enable1 |
TX_CON1
| Bits |
Type |
Name |
Default |
Description |
| 7 |
R |
PND |
|
Interrupt pending |
| 6 |
W |
CPND |
|
Clear pending interrupt |
| 3:0 |
R/W |
|
|
|
TX_PILOT
| Bits |
Type |
Name |
Default |
Description |
| 12:0 |
R/W |
|
|
Pilot tone gain |
TX_SYN_GAIN
| Bits |
Type |
Name |
Default |
Description |
| 12:0 |
R/W |
|
|
Synth gain 1 (4096 = 1.0) |
TX_MUL
| Bits |
Type |
Name |
Default |
Description |
| ..:0 |
R/W |
|
|
multipler |
TX_FREQ
| Bits |
Type |
Name |
Default |
Description |
| 31:24 |
R/W |
|
|
Integer part |
| 23:0 |
R/W |
|
|
Fractional part |