Sto progettando un dispositivo attorno allo STM32L476. Il mio dispositivo è principalmente alimentato a batteria, ma ha una porta USB che, una volta collegato, voglio utilizzare come fonte di alimentazione alternativa (tramite un regolatore da 3,3 V) per limitare il consumo della batteria. È anche possibile che l'utente colleghi la porta USB mentre non ci sono batterie.
Voglio essere in grado di rilevare quando la porta USB è collegata, quindi sto usando PA9 come OTF_FS_VBUS.
La buona notizia : il foglio dati afferma che il pin PA9 è tollerante a 5V.
La cattiva notizia : i pin tolleranti a 5 V sembrano effettivamente tolleranti a 5 V solo quando viene applicata l'alimentazione. La scheda tecnica §6.2 della tabella 18 dice:
Tensione di ingresso massima sui pin FT_xxx: min (VDD, VDDA, VDDIO2, VDDUSB, VLCD) + 4.0 V
Nel mio caso, se non ci sono batterie e l'utente collega la porta USB, c'è un tempo, prima dell'avvio del regolatore, durante il quale la tensione su PA9 sarà di 5 V mentre non viene applicata alcuna alimentazione sui pin di alimentazione della CPU.
Le notizie ancora più cattive : l'iniezione attuale non è consentita: la scheda tecnica §6.2, tabella 19, dice:
Corrente iniettata su FT_xxx: -5 / + 0 (vedi nota 4)
Nota 4: Un'iniezione positiva è indotta da VIN> VDDIOx mentre un'iniezione negativa è indotta da VIN <VSS. IINJ (PIN) non deve mai essere superato.
Quindi sembra che non riesca a usare un semplice resistore per limitare la corrente in eccesso su PA9 durante l'avvio del regolatore. È apparentemente vietata qualsiasi quantità di corrente che fluisca da VBUS a PA9 prima che VDD aumenti.
Che cosa hanno fatto gli altri?
Ho dato un'occhiata a numerosi design attorno ai chip STM32, guardando le loro connessioni VBUS, e non sembrano interessarsene. Collegano VBUS direttamente a PA9, o eventualmente tramite un resistore, ma non ho mai visto nulla di più complicato. Ma per lo più sono schede di sviluppo, quindi immagino che la robustezza (è una parola?) Non sia molto importante. E di solito non sono alimentati attraverso la porta USB, e certamente suppongono che l'utente non si colleghi alla porta USB prima di alimentare la scheda.
Qual è il mio piano?
Mettendolo tra VBUS sulla porta USB e il pin PA9 dell'MCU:
Ho davvero cercato di renderlo semplice. Fondamentalmente, garantisce che VUSB_CPU (che è il pin PA9) non può mai essere al di sopra di VCPU + 4V (Vz + Vbe), senza consumare energia se è OK.
Le mie domande principali sono : ho ragione nella mia analisi? Questo circuito è una buona soluzione? Mi preoccupo di cose irrilevanti? Perché nessun altro sembra preoccuparsi di questo potenziale problema?
Domanda aggiuntiva : ho intenzione di utilizzare USB OTG. È un problema se esiste una resistenza da 4.7k tra il connettore e il pin PA9? Immagino che sarebbe se dovessi usare pulsazioni VBUS durante SRP, ma questo metodo è apparentemente deprecato. Quindi sto bene, qualunque sia il ruolo (dispositivo / host) del mio dispositivo?
Un'ultima : qual è la corrente massima assorbita dal pin di alimentazione VDDUSB? Il foglio dati specifica, per la periferica USB: 16,4µA / MHz per dominio di clock AHB + 23,2µA / MHz per dominio di clock indipendente, ma non sappiamo da dove viene estratto (VDD o VDDUSB).