MKR Vidor 4000 And MKR WAN 1300 Compatibility

Hello to everyone,

this is my first post here.

I'm writing since I need your help to solve an hardware/software issue I've in my project.

I'm developing a system where there are a Toradex embedded board running windows embedded compact and an ARDUINO Mkr wan 1300.

The embedded System talks with the Arduino using a TCP socket since I'm using an ethernet shield over the Arduino board.

The arduino board acts as a TCP server and the embedded system as a TCP Client.

The Arduino MKR uses the SD card for reading startup information and uses SPI for communicating with a DAC.

Arduino uses also 3 pins as PWM and some pins as digital input/outputs.

Everything works until the amount of data sent over ethernet and then processed is relatively small, like 2kb or a little more.

If I try to send more than this limit, also in different steps, the system hangs, probably because there is no sufficient SRAM available.

The software writes continuously data to the dac and it stores this data to write in strings and arrays.

I need probably to store 100Kb arrays or more and the SRAM limit is a problem.

Now I would like to use the MKR Vidor instead of mkr 1300 and I would like to ask you something.

First if there's full compatibility on the pinout and in the functionalities.

That is if I can use the same pins for digital I/O, SPI, PWM and so on and if I can use the same ethernet shield with the SD card.

If yes is it plug and play or I should to program the FPGA logic?

Can I use the 8 MB SDRAM for storing my data instead that using the 32KB of the SAMD CPU?

So please help me since I'm stuck and I don't know how to solve this issue.

Thanks in advance to everyone.

MKR WAN 1300 and Vidor 4000 have same SAMD21 MCU and all MKR boards should have same pinout.

Problem may be when trying to use that 8MB RAM. I haven't checked latest implementation but last time when I checked there was problem when accessing that ram from SAMD. That point there wasn't any function how to access. There was memory access through JTAG but it was only to mailbox.

So FPGA development needed for accessing directly that SDRAM. Other case maybe to use NIOS II or other softcore MCU and do all in FPGA.

I need only a way to store all data to be sent to the DAC because the SAMD do everything well in the processing.

I could use the SD card but my fear is the access time for reading each record to send.

It could absorb to much time.

For this reason I was thinking if there were a way to store the data on the FPGA SDRAM.

I think you can use serial, SPI or JTAG for writing data to FPGA and use FPGA to insert data to DAC. This need custom FPGA image.

SAMD21 should be available to use 24MHz SPI (if not limited in arduino).

I think they have some internal commands for using that jtag2avalon bridge. I think you can reuse that to directly access SDRAM when creating new FPGA image. I don't know what frame structure it uses to address memory etc so can't say how fast it will be. If I remember right JTAG speed was 12MHz (C10LP can use JTAG up to 25MHz).

One note:
Is that LAN adapter also using SPI? I was thinking if it can send all data before it run out buffer if it gets too big packet and you wait packet ack before sending more data?

emmettbrown73:
Everything works until the amount of data sent over ethernet and then processed is relatively small, like 2kb or a little more.

Arduino MKR WAN 1300 is using LoRa radio module, which is normally used for very low data rates.

Did you check if it's not the actual bottleneck, and that system doesn't hang, but simply waits for the data that was already lost?

--

VStrakh:
Arduino MKR WAN 1300 is using LoRa radio module, which is normally used for very low data rates.

Did you check if it's not the actual bottleneck, and that system doesn't hang, but simply waits for the data that was already lost?

--

"I'm using an ethernet shield over the Arduino board." I'm assuming it's 100M or 1G module with SPI. So SPI speed is limiting factor.

Edit: it seems to be this Arduino MKR ETH Shield. So it's 12 or 24 MHz SPI and it have 16 kB buffer.