Brick Groove Machine 0.9.3
Firmware embarqué pour contrôleur/synthé Brick
 
Chargement...
Recherche...
Aucune correspondance
Référence du fichier usb_device.c

Gestion du périphérique USB (démarrage, connexion, état). Plus de détails...

#include "ch.h"
#include "hal.h"
#include "usbcfg.h"
#include <stdbool.h>

Fonctions

void usb_device_start (void)
 Démarre et initialise le périphérique USB (mode Device).
 
bool usb_device_active (void)
 Indique si le périphérique USB MIDI est actif et prêt à l’envoi.
 

Variables

volatile bool usb_midi_tx_ready
 Indique si la couche MIDI USB est prête à l’envoi. Défini et mis à jour dans usb/usbcfg.c.
 

Description détaillée

Gestion du périphérique USB (démarrage, connexion, état).

Ce module gère l’initialisation complète du périphérique USB OTG FS :

  • Séquence de reconnexion logicielle pour forcer la ré-énumération par l’hôte.
  • Démarrage du driver USB ChibiOS avec la configuration usbcfg.
  • Désactivation de la détection VBUS (mode forcé “Device”) pour cartes Nucleo.
  • Suivi de l’état de disponibilité de la couche MIDI USB.

Documentation des fonctions

◆ usb_device_active()

bool usb_device_active ( void  )

Indique si le périphérique USB MIDI est actif et prêt à l’envoi.

Indique si le périphérique USB MIDI est actif et prêt à transmettre.

Renvoie
true si la couche USB MIDI est initialisée et disponible.

◆ usb_device_start()

void usb_device_start ( void  )

Démarre et initialise le périphérique USB (mode Device).

Démarre la pile USB Device et force la ré-énumération.

Effectue une séquence complète :

  1. Déconnexion logicielle du bus USB (simule un unplug).
  2. Délai de 1,5 s pour garantir la ré-énumération côté hôte.
  3. Démarrage du driver USBD1 avec la configuration usbcfg.
  4. Forçage du mode périphérique (désactivation de la détection VBUS).
  5. Connexion du bus (activation du pull-up DP).
Note
Cette procédure est nécessaire sur certaines cartes Nucleo où la broche VBUS (PA9) n’est pas connectée au contrôleur OTG FS.

Documentation des variables

◆ usb_midi_tx_ready

volatile bool usb_midi_tx_ready
extern

Indique si la couche MIDI USB est prête à l’envoi. Défini et mis à jour dans usb/usbcfg.c.

Indique si la couche MIDI USB est prête à l’envoi. Défini et mis à jour dans usb/usbcfg.c.