Autor Tema: Entrar en modo de bajo consumo y depurar.  (Leído 4837 veces)

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

Desconectado juaperser1

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 2980
Entrar en modo de bajo consumo y depurar.
« en: 05 de Octubre de 2023, 12:48:19 »
Hola.

Esta consulta viene en referencia a este tema:
http://www.todopic.com.ar/foros/index.php?topic=51587.0

Finalmente ya me han llegado las placas con la modificación de aislar uno de los dos DAC16. El problema de poder mandar dos señales distintas con solo dos 3 cables esta solventado. ya no hay problemas para mandar dos datos distintos.

Pero ahora tengo otro problema.

La DAC de la temperatura 2 no tiene ningún problema ya que el consumo de la electrónica que no pertenece al bucle esta por debajo de los 4mA y se regula sin problemas.

Pero en el bucle del DAC1 se comparte junto con el bucle, la intensidad del micro, la intensidad del sensor de temperatura, y la intensidad de VCC1 del aislador, y en el valor mas pequeño de intensidad es de 4,25mA cuando debería ser 4mA (valor -40 grados). Es un error de medida que no quiero tener, por lo que había pensado en meter al micro en bajo consumo tal que así:

ON->Orden al sensor de medir->espera->orden al sensor de leer el valor->actualizar los registros DAC16 por spi->Entrar en modo stop->esperar 1 segundo ->despertar y repetir el bucle.

De esta manera los pasos de leer y actualizar los dac se harán muy rapido y luego el micro no consumirá casi.

Nunca me he visto en la necesidad de parar un micro o llevarlo a standby o bajo consumo o algo similar y no consigo hacerlo.

En modo depuración simplemente pasa de la instrucción y no se para y sin depuración me sigue consumiendo lo mismo.

he resumido el código a esto a ver que tal:

Código: [Seleccionar]
HAL_TIM_Base_DeInit(&htim21);

     MedirSensor();
     Delay 20mS                          //Tiempo de espera necesario para que el sensor lea los valores
     LeerSensor();
     ActualizarRegistrosDAC();

     ApagarTimer();

     __HAL_PWR_CLEAR_FLAG(PWR_FLAG_WU);
     HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON, PWR_STOPENTRY_WFI);

Supuestamente despues de este código no deberia despertar ya que no hay ninguna interrupción que yo sepa, pero el consumo es igual que en RUN, y en depuracion no puedo o no se hacerlo.

un saludo.

NOTA: Ya he puesto el micro a 1MHz, y con todas las entradas salidas configuradas en analógico a ver si así no pasaba de los 4mA pero lo mejor que he conseguido ha sido 4,25mA.

Desconectado DominusDRR

  • PIC24H
  • ******
  • Mensajes: 1982
    • Sicoy
Re:Entrar en modo de bajo consumo y depurar.
« Respuesta #1 en: 05 de Octubre de 2023, 23:09:11 »
Hola.

Esta consulta viene en referencia a este tema:
http://www.todopic.com.ar/foros/index.php?topic=51587.0

Finalmente ya me han llegado las placas con la modificación de aislar uno de los dos DAC16. El problema de poder mandar dos señales distintas con solo dos 3 cables esta solventado. ya no hay problemas para mandar dos datos distintos.

Pero ahora tengo otro problema.

La DAC de la temperatura 2 no tiene ningún problema ya que el consumo de la electrónica que no pertenece al bucle esta por debajo de los 4mA y se regula sin problemas.

Pero en el bucle del DAC1 se comparte junto con el bucle, la intensidad del micro, la intensidad del sensor de temperatura, y la intensidad de VCC1 del aislador, y en el valor mas pequeño de intensidad es de 4,25mA cuando debería ser 4mA (valor -40 grados). Es un error de medida que no quiero tener, por lo que había pensado en meter al micro en bajo consumo tal que así:

ON->Orden al sensor de medir->espera->orden al sensor de leer el valor->actualizar los registros DAC16 por spi->Entrar en modo stop->esperar 1 segundo ->despertar y repetir el bucle.

De esta manera los pasos de leer y actualizar los dac se harán muy rapido y luego el micro no consumirá casi.

Nunca me he visto en la necesidad de parar un micro o llevarlo a standby o bajo consumo o algo similar y no consigo hacerlo.

En modo depuración simplemente pasa de la instrucción y no se para y sin depuración me sigue consumiendo lo mismo.

he resumido el código a esto a ver que tal:

Código: [Seleccionar]
HAL_TIM_Base_DeInit(&htim21);

     MedirSensor();
     Delay 20mS                          //Tiempo de espera necesario para que el sensor lea los valores
     LeerSensor();
     ActualizarRegistrosDAC();

     ApagarTimer();

     __HAL_PWR_CLEAR_FLAG(PWR_FLAG_WU);
     HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON, PWR_STOPENTRY_WFI);

Supuestamente despues de este código no deberia despertar ya que no hay ninguna interrupción que yo sepa, pero el consumo es igual que en RUN, y en depuracion no puedo o no se hacerlo.

un saludo.

NOTA: Ya he puesto el micro a 1MHz, y con todas las entradas salidas configuradas en analógico a ver si así no pasaba de los 4mA pero lo mejor que he conseguido ha sido 4,25mA.

Yo creo que deberías hacer la pregunta en los foros de ST, por estos lados predomina más lo de 8 bits de MCHP.
Tengo una idea algo difusa sobre MPLAB Harmony, XC32 con PIC32

Desconectado Sispic

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1700
    • winpic800
Re:Entrar en modo de bajo consumo y depurar.
« Respuesta #2 en: 06 de Octubre de 2023, 02:16:27 »
R1 y R2 que convierten corriente a tensión tienen que tener una tolerancia muy pequeña 0.1% mejor que 5%.
Jugando con los valores de R1 o R2  quizás lo puedas igualar o  corregir .
Probando resistencias de pequeño valor en serie o paralelo .
« Última modificación: 06 de Octubre de 2023, 02:22:20 por Sispic »

Desconectado juaperser1

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 2980
Re:Entrar en modo de bajo consumo y depurar.
« Respuesta #3 en: 14 de Octubre de 2023, 09:54:48 »
Ya lo solucione, por lo visto aunque uses el LPTIM para despertar al micro, no debes usar los APB del micro si no el reloj de 37KHz interno o activar manualmente para que funcione la fuente del reloj del timer.

También debes reconfigurar el reloj y los periféricos al salir del estado de stop.

un saludo.


 

anything