STM32F4 ADC: doble intercalado + independiente

2

Algunos microcontroladores STM32F4 tienen 3 ADC a bordo, se pueden configurar en varios modos.
Me pregunto si es posible configurar ADC1 y ADC2 en modo "Interleaved dual", pero ¿se ha configurado ADC3 como canal independiente?

Al generar un proyecto en CubeMX, si enciendo los 3 ADC y selecciono, por ejemplo, "Solo modo intercalado dual" en ADC1, todos los demás ADC están predeterminados en este modo sin posibilidad de cambiarlo. Esto es bastante extraño, ya que CubeMX básicamente dice que los 3 ADC están configurados en modo de doble entrelazado, lo que es ilógico (3 ADC que trabajan en Dual ...). No hay forma de cambiar ADC3 a ningún otro modo, aunque tenerlo como "Independiente" parece ser la única solución lógica.

En página 402 aquí bajo la viñeta 2, se dice "En el modo ADC dual, el La parte esclava de ADC3 no está presente. ", No estoy seguro de qué se entiende por eso: ¿es ADC3 en su totalidad no funciona en modo dual o simplemente ADC3 ya no es ESCLAVO? Me temo que es la única referencia a ADC3 en modo dual en el manual de referencia oficial.

En página 78 aquí dice "maestro de ADC1 y ADC2 esclavo, ADC3 es independiente. ", lo que sugiere que ADC3 puede configurarse como independiente, pero este pdf no lo describe más.

También encontré esta nota de aplicación , pero es solo para microcontroladores con 2 ADC adentro. Si hay la misma nota pero teniendo en cuenta ADC3, compártala, no la encontré.

Entonces surgen las siguientes preguntas:

  1. ¿CubeMX está dañado? Quiero decir, claramente no tiene sentido configurar 3 ADC en configuración dual. Tiene que configurar ADC3 en modo independiente o mostrar el mensaje de error "Ya no se puede usar ADC3, lol".
  2. ¿Puedo configurarlo manualmente en código o se supone que esto no funciona así?

Por supuesto, podría intentar que funcione mediante la construcción de un proyecto en dicha configuración y ver si funciona, pero si se supone que no debería funcionar así, sería una pérdida de muchas horas. No hay documentación al respecto, incluso si funcionará de alguna manera, será un desastre intentarlo para que funcione con DMA, supongo.

Entonces, si alguien ha hecho algo similar o sabe a ciencia cierta que no se supone que funcione, sería bueno escucharlo.

Ah, y si alguien se pregunta por qué hacerlo en primer lugar:
sería bueno tener "un canal" que utiliza el modo dual para obtener 4.8 MSPS y el otro solo regular (de ADC3) con 2.4 MSPS. A diferencia de tener dos canales simples en 2.4 MSPS.

    
pregunta ScienceSamovar

2 respuestas

1

En la nota de la aplicación que vinculaste, la página 9 dice, en el contexto del modo dual:

  

En algunos dispositivos, hay hasta 3 ADC: ADC1, ADC2 y ADC3. En este caso ADC3.   siempre funciona de forma independiente y no se sincroniza con los otros ADC

Desafortunadamente, Cube solo puede exponer un pequeño subconjunto de las capacidades de la MCU, y en este caso parece que faltan las opciones de ADC. Esto puede deberse a que hay relativamente pocas partes que tienen tres ADC, por lo que no hay tanto impulso para admitir esos modos. Si observa el manual de referencia, el campo MULTI del registro de control común ADC tiene las siguientes opciones (página 429):

En cuanto a por qué Cube muestra tres ADC en modo dual, eso es claramente un error. O bien está configurando ADC1 y ADC2 para modo dual y dejando solo ADC3, o está configurando los tres para modo triple. La única forma de estar seguro es examinar cómo el código generado está configurando el registro de control común.

Es posible que desee aumentar esto con ST, pero mientras tanto parece que para obtener la configuración que desea, necesitará usar las API de bajo nivel como sugiere la respuesta de Tomas Li, o programar los registros directamente.

    
respondido por el ajb
-1

Puedo confirmar, cuando uso el modo dual, ADC3 se puede usar de forma independiente. Actualmente, hay limitaciones en CubeMX / Cube lib, por lo que solo puede usar LL API para iniciar ADC3 cuando usa el modo Dual. He estado haciendo esto.

    
respondido por el Tomas Li

Lea otras preguntas en las etiquetas