WARP Project Forums - Wireless Open-Access Research Platform

You are not logged in.

#1 2016-Jan-14 21:25:00

crimechb
Member
Registered: 2010-Sep-01
Posts: 205

About SPI master

Dear Sir,

We would like to use a new SPI master to control the register of FMC.
In this Address and it can work fine.
https://www.dropbox.com/s/2nddtp6oa0lrz … 1.png?dl=0

If we put the SPI into 0xBF580000~0xBF58FFFF. (After pkt_buff_TX_bram_ctrl)
The process will be stuck in wile loop of C code.
https://www.dropbox.com/s/dgq0w23rnptw6 … 2.jpg?dl=0

This memory (0xBF580000~0xBF58FFFF) is valid or not.

Best regards,
Paul

Offline

 

#2 2016-Jan-14 21:46:38

murphpo
Administrator
From: Mango Communications
Registered: 2006-Jul-03
Posts: 5159

Re: About SPI master

Which reference design are you modifying? If it's the 802.11 design, which CPU should be able to access the new peripheral?

Also, just in case you're using the FMC-RF-2X245 module, you can use the SPI master in the w3_ad_controller core to configure the AD9963 chips. If you're using a third-party FMC module with SPI slave devices, using the Xilinx axi_spi is a good approach.

Offline

 

#3 2016-Jan-15 00:01:02

dinolai
Member
Registered: 2015-Jul-21
Posts: 3

Re: About SPI master

Dear Sir,

We use Mango_802.11_RefDes_v1.2.0 and we don't modify the reference design.
We choose mb_low to create the axi_spi module.
If I set the address of axi_spi on 0x50000000~0x5000FFFF, it can work.
If I set it on 0xBF580000~0xBF58FFFF (After pkt_buff_TX_bram_ctrl), it will has some problem.
The process will be stuck in wile loop of C code.

Do you know why this situation happen?

Offline

 

#4 2016-Jan-15 09:24:52

welsh
Administrator
From: Mango Communications
Registered: 2013-May-15
Posts: 612

Re: About SPI master

If you look at the FPGA Architecture (the link is to v1.3.0 b/c we have not generated a diagram for v.1.2.0, but they are similar enough), you can see that each processor has their M_AXI_DP connected to a separate interconnect (i.e. the "MB * Peripheral Bus" interconnect in the picture) and the M_AXI_DC port connected to a shared interconnect (i.e. the "MB Shared" interconnect in the picture).  If you look at how the Microblaze processors are configured, all bus accesses with addresses from 0x0000_0000 to 0x7FFF_FFFF are issued out of the M_AXI_DP port (or to the attached LMB BRAM), while all bus accesses with addresses from 0x8000_0000 to 0xFFFF_FFFF are issued out of the M_AXI_DC port.  So where you connect the new SPI peripheral to the interconnect determines what the valid address range can be.  If you placed the SPI module on the "MB Low Peripheral Bus", then the address must be less than 0x7FFF_FFFF.  This is why an address of 0x5000_0000~0x5000_FFFF will work but an  address of 0xBF58_0000~0xBF58_FFFF does not.  If the peripheral should be shared between CPU High and CPU Low, then you should put in on the "MB Shared" bus and assign an appropriate address.  Otherwise, you should keep it on the "MB Low Peripheral Bus" and use an address less than or equal to 0x7FFF_0000~0x7FFF_FFFF.

Offline

 

#5 2016-Jan-17 05:12:05

dinolai
Member
Registered: 2015-Jul-21
Posts: 3

Re: About SPI master

I got it !!!
Thank you for your help.

Offline

 

Board footer