L'arrêt de la lecture audio sur les écouteurs sans fil Cleer Arc5 déclenche une séquence rigoureuse de libération des ressources pour minimiser la consommation d'énergie et assurer une réponse rapide lors des réveils ultérieurs. Ce processus implique la coordination entre le DSP, le SoC principal, la pile Bluetooth et l'unité de gestion de puissance (PMU).
Étape initiale : arrêt du DSP
Le processeur de signal numérique (DSP) exécute des tâches intensives telles que le traitement du son spatial et la réduction du bruit actif. Lorsqu'il reçoit un signal de cessation, il libère les ressources dans un ordre spécifique.
void stop_dsp_audio_pipeline(void) {
terminate_audio_threads();
clear_fifo_queues(&input_buffer, &output_buffer);
disable_i2s_interface();
gate_microphone_clocks();
save_context_to_retention_ram();
enter_dsp_power_state(DEEP_SLEEP);
send_ipc_notification(DSP_IDLE);
}
La sauvegarde du contexte dans la mémoire de rétention permet un redémarrage rapide sans initialisation complète, réduisant le temps de réveil.
Rôle du SoC principal
Le système sur puce (SoC) orchestre la séquence globale lorsqu'il détecte la fin du flux A2DP ou la fin de lecture locale. Il utilise un mécanisme de timeout pour éviter les blocages.
void handle_audio_termination(uint32_t signal) {
if (signal == AUDIO_PLAYBACK_ENDED) {
close_audio_decoder();
disconnect_bt_media_stream();
detach_audio_mixer_sources();
disable_audio_clocks();
command_dsp_shutdown();
if (await_ipc_ack(DSP_IDLE, TIMEOUT_MS)) {
switch_to_low_power_mode();
} else {
force_peripheral_power_down();
}
}
}
Le timeout de 100ms garantit que le système ne reste pas en attente indéfiniment en cas de défaillance du DSP.
Gestion du Bluetooth
La pile Bluetooth ne déconnecte pas entièrement le lien, mais libère uniquement les ressources du média audio pour maintenir la connectivité de contrôle.
- Libération des buffers de codec et des contextes d'encodage.
- Passage du module RF en mode écoute à faible cycle de service.
- Conservation du lien ACL pour les appels entrants et le réveil par assistatn vocal.
Optimisation de la gestion de puissance
Le PMU coupe les alimentations non essentielles tout en maintenant celles nécessaires à la rétention de données. Les rails d'alimentation sont désactivés dans un ordre séquencé pour éviter les problèmes de verrouillage.
| Rail d'alimentation | Fonction | État après arrêt |
|---|---|---|
| AVDD_AUDIO | Alimentation analogique du codec | Désactivé |
| DVDD_DSP | Alimentation numérique du DSP | Désactivé |
| VDD_SRAM_RET | Alimentation de la mémoire de rétention | Activé |
Le courant de veille global est maintenu sous 1.5 mA grâce à des minuteries à ultra-basse consommation qui vérifient périodiquement les événements de réveil.
Avantages techniques
Ce mécanisme réduit le courant de veille de 40%, abaisse le temps de démarrage à froid sous 800 ms et améliore la stabilité de connexion Bluetooth de 90% en éliminant les états résiduels parasites.
Considérations d'implémentation
Les défis incluent la gestion des dépendances temporelles entre les composants, l'ajout de mécanismes de secours en cas de timeout et la journalisation détaillée pour le diagnostic via OTA. Des stratégies de gestion adaptatives permettent d'ajuster le comportement selon les modes d'utilisation.