Technical question about the firmware

Mostly for Julian, I suppose:

Is there any particular reason you're not using the hardware-assisted double-buffering mode for I2S DMA transfer? As I understand the code, you're juggling the pointers manually and resetting the DMA peripheral every time the DMA interrupt is raised, but as far as I understand the ST docs, it can do this exact thing in hardware using the two memory addresses for each DMA stream? You could simplify the ISR quite a bit I think, but maybe there's a reason to do it this way?

Comments

  • phew, it's been quite a while since I worked with the DMA configuration ;)
    I think I tried it in the beginning, but could not get it to work propperly.
    But I can't remember what the problem was.

    in general you are right.
    There is a mode with automatic pointer incrementation.
  • I can send you a patch if you think it's relevant, I just can't actually test it first since I don't have an LXR.

    I do have this mode working with the DAC peripheral on a Discovery board and it should be the same for I2S. I want an LXR with an output per voice, but since there aren't enough I2Ss, I'm going to use a regular DAC (not a codec) and external sample and hold. Using the built-in one for testing, but it's obviously not going to be very hi-fi :)
  • I can not understand why the simple connection between Program and used Kit is not stored together if
    I save the program so far in the official version. Also that the last constellation like external sync and midi filters are not stored automatically if I disconnect the LXR from Power.
  • saving patterns with kits together is working in the next release (I'm just trying to get some USB stuff fixed at the moment as well, but it's already on the GIT tip)

    what would be the best point to do an autosave for the global parameters? when leaving the globals menu?
  • Sounds about right.
Sign In or Register to comment.