diff --git a/src/Emulator/Peripherals/Peripherals/SPI/SAM_SPI.cs b/src/Emulator/Peripherals/Peripherals/SPI/SAM_SPI.cs index cf58be659..178ca1c07 100644 --- a/src/Emulator/Peripherals/Peripherals/SPI/SAM_SPI.cs +++ b/src/Emulator/Peripherals/Peripherals/SPI/SAM_SPI.cs @@ -357,7 +357,15 @@ private void SetDmaAccessWidth() } else { - DmaWriteAccessWidth = txLengths[SelectedSlaveRegisterNumber] > 0 ? TransferType.Word : TransferType.Byte; + var slaveRegNum = SelectedSlaveRegisterNumber; + if(slaveRegNum >= txLengths.Length) + { + DmaWriteAccessWidth = TransferType.Byte; + } + else + { + DmaWriteAccessWidth = txLengths[slaveRegNum] > 0 ? TransferType.Word : TransferType.Byte; + } } }