Migrating from XHRA to XU208

Discussions about USB Audio on XMOS devices
just280
Member++
Posts: 22
Joined: Tue Nov 01, 2016 9:02 am

Post by just280 »

Power attached.
The reset (POR) is connected to another remote board and I use a PIC microcontroller to control it via an IO expander. This pin is internally tied up to 3v3.
Attachments
reset.JPG
reset.JPG (23.55 KiB) Viewed 19175 times
reset.JPG
reset.JPG (23.55 KiB) Viewed 19175 times
power.JPG
(166.43 KiB) Not downloaded yet
power.JPG
(166.43 KiB) Not downloaded yet


User avatar
mon2
XCore Legend
Posts: 1913
Joined: Thu Jun 10, 2010 11:43 am
Contact:

Post by mon2 »

Does your POR monitor the 3v3 and 1v0 rails so that 1v0 rail is off unless 3v3 is stable, then turns on the 1v0 rail and once the 1v0 rail is stable then the open drain reset is released? The open drain reset is then pulled up high to take the cpu out of reset. If not then the voltage sequencing could be the issue.
User avatar
mon2
XCore Legend
Posts: 1913
Joined: Thu Jun 10, 2010 11:43 am
Contact:

Post by mon2 »

For some quick testing to apply the proper power sequencing...

1) Source one of the TO-92 packaged 2v90 voltage supervisor with push-pull output:

p/n MCP112-290E/TO

This part does not require a pull-up for the HIGH output. That is, till the 3v3 voltage rail on U10 of your design is < 2v90, the output will be LOW to keep your downstream 1v0 regulator (U11) OFF.

Input to pin # 3 of U10.
Output to pin # 3 (EN) of U11. Do not keep U11 always enabled but rather power sequenced to turn on only after the 3v3 rail is deemed to be stable (80%+ of 3v3) first.

https://www.mouser.com/ProductDetail/Mi ... kB50EH8%3d

Code: Select all

https://www.mouser.com/ProductDetail/Microchip-Technology/MCP112-290E-TO?qs=sGAEpiMZZMunEhqKs81nFLG8va17Hy5h5stEkB50EH8%3d
2) Next, need a 1v0 supervisor to monitor the output of U11. Often a 0v9 threshold part is used here but the output of this component should be open drain. The reason being that so multiple sources can drive the same target RST pin of the XMOS CPU. With open drain, only a logic low is supplied by the device and high is actually high impedance (tri-state) so the pull-up on RST line is required to define the soft high.

From a quick search, these parts and threshold appear to be in SOT-23-5 package only rather than TO-92.

Then test again. Hope this resolves your quirky issues.
just280
Member++
Posts: 22
Joined: Tue Nov 01, 2016 9:02 am

Post by just280 »

Hi,

Sorry for the delay in getting back to you on this.

I've kind of had progress in that I tried another one of my custom XU208 boards and that seemed to flash straight away. The only thing is I had some warnings appear at the start of the flash process...

Warning: F03098 Factory image and boot loader cannot be write-protected on flash device on node 0
xflash: Warning: F03148 --quad-spi-clock not given, using default 15.62MHz
xflash: Warning: F03149 QE_REGISTER and/or QE_BIT locations not found in XN file for this flash device. Using default quad_spi_qe_location_status_reg_0 and quad_spi_qe_bit_6.

I'm finding that the XU208 is not enumerating on my PC. The quad flash device was pre-flashed with the same firmware I used with the original XHRA if that should make any difference?
User avatar
akp
XCore Expert
Posts: 578
Joined: Thu Nov 26, 2015 11:47 pm

Post by akp »

Those warnings are normal and are fine for my applications. But I use the parts with embedded flash so it might be different for you, but I doubt it.
just280
Member++
Posts: 22
Joined: Tue Nov 01, 2016 9:02 am

Post by just280 »

I'm a complete novice when it comes to xTIME so excuse the stupid questions.

Okay so going back to building the software I get the warnings shown in the attached JPEG.
I'm assuming this is not normal even though a binary file was created? Other compilers I use would not create a binary/hex file with these sort of errors.
Attachments
warnings.JPG
(234.83 KiB) Not downloaded yet
warnings.JPG
(234.83 KiB) Not downloaded yet
User avatar
mon2
XCore Legend
Posts: 1913
Joined: Thu Jun 10, 2010 11:43 am
Contact:

Post by mon2 »

The quick advice is to start with a fresh workspace on your local drive and download the XMOS IP as noted at the start of this thread.

Then File>Import>Existing Projects into Workspace.

See if that works for you.
just280
Member++
Posts: 22
Joined: Tue Nov 01, 2016 9:02 am

Post by just280 »

I did what you said and that cleared all of the previous warning. I had a new set of warnings appear but I assume they are normal, I've attached them anyway.
I've flashed the device and still no enumeration :-S
Attachments
warnings2.JPG
(295.31 KiB) Not downloaded yet
warnings2.JPG
(295.31 KiB) Not downloaded yet
User avatar
mon2
XCore Legend
Posts: 1913
Joined: Thu Jun 10, 2010 11:43 am
Contact:

Post by mon2 »

@just280 - which flash device are you using on your custom PCB? Once this is known, download the datasheet and review where and how to enable the QSPI mode of your flash device. If the details of your flash device are different than the defaults then you will need to inform the xflash tool of the specific register details for your device. Else this will not work to boot the firmware from the external flash.

As a test, code up a small routine to blink a LED using any available GPIO pin. Confirm it works. Then flash onto your custom PCB. Power cycle to check if the custom PCB powers up with your LED blink firmware. If yes then the QSPI mode is ok. If not, review the QSPI details for your custom design.

Another suggestion, but only after confirming the basic LED blink code is able to boot on your custom PCB and your external flash is to program any of the XMOS ref designs working with USB. Such as USB HID (recommended); USB CDC, etc. Then flash this XMOS USB IP onto your custom PCB and mate with any / multiple PCs. Test as many USB ports as possible. Does your PC enumerate your XMOS USB dongle IP (HID, CDC, etc.)? If not, then you have some other USB related issue and could be linked to PCB layout; PCB impedance control which is mandatory for proper USB support. The USB IP by XMOS is HS mode (aka 480 Mbps) so the USB traces on your PCB must be properly designed. Check the USB Specifications which are available on the internet for a detailed review. Being USB HS, 4L PCB is also mandatory.

Finally, if you are using VBUS from the USB connector to power your gadget, then inrush current limit is required else you can face permanent damage to the XMOS CPU. That topic has been raised throughout this forum with resolutions.

Diodes Inc. AP2822 is one of many choices on the market. They are available with varying current limit values but 0.5A should be ample.

AP2822CKBTR-G1

https://www.diodes.com/assets/Datasheets/AP2822.pdf
just280
Member++
Posts: 22
Joined: Tue Nov 01, 2016 9:02 am

Post by just280 »

I'm using the IS25LQ016B device.
I've created a .bin file following the instructions on the first page of this topic and will use an external programmer to program the spi RAM and try that.
I am a total novice to the xTIME environment so coding up a flashing led will take me some time to work out! I appreciate all your time helping me though.
Post Reply