XHRA-2HPA QSPI flash configuration Topic is solved

Technical discussions around xCORE processors (e.g. General Purpose (L/G), xCORE-USB, xCORE-Analog, xCORE-XA).
Junior Member
Posts: 6
Joined: Wed Aug 24, 2016 7:54 am

XHRA-2HPA QSPI flash configuration

Postby fotis » Wed Aug 24, 2016 10:46 am

In my last project an application MCU is already used to manage a DAC different from the ES9018 used in XHRA-2HPA Reference Platform.
I will use the XHRA-2HPA for USB audio connectivity and i need the less possible messing with its configuration. I came across all related documents of XHRA and it seems that the use of QSPI flash memory is indispensable yet in the case of no flash configuration. I suppose that XHRA processor does not includes any program memory and a basic configuration with the minimum "default values and events" is necessary to be flashed into QSPI external memory. The "default set of events" as is described in datasheet is more than enough for my needs as all basic info about the incoming audio stream are provided through GPIO_0 to GPIO_5 pins. With the offered signals the application MCU can configure each time the DAC with the correct values or to select PCM or DSD mode and so on. The only drawback using this method is that 6 ports of the MCU will be consumed in comparison to I2C bus option.
My question is: which hardware tool can be used to flash a blank QSPI memory with the "default" configuration file and which is this file? Is that offered for download in XHRA-2HPA page?
Do you think that all that refered in datasheet are correct and i will be able to use the XHRA-2HPA without problem with the default values? Or the correct is to write down a configuration file, to use the I2C bus for sending info to the application MCU, exactly like in the XHRA-2HPA reference platform? As i told you the application MCU is already configured to manage the DAC and the only that needed are some info from the XHRA-2HPA regarding the audio stream. Is PCM? If yes the sampling rate? Is DSD to switch on the DSD interface of DAC? Which is the rate DSD64 or DSD128?

Thank you

View Solution
Junior Member
Posts: 6
Joined: Wed Aug 24, 2016 7:54 am

Postby fotis » Wed Aug 24, 2016 5:53 pm

Hi again

No reply, hmm.. Let's make thing short.

From what i understand the use of QSPI flash memory is necessary to store the basic configuration firmware https://www.xmos.com/support/boards?pro ... nent=19657.
a) Is this file appropriate only for use with the ES9018 DAC of XHRA-2HPA Reference Platform??
Or it is a general purpose firmware that contains the default values and the default set of events providing all information about the incoming audio data stream for use with any other DAC??
In my project a different DAC chip is used that is managed by a PIC micro.
I only need the default behaviour as is described in appendice A.2.6 on page 28 of XHRA-2HPA datasheet:

A.2.6 Default behaviour
If no flash configuration is present, the following default values are used:
· The VID defaults to the XMOS vendor ID, 0x20B1.
· The PID defaults to a value that depends on the device part.
· The vendor string defaults to “XMOS”
· The product string defaults to a value that depends on the device part.
· The serial number defaults to none.
In addition to this, there is a default set of events that are used if there is no flash
configuration found.
· 0x14 0xE0: if audio stream started, set GPIO 0 high.
· 0x16 0xD0: if audio stream stopped, set GPIO 0 low.
· 0x1A 0xE4: if USB connected, set GPIO 1 high.
· 0x1C 0xD4: if USB disconnected, set GPIO 1 low.
· 0x1E 0xE4: if DSD mode selected, set GPIO 2 high.
· 0x20 0xD4: if PCM mode selected, set GPIO 2 low.
· 0x00 0xE6 0xD8 0xDA:
if 48 KHz selected, set GPIO 3 high, GPIO 4 low, GPIO 5 low.
· 0x02 0xE6 0xE8 0xDA:
if 96 KHz selected, set GPIO 3 high, GPIO 4 high, GPIO 5 low.
· 0x04 0xE6 0xD8 0xEA:
if 192 KHz selected, set GPIO 3 high, GPIO 4 low, GPIO 5 high.
· 0x06 0xE6 0xE8 0xEA:
if 384 KHz selected, set GPIO 3 high, GPIO 4 high, GPIO 5 high.
· 0x08 0xD6 0xD8 0xDA:
if 44.1 KHz selected, set GPIO 3 low, GPIO 4 low, GPIO 5 low.
· 0x0A 0xD6 0xE8 0xDA:
if 88.2 KHz selected, set GPIO 3 low, GPIO 4 high, GPIO 5 low.
· 0x0C 0xD6 0xD8 0xEA:
if 176.4 KHz selected, set GPIO 3 low, GPIO 4 low, GPIO 5 high.
· 0x0E 0xD6 0xE8 0xEA:
if 352.8 KHz selected, set GPIO 3 low, GPIO 4 high, GPIO 5 high.
· 0xFE: No more events

I will use the GPIO_0 through GPIO_5 ports of XHRA-2HPA processor to provide info in PIC micro.

b) This IS25LQ016B flash memory can be programmed after mounting on the application PCB, i.e. it offers ICSP programming capability??

c) Can you suggest an inexpensive programming device for IS25LQ016B??
You could post me a personal message if you have problem to refer the brand of a programming device. Here: eal@dra.forthnet.gr

I hope i was more clear this time regarding my questions and sincerely i'm still confused.
I was not expecting that the configuration of XHRA-2HPA would be so complex, i was not expecting that i should use a programming device for the flash. I had the impression that the XHRA-2HPA contains an elementary program memory and that the configuration would be done trhough the USB port

Any help will be appreciated very much.

User avatar
Respected Member
Posts: 275
Joined: Fri Mar 12, 2010 6:03 pm

Postby larry » Tue Sep 06, 2016 3:54 pm

The XHRA-2HPA does not actually have a suitable program memory of its own, so it does always need an external flash.

When you run the configuration tool, it generates an image that contains both your configuration and a firmware image. From the configuration guide:
‘custom_xhra_firmware.bin’ is the configured firmware binary and it includes both the device’s firmware and the configuration bytes
I would suggest another XMOS board as a flash programmer. If you connect a flash programming socket to spare ports on the board, change XN file accordingly and use the xflash write all option, you will be able to write a raw image to a known flash device:

Code: Select all

xflash --target-file PROGRAMMER.xn --write-all IMAGE.bin
For flashes that are unknown to our tools, you can add a spec file with

Code: Select all

xTIMEcomposer user guide has details on xflash and spec files

Who is online

Users browsing this forum: No registered users and 2 guests