STM32L476 SPI3 Using DMA2 Chan 2. No Transmit.
Hello Everyone. My how the forum has changed. Just dropping a recent odd experience here to see if anyone might have any comments. No. I don't use CubeMx and no this isn't another 3 year anniversary item regarding initializing the DMA before any peripherals that use it. We do that by default. However - working on a colleagues project, I have some code written to do some work that IS HAL library style stuff.
Getting a DMA controlled transmission from SPI 3 from the micro.
I have a DMA transmission from SPI 1 working. So I am familiar…….
Second Saturday in a row working on this for SPI3….. Nothing I try works when using the DMA approach.
I can get all the SPI 3 hardware to work and send data if I call the BLOCKING SPI routine. NOT using the DMA.
Dumped out tons of register settings – All looks as it should.
Finally I give in to what I figure is a LOOOOOOOOOOONNNGGGGGG shot . -------- Try a different board.
It appears to work. (???????????????)
Mind you --- the first board works with everything EXCEPT a DMA transfer for SPI3. Leads me to believe that – the micro has a BURRIED PERIPHERAL BAD ? One that has NO OUTSIDE WORLD HOOKUPS ?
*THAT* will definitely be a FIRST for me. I don’t know if I believe what I see until I try this on several boards. I have 4. Of course - I'm spooked about some sort of configuration weirdo that allows some race to occur that will maybe work on some chips and not on others. My only question would be --- Suggestions as to Where? I have this set up to test as a 1 pass event then trap it after the call to HAL_SPI_Transmit_DMA(&Spi_3_Handle, source, 33840). So not getting a loop around recall. And yes I always wait after enabling clocks .
How rare is the bad burried peripheral idea?
Any feedback appreciated!
Thanks.
R
