Support and General Use > Hardware
Fuze and Griffin Dock line out
Avalon:
That is interesting and thankyou for the E200 input.
With the Sansa OS, the dock outputs constant levels unaffected by the Fuze volume control. The level iappears to be much better than the Fuze headphone output for feeding into amplifiers, etc. and maintains the charge at 100%.
It looks as if the E200V2 and FuzeV1 behave similarly when connected to the dock. Since the Sansa OS allows the dock to work, the hardware is there....a firmware mod is required.
If anyone has the coding ability to do it and has a look, there is a change that would be an improvement over the Sansa OS:
If the line out is enabled for the E200V2 and FuzeV1 via the Griffin Dock, it would be an improvement over the Sansa firmware if there is a selection for volume control via the Fuze/E200V2 or just constant line out.
If this was provided, the dock could be used for
1. constant level out for input to amplifiers, etc and
2. for headphone output with volume control if selected.
Both would allow charging while playing and provide the required output for both applications. The latter would be great for using the dock in the office or any fixed setting.
I really hope that someone does pick this up and has a go at the code.
Thks
Avalon:
Regarding the questions regarding whether line out and headphone connectors can be enabled at the same time:
1. When the Fuze is connected to a dock or computer USB, It is being charged and powered by an external source. For that reason, there should be no drain on the battery and power consumption should not be a concern if both outputs are enabled.
2. It is my understanding that the line out and headphone out are two separate outputs. If so, they do not affect each other if both are enabled.
For these reasons, it would seem logical that if the Fuze is connected to a USB or other power source, then both outputs could be enabled. If not connected to an external power source, then only the headphone out would be enabled.
I am making this suggestion to hopefully reduce the complexity of any code changes. if anyone knows of any reason why this would not work, please indicate.
In my case, when I use the Griffin dock, the headphone output is not accessible since it is located on the bottom of the Fuze and blocked by the base. Therefore, if headphone out is enabled with the line out, there is no issue anyway. However, if both outputs were accessible and enabled, I do not believe that it presents any problems since an external power source is applied anyway.
gglul:
Hi,
I have a Sansa E200v2. I tried to enable the Audio Line Out and the Speaker Out in the AS3525 by the firmware, but nothing appeared on pins 27, 28 & 29 of the dock connector.
I assume, we need to enable some GPIO / DBOP in order to activate some HW outside the AS3525 which will then make the audio towards the dock connector...
:'(
Does anybody have a schematic of the sansa showing how the components are connected to each other and to the external interfaces?
Many Thanks,
Gglul
saratoga:
--- Quote from: gglul on March 03, 2010, 09:24:54 AM ---I assume, we need to enable some GPIO / DBOP in order to activate some HW outside the AS3525 which will then make the audio towards the dock connector...
--- End quote ---
I don't think theres anything else to activate. Can you post a diff of what you enabled?
--- Quote from: gglul on March 03, 2010, 09:24:54 AM ---Does anybody have a schematic of the sansa showing how the components are connected to each other and to the external interfaces?
--- End quote ---
I guess you could take apart the player and use a DMM to figure out where the dock pins go, but I don't think anyone has.
Many Thanks,
Gglul
[/quote]
gglul:
Hi,
I found my mistake in my code which I put into the procedure:
--- Code: ---void audiohw_mute(bool mute)
--- End code ---
When the Line Out is muted then I need to clear the LINE_OUT_L_LO_SES_DM_SE_ST bits and when it is not muted then I need to set them. However, I put this in the other way, so the Line Out was always muted...
--- Code: ---void audiohw_mute(bool mute)
{
if (mute) {
as3514_set(AS3514_HPH_OUT_L, HPH_OUT_L_HP_MUTE);
as3514_clear(AS3514_LINE_OUT_L, LINE_OUT_L_LO_SES_DM_SE_ST);
} else {
as3514_clear(AS3514_HPH_OUT_L, HPH_OUT_L_HP_MUTE);
as3514_set(AS3514_LINE_OUT_L, LINE_OUT_L_LO_SES_DM_SE_ST);
}
}
--- End code ---
After correcting this in Patch-1 the Line Out just works fine! ;)
Many Thanks,
Glgul
==========================
Hi,
I'm not so much an expert in patching, but here is what I have done.
The settings and register details of the Audio Line Out / Speaker Out can be found on page (129-130) / (134-137) & 148-149 of the technical description of the AS3525.
I downloaded the source code from SVN (R24777) and I identified the /firmware/drivers/audio/as3514.c as containing the procedures & functions to handle the audio settings (audio driver).
Here are the patches that I tried:
Patch-1:
--- Code: ---Index: as3514.c
===================================================================
--- as3514.c (revision 24777)
+++ as3514.c (working copy)
@@ -151,8 +151,8 @@
/* Set ADC off, mixer on, DAC on, line out off, line in off, mic off */
- /* Turn on SUM, DAC */
- as3514_write(AS3514_AUDIOSET1, AUDIOSET1_DAC_on | AUDIOSET1_SUM_on);
+ /* Turn on line out, DAC, SUM */
+ as3514_write(AS3514_AUDIOSET1, AUDIOSET1_LOUT_on | AUDIOSET1_DAC_on | AUDIOSET1_SUM_on);
/* Set BIAS on, DITH on, AGC on, IBR_DAC max, LSP_LP on, IBR_LSP min */
as3514_write(AS3514_AUDIOSET2,
@@ -250,6 +250,8 @@
#endif
as3514_write_masked(AS3514_HPH_OUT_R, hph_r, AS3514_VOL_MASK);
as3514_write_masked(AS3514_HPH_OUT_L, hph_l, AS3514_VOL_MASK);
+ as3514_write_masked(AS3514_LINE_OUT_R, hph_r, AS3514_VOL_MASK);
+ as3514_write_masked(AS3514_LINE_OUT_L, hph_l, AS3514_VOL_MASK);
}
void audiohw_set_lineout_vol(int vol_l, int vol_r)
@@ -262,8 +264,10 @@
{
if (mute) {
as3514_set(AS3514_HPH_OUT_L, HPH_OUT_L_HP_MUTE);
+ as3514_set(AS3514_LINE_OUT_L, LINE_OUT_L_LO_SES_DM_SE_ST);
} else {
as3514_clear(AS3514_HPH_OUT_L, HPH_OUT_L_HP_MUTE);
+ as3514_clear(AS3514_LINE_OUT_L, LINE_OUT_L_LO_SES_DM_SE_ST);
}
}
--- End code ---
Patch-2:
--- Code: ---Index: as3514.c
===================================================================
--- as3514.c (revision 24777)
+++ as3514.c (working copy)
@@ -151,8 +151,8 @@
/* Set ADC off, mixer on, DAC on, line out off, line in off, mic off */
- /* Turn on SUM, DAC */
- as3514_write(AS3514_AUDIOSET1, AUDIOSET1_DAC_on | AUDIOSET1_SUM_on);
+ /* Turn on line out, DAC, SUM */
+ as3514_write(AS3514_AUDIOSET1, AUDIOSET1_LOUT_on | AUDIOSET1_DAC_on | AUDIOSET1_SUM_on);
/* Set BIAS on, DITH on, AGC on, IBR_DAC max, LSP_LP on, IBR_LSP min */
as3514_write(AS3514_AUDIOSET2,
@@ -170,9 +170,9 @@
as3514_write(AS3514_AUDIOSET3, AUDIOSET3_HPCM_off);
#endif
- /* Mute and disable speaker */
+ /* Power up speaker stage & mute speaker */
as3514_write(AS3514_LSP_OUT_R, LSP_OUT_R_SP_OVC_TO_256MS | 0x00);
- as3514_write(AS3514_LSP_OUT_L, LSP_OUT_L_SP_MUTE | 0x00);
+ as3514_write(AS3514_LSP_OUT_L, LSP_OUT_L_SP_MUTE | LSP_OUT_L_SP_ON | 0x00);
/* Set headphone over-current to 0, Min volume */
as3514_write(AS3514_HPH_OUT_R,
@@ -250,6 +250,11 @@
#endif
as3514_write_masked(AS3514_HPH_OUT_R, hph_r, AS3514_VOL_MASK);
as3514_write_masked(AS3514_HPH_OUT_L, hph_l, AS3514_VOL_MASK);
+// as3514_write_masked(AS3514_LINE_OUT_R, hph_r, AS3514_VOL_MASK);
+// as3514_write_masked(AS3514_LINE_OUT_L, hph_l, AS3514_VOL_MASK);
+ as3514_write_masked(AS3514_LSP_OUT_R, hph_r, AS3514_VOL_MASK);
+ as3514_write_masked(AS3514_LSP_OUT_L, hph_l, AS3514_VOL_MASK);
+
}
void audiohw_set_lineout_vol(int vol_l, int vol_r)
@@ -262,8 +267,12 @@
{
if (mute) {
as3514_set(AS3514_HPH_OUT_L, HPH_OUT_L_HP_MUTE);
+// as3514_set(AS3514_LINE_OUT_L, LINE_OUT_L_LO_SES_DM_SE_ST);
+ as3514_set(AS3514_LSP_OUT_L, LSP_OUT_L_SP_MUTE);
} else {
as3514_clear(AS3514_HPH_OUT_L, HPH_OUT_L_HP_MUTE);
+// as3514_clear(AS3514_LINE_OUT_L, LINE_OUT_L_LO_SES_DM_SE_ST);
+ as3514_clear(AS3514_LSP_OUT_L, LSP_OUT_L_SP_MUTE);
}
}
--- End code ---
Please, I would appreciate your feedback.
Many Thanks,
Gglul
Navigation
[0] Message Index
[#] Next page
[*] Previous page
Go to full version