Autor Tema: Se me quedan bloqueados los adc.  (Leído 2671 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado juaperser1

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 2976
Se me quedan bloqueados los adc.
« en: 03 de Noviembre de 2019, 17:06:39 »
Buenas, estoy trabajando con un stm32G030, el sistema monitoriza una sonda de temperatura y actua en consecuencia, pero me he dado cuenta que en algunas ocasiones el adc deja de medir.

Por ejemplo, si la temperatura esta subiendo, pues se queda en 25 y ya no sube mas (esto es completamente aleatorio, no se para siempre ni en el mismo sitio). Todo los demñás sigue funcionando sin problemas, el display, los pulsadores el RTC etc. Al reiniciar vuelve a funcionar sin problemas.

¿Como puedo arreglar esto? ¿ Alguien sabe el motivo? Puede ser que se quede bloqueado por el ruido de los reles, compresores o algo por el estilo?

un saludo y gracias.
« Última modificación: 03 de Noviembre de 2019, 17:09:05 por juaperser1 »
Visita mi canal para aprender sobre electrónica y programación:

https://www.youtube.com/channel/UCxOYHcAMLCVEtZEvGgPQ6Vw

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Se me quedan bloqueados los adc.
« Respuesta #1 en: 03 de Noviembre de 2019, 19:01:08 »
Creo que esto ya pasa mas por el funcionamiento del micro, y deberia ser preguntado y respondido por la gente de ST.

Especialmente si podes proveer un ejemplo sencillo donde esto ocurra.
¿Probaste otros micros y siguen haciendo lo mismo?

Desconectado juaperser1

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 2976
Re:Se me quedan bloqueados los adc.
« Respuesta #2 en: 04 de Noviembre de 2019, 03:17:58 »
Creo que esto ya pasa mas por el funcionamiento del micro, y deberia ser preguntado y respondido por la gente de ST.

Especialmente si podes proveer un ejemplo sencillo donde esto ocurra.
¿Probaste otros micros y siguen haciendo lo mismo?

Creo recordar que en los STM32F030 a un compañero también le ocurría esto, y lo resolvió para salir del paso haciendo que un reset por software una vez al día.

Voy a intentar preguntar al servicio técnico de ST aunque no espero gran cosa. De momento se me ocurre colocar unas variables para comparar los valores del ADC, si este se repite varias veces deshabilitar y volver a inicializar el ST a ver si esto lo arregla.

Citar
Especialmente si podes proveer un ejemplo sencillo donde esto ocurra.

Es aleatorio, lo mismo se pega 2 días funcionando sin problemas que lo mismo a las 2 horas se queda parado

Visita mi canal para aprender sobre electrónica y programación:

https://www.youtube.com/channel/UCxOYHcAMLCVEtZEvGgPQ6Vw

Desconectado Carlos_Diaz

  • PIC10
  • *
  • Mensajes: 2
Re:Se me quedan bloqueados los adc.
« Respuesta #3 en: 21 de Noviembre de 2019, 01:45:10 »
Hola Juanjo,

¿Estas revisando lo que retornan las funciones de la HAL cuando intentas medir los canales del ADC?
¿Cuantos canales de ADC estas leyendo?

Yo tuve problemas con el F130 (o algo asi), trataba de leer un canal y me resultaba en un HardFault.

Saludos

Desconectado juaperser1

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 2976
Re:Se me quedan bloqueados los adc.
« Respuesta #4 en: 21 de Noviembre de 2019, 14:10:16 »
Hola Juanjo,

¿Estas revisando lo que retornan las funciones de la HAL cuando intentas medir los canales del ADC?
¿Cuantos canales de ADC estas leyendo?

Yo tuve problemas con el F130 (o algo asi), trataba de leer un canal y me resultaba en un HardFault.

Saludos

Me dan correcto, estoy leyendo dos canales del adc por DMA, el problema que tengo es complemente aleatorio, por ello no puedo verlo en debug.

Escribí al servicio técnico a ver si me decian por que pasaba esto, pero sin respuesta. Para arreglarlo he tenido que crear algo así como un watchdog para revisar cuando se han quedado pillados los adc, y resetear el periférico.
Visita mi canal para aprender sobre electrónica y programación:

https://www.youtube.com/channel/UCxOYHcAMLCVEtZEvGgPQ6Vw

Desconectado cristian_elect

  • PIC18
  • ****
  • Mensajes: 453
Re:Se me quedan bloqueados los adc.
« Respuesta #5 en: 24 de Noviembre de 2019, 20:35:30 »
Yo tenía problemas con el ADC del stm32f030F4 como modo normal con el tiempo mas corto de conversión sin optimización funcionaba bien pero con optimización >O0 fallaba salía cualquier valor, en modo interrupción fallaba con optimización o sin el. La única manera que me funcionara bien es subir el "ADC_SAMPLETIME_71CYCLES_5" y ya funciona bien con cualquier modo de optimización.

Desconectado Carlos_Diaz

  • PIC10
  • *
  • Mensajes: 2
Re:Se me quedan bloqueados los adc.
« Respuesta #6 en: 24 de Abril de 2020, 16:48:41 »
Hola,

Tuve el mismo problema, o uno muy similar, a principios de esta semana y recordé este tema, lo resolvi haciendo HAL_ADC_Start antes de polear la conversión y HAL_ADC_Stop al terminarla.

Código: [Seleccionar]
for (size_t sample_idx = 0; sample_idx < ADC_SAMPLES_MAX; sample_idx++) {

    HAL_ADC_Start(&hadc1);

    HAL_StatusTypeDef ret = HAL_ADC_PollForConversion(&hadc1, 1000);

    if (HAL_OK != ret) {
        printf("Error de conversion: %d", ret);
    } else {
        /* Sumamos el resultado obtenido al acumulado */
        sum_sensors[SENSOR_A] += (uint16_t) HAL_ADC_GetValue(&hadc1);
    }

    ret = HAL_ADC_PollForConversion(&hadc1, 1000);

    if (HAL_OK != ret) {
        printf("Error de conversion: %d", ret);
    } else {
        /* Sumamos el resultado obtenido al acumulado */
        sum_sensors[SENSOR_B] += (uint16_t) HAL_ADC_GetValue(&hadc1);
    }

    HAL_ADC_Stop(&hadc1);
}