Hello,

I have figured what causes the transmission problem.

I had to setup the Channel Control B Register with:
DMAC_CHCTRLB_TRIGACT_BLOCK instead of DMAC_CHCTRLB_TRIGACT_BEAT

Because it would only do one pulse. With TRIGACT_BLOCK, it looks better but
DMAC do not read all the buffer. it seams that DMAC outputs one byte
(8bits) and then is jumping 8 bytes. Looking at the buffer below, it ouputs
only values in brackets.

I tried to modify DMACH_FLAG_STEPSIZE_MASK value to DMACH_FLAG_STEPSIZE_X1
but it has no impact.
I did the same with LPSRAM_BTCTRL_STEPSIZE_MASK.

I am pretty sure that it has something to do with STEPSIZE. But I don't
understand why it has no impact at all.

Is it because of DMACH_FLAG_MEM_INCREMENT set to automatic?

Where am I supposed to configure the DMAC? in the samd_dmac.h, sam_dmac.h,
sam_dmac.c or spi.c?? I am a bit confused.

The buffer (a short version of it) look like this:
0x60 is ONE
0x78 is ZERO
0x0 is RESET


0x200023c8: 0x[00]000000 0x00000000 0x[00]000000 0x00000000
0x200023d8: 0x[00]000000 0x00000000 0x[00]000000 0x00000000
0x200023e8: 0x[00]000000 0x00000000 0x[00]000000 0x00000000
0x200023f8:  0x[00]000000 0x00000000 0x[00]000000 0x60606060
0x20002408: 0x[60]606060 0x60606060 0x[60]606060 0x60606060
0x20002418: 0x[60]606060 0x60606060 0x[60]606060 0x60606060
0x20002428: 0x[60]606060 0x60606060 0x[60]606060 0x60606060
0x20002438: 0x[60]606060 0x60606060 0x[60]606060 0x60606060
0x20002448: 0x[60]606060 0x60606060 0x[60]606060 0x60606060
0x20002458: 0x[60]606060 0x60606060 0x[60]606060 0x60606060
0x20002468: 0x[60]606060 0x60606060 0x[60]606060 0x60606060
0x20002478: 0x[60]606060

Regards,
Bert.

Reply via email to