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.