Quote:
It's true an error in IOMUX config ( ie. a pin is not configured correctly ) could be responsible for having audio issues. You imagine that if I2C was used as external port instead of internal when configuring the internal CODEC, you would have trouble. But i assume they did this part correctly. Same goes for I2S, IOMUX_SetI2SType(UINT32 codectype) it could be set to talk to the internal CODEC (our player), or an external codec like wolfson, hence prohibiting the usage of GPIO port C pins. If it is configured for external CODEC, i am not sure what would happen..... :-/ |
HW_rockcodec is configured correctly. I checked all the functions (CodecCommandSet etc) from this file and they are exactly the same as in our original FW. It do not calls external codec. Also initially they are called with the same arguments.
Another thing is that FM works properly so Codec must be good. There is a problem with digital audio only. I2S_PowerOnInit is little bit different from the one in SDK. Have a look at the file I uploaded, this function is listed there. IOMUX_SetI2SType is also there, and it is the same. Perhaps it's called with different arguments. I am almost sure that we have our solution in function UHInitializeFirst and UHInitializeLast, both for audio and keyboard. |
Quote:
SparkFun Electronics - FM Receiver Module I am quite not sure if the FM input is fully processed thru the CODEC (FM -> ADC -> CPU -> DAC). I know we can record FM, so it must at least go to the ADC but it is not sure it goes to CPU, and be copied to an output buffer (audio streaming). By the way, when recording, it looks like you can choose between MIC,FM,LINE inputs because there is an analog switcher in the internal CODEC. When you hear FM, it might be analog, but to prove that you'd have to look at the code... |
You are absolutely right. FM playback run without use of ADC and processing data. Only for recording it goes into PCM stream.
BTW, I found something in I2C_Init which makes a little bit worried. Just check this out: Code:
I2C_Init ; CODE XREF: CodecCommandSet+10pIn the SDK the same function looks like this: Code:
ROM:60009514 LDR R0, [R0] <- means [R0, #0x00]Sorry for spam, my posts are huge. |
Quote:
I think I found a few ZSP500 opcodes: Code:
f801 0100 mov r1,0x100The interesting thing is that mov and br seem to be 32-bit instructions here. |
Don't worry about the length of your post, this thread is HUUUUUUUUGE anyways :)
Really i think we should have our separate section on this website, for developers like us, so we could have separate threads for specific topics. Ok, well, i think i had played with the codec initialization to see if I2C communication was working and i seem to remember it was. You can play with the volume for example, set it to super low level... and if it works, it means our I2C drivers works (and i think it does). They might have slightly modify the driver from a version to an other, i don't know... but i do think I2C works :) |
Quote:
You are right, i read somewhere that ZSP500 instructions are a mix of 16 bits and 32 bits instructions. Where/how did you find this code ??? :p |
I guess he found it here: http://www.fs2.com/lsi_download/Zsp-Getting-Started.pdf. In that directory you can download the debugger as well so maybe downloading, ... we might have it ;-).
Now, the installation program is pasword protected. |
Quote:
|
Hoho, I think we have an assembler (zdas.exe) - "GNU assembler version %s (%s) using BFD version %s" !!! It uses cygwin though and it crashes when I start it with wine and no cygwin installed, how can that be? ;-) Comes with linker too (zdld.exe).
Here it is: http://www.sendspace.com/file/nkeeji |
| All times are GMT -7. The time now is 8:38 pm. |
Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2015, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO 3.6.0 RC 2