+ Post New Thread
Results 1 to 10 of 10
  1. #1
    Newbie level 5
    Points: 328, Level: 3

    Join Date
    Nov 2015
    Posts
    9
    Helped
    0 / 0
    Points
    328
    Level
    3

    External ADC to MCU DMA - MCU type

    Hello,

    I need to take 8bit parallel burst signal from external ADC (20 kB per burst, 22,5 MHz). Buffer one burst, send it to PC and wait for another burst. No data processing on MCU side. MCU will know about comming data by trigger on GPIO pin.

    Delay between bursts is about 1 second long.

    I´m looking for MCU with DMA that will be capable of such a task. I have some experience with STM32 so I would prefere ST chips.

    STM32 family has many types and I feel completely lost in this. Is any of the STM32 capable of such a task? If yes is it available on any dev board? I´m not very familiar with HW designing so dev board seems like a better solution for me.

    Do you know about any other suitable MCU?

    I checked discovery kit with STM32L476VG, but it looks too slow.

    FPGA is maybe better for this but definitely harder to HW(PCB) design. Also FPGA devboards are more expensive.

    •   AltAdvertisment

        
       

  2. #2
    Advanced Member level 5
    Points: 12,975, Level: 27
    Achievements:
    7 years registered

    Join Date
    Aug 2011
    Posts
    2,595
    Helped
    302 / 302
    Points
    12,975
    Level
    27

    Re: External ADC to MCU DMA - MCU type

    How do you intend to communicate with the PC ? With USB ?



  3. #3
    Super Moderator
    Points: 73,950, Level: 66
    Achievements:
    7 years registered
    Awards:
    Most Frequent Poster 3rd Helpful Member

    Join Date
    Apr 2014
    Posts
    14,993
    Helped
    3418 / 3418
    Points
    73,950
    Level
    66

    Re: External ADC to MCU DMA - MCU type

    Hi,

    Why microcontroller?
    Why not PLD, combined with SRAM and USB chip, like FT245?

    Klaus



  4. #4
    Advanced Member level 5
    Points: 12,975, Level: 27
    Achievements:
    7 years registered

    Join Date
    Aug 2011
    Posts
    2,595
    Helped
    302 / 302
    Points
    12,975
    Level
    27

    Re: External ADC to MCU DMA - MCU type

    Krauss,
    Why don't you like the uC approach?
    It will certainly be chipper, consume less power and probably take less time to implement.



    •   AltAdvertisment

        
       

  5. #5
    Newbie level 5
    Points: 328, Level: 3

    Join Date
    Nov 2015
    Posts
    9
    Helped
    0 / 0
    Points
    328
    Level
    3

    Re: External ADC to MCU DMA - MCU type

    shaiko:
    USB suits me best.

    KlausST:
    - Fewer parts to implement
    - Easier HW development (I'm not good at this)
    - Posibility of cheap dev board with implemened USB data transfer
    - Also I know some C - easier code implementation
    - No exprience with PLD



  6. #6
    Advanced Member level 5
    Points: 9,012, Level: 22
    Achievements:
    7 years registered
    Easyrider83's Avatar
    Join Date
    Oct 2011
    Location
    Tallinn, Estonia
    Posts
    1,588
    Helped
    362 / 362
    Points
    9,012
    Level
    22

    Re: External ADC to MCU DMA - MCU type

    It is simple. Use FSMC with STM32. It can work in 8/16 bit modes.
    Love me or hate me. All infractions will be ignored.



  7. #7
    Newbie level 5
    Points: 328, Level: 3

    Join Date
    Nov 2015
    Posts
    9
    Helped
    0 / 0
    Points
    328
    Level
    3

    Re: External ADC to MCU DMA - MCU type

    Thank you for your replies.

    I was not able to figure out exact maximal value, but i found good blog post on this topic.

    http://cliffle.com/article/2015/06/06/pushing-pixels/

    So I will go with STM32F4 or F7.

    One question. There is a lot of submodels of F4 and F7. Would you prefer any of them for this task?



  8. #8
    Super Moderator
    Points: 8,466, Level: 22

    Join Date
    Jun 2009
    Location
    Japan
    Posts
    1,064
    Helped
    282 / 282
    Points
    8,466
    Level
    22

    Re: External ADC to MCU DMA - MCU type

    Hello!

    I need to take 8bit parallel burst signal from external ADC (20 kB per burst, 22,5 MHz). Buffer one burst, send it to PC and wait for another burst. No data processing on MCU side. MCU will know about comming data by trigger on GPIO pin.
    I'm not sure that what you describe is exactly what I did, but just in case:
    I needed to have 8 (or possibly 16) MEMS microphones in parallel. I have wired them to a single port, and get all
    the bits in parallel. The frequency has to be 12.288 MHz, but the timer setting allows to go higher, so I guess you could
    sample at 22.5 MHz provided you find the right setting. But as 22.5 is 180 / 8, I'm pretty sure you can do it, and the
    timer value should be 3 (using 180, your timer clock will be 90, that you have to divide by 4, therefore 4-1 = 3).

    The good thing about this method is that it takes no CPU power. Basically, you setup a timer (as above), and you choose
    the proper DMA to transfer your results into memory. And you can have an interrupt at half buffer and full buffer.
    This allows you to sample half of the buffer while processing the previous half.

    An advice: configure everything in CubeMX. It will generate the initialization code and the only thing you have to do
    will be to fill the contents of the interrupt.

    Dora.


    1 members found this post helpful.

  9. #9
    Newbie level 5
    Points: 328, Level: 3

    Join Date
    Nov 2015
    Posts
    9
    Helped
    0 / 0
    Points
    328
    Level
    3

    Re: External ADC to MCU DMA - MCU type

    Thank you, Dora.

    Yes, it should be the same thing.

    What MCU did you use?



    •   AltAdvertisment

        
       

  10. #10
    Super Moderator
    Points: 8,466, Level: 22

    Join Date
    Jun 2009
    Location
    Japan
    Posts
    1,064
    Helped
    282 / 282
    Points
    8,466
    Level
    22

    Re: External ADC to MCU DMA - MCU type

    Hello!

    What MCU did you use?
    I'm using the F769. The reason is that I'm not very experienced with STM32, and I had no idea of the final
    program size, etc. So I took a powerful beast that can be soldered by hand (i.e QFP, not BGA), the 208 pins
    model. Quite a big stone. It's incredibly powerful. I also verified that I can get 16 microphones at once, it
    works fine, and I can work continuously (i.e. not bursts). By the way, I was writing "180 MHz", but it's the
    frequency of the F4x (I made the very first experiments with a F469 disco, the one with a nice LCD).
    The F7x series can run at 216 MHz. You should be able to find a close frequency that would match with 22.5.

    By the way, I don't know exactly what you are doing and neither how to do it, but here is a little advice.
    At first, I thought that the code provided by ST is not very well written and I thought I would do it on my own,
    as I'm used to do. However, I found out that using CubeMX can generate most of the code I need. For
    example, what I was describing with my 16 mems mics can be generated (about 95%). The 5% remaining
    consist in adding the interrupt routines, filling blanks, defining your own variables, etc. No headache fore
    clock configuration, no danger of using a pin which is already use for another peripheral, CubeMX tells you
    what is already used and what is not.
    On top of that, you can also modify your program graphically in CubeMX, generate the new code again,
    but CubeMX doesn't erase your code additions provided it's done in the proper areas. Example, you have
    a working program. You want to add an SPI flash? Just click the checkbox in CubeMX, re generate, and you're
    done. Your program still works the SPI for your flash is initialized, you just have to write the access functions.

    Have fun!

    Dora.



--[[ ]]--