dev builds
themes manual
device status forums
mailing lists
IRC bugs
dev guide

Rockbox mail archive

Subject: Re: Sansa radio driver (AS5314 help

Re: Sansa radio driver (AS5314 help

From: Antonius Hellmann <>
Date: Wed, 16 May 2007 08:15:15 +0200

Yes, that is correct. The complete register accesses look as follows:

69a7b08 000b9418 CPU GPI_F_VAL 6000d0b4 R4-0000003b <<<< right click
detection (into radio menu)
69ddd55 0000e8f4 CPU ???????? 70000020 R4-40000000 <<<< reading
69ddd57 0000e8fc CPU ???????? 70000020 W4-40000000 <<<< bic bit 11
 .... as posted before .....

If it is of interest to you, I can dump the sansa radio commands in a more
readable way.
But be aware, that the radio responses are synthetic in the emulator.

----- Original Message -----
From: "Ivan Zupan" <>
To: "Rockbox development" <>
Sent: Wednesday, May 16, 2007 2:38 AM
Subject: Re: Sansa radio driver (AS5314 help

>I have tried those, but they are pretty much what Mr.H described.
>Interestingly enough, he mentioned clearing bit 11 at 0x70000020 (no effect
>on the radio whatsoever by the way). This address appears to be DEV_INIT.
>Since all the hardware uses DEV_EN/DEV_INIT/DEV_RS, maybe the radio is not
>enabled at all? Do you see any references to the above right before GPIOH
>is used? It may be used to unmute the line1 in via some hardware switch...
> Antonius Hellmann wrote:
>> I ran the sansa emulator into the radio menu. This is the result:
>> Directly after entering the radio menu the sansa emulator does a lot of
>> accesses to the GPIO-H registers.
>> Probably this can give a hint, how to configure the output? But it may be
>> only relevant for detecting the radio hardware.
>> R1=read one byte, W1=write one byte
>> 711186e 0000e90c CPU GPO_H_VAL 6000d0ac R1-00000000
>> 7111870 0000e914 CPU GPO_H_VAL 6000d0ac W1-00000010
>> 7111872 0000e91c CPU GPO_H_ENB 6000d09c R1-0000001e
>> 7111874 0000e924 CPU GPO_H_ENB 6000d09c W1-0000001e
>> 7111876 0000e92c CPU GP_H_ENB 6000d08c R1-000000de
>> 7111878 0000e934 CPU GP_H_ENB 6000d08c W1-000000de
>> 7111879 0000e938 CPU GPO_H_ENB 6000d09c R1-0000001e
>> 711187b 0000e940 CPU GPO_H_ENB 6000d09c W1-0000001e
>> 711187c 0000e944 CPU GP_H_ENB 6000d08c R1-000000de
>> 711187e 0000e94c CPU GP_H_ENB 6000d08c W1-000000fe
>> 711187f 0000e950 CPU GPO_H_VAL 6000d0ac R1-00000010
>> 7111881 0000e958 CPU GPO_H_VAL 6000d0ac W1-00000010
>> 7111882 0000e95c CPU GPO_H_ENB 6000d09c R1-0000001e
>> 7111884 0000e964 CPU GPO_H_ENB 6000d09c W1-0000001e
>> 7111885 0000e968 CPU GP_H_ENB 6000d08c R1-000000fe
>> 7111887 0000e970 CPU GP_H_ENB 6000d08c W1-000000fe
>> 71119a9 0000ea60 CPU GPO_H_VAL 6000d0ac R1-00000010
>> 71119ac 0000ea6c CPU GPO_H_VAL 6000d0ac W1-00000018
>> 71119ae 0000ea74 CPU GPO_H_ENB 6000d09c R1-0000001e
>> 71119b0 0000ea7c CPU GPO_H_ENB 6000d09c W1-0000003e
>> repeating
>> 71119c7 0000ea04 CPU GPO_H_VAL 6000d0ac R1-00000018
>> 71119c9 0000ea0c CPU GPO_H_VAL 6000d0ac W1-00000008
>> 71119ca 0000ea10 CPU GPO_H_VAL 6000d0ac R1-00000008
>> 71119ce 0000ea20 CPU GPO_H_VAL 6000d0ac W1-00000028
>> 71119df 0000ea2c CPU GPO_H_VAL 6000d0ac R1-00000028
>> 71119e1 0000ea34 CPU GPO_H_VAL 6000d0ac W1-00000038
>> ----- Original Message ----- From: "Ivan Zupan" <>
>> To: "Rockbox development" <>
>> Sent: Tuesday, May 15, 2007 6:57 AM
>> Subject: Re: Sansa radio driver (AS5314 help
>>> >
>>>> You could try Toni's emulator, maybe this gives some hint's about GPIO
>>>> ports or memory addresses, but i don't know how much the emulator works
>>>> with the radio part of the OF.
>>> Maybe someone with a better understanding of it can look over that part?
>>> I could not even get it past the bootloader...
>>> In terms of progress, all that works so far is detecting if the station
>>> is mono/stereo, getting the chip id, and station signal strength. I
>>> have also made it generate an interrupt for what it's worth. However,
>>> there are some things which need to be figured out, such as the
>>> algorithm for tuning. It involves calculations from 3 registers,
>>> FM_OSC, IF_OSC and FM_CAP and a bunch of math intensive operations. It
>>> also requires you to measure with an internal counter and write the
>>> result to another register. Interestingly enough, they ask that a
>>> register be set to 65% of the value of another, but there is no
>>> reference to floating point or rounding?!
Received on 2007-05-16

Page template was last modified "Tue Sep 7 00:00:02 2021" The Rockbox Crew -- Privacy Policy