Interfejs USB-DCD w mikrokontrolerach Kinetis
4. Konfiguracja rejestru zegara.
USBDCD_CLOCK=(DCD_TIME_BASE<<2)|1;
5. W tym momencie aplikacja sprawdza stan linii PTB0, aby dokonać detekcji VBUS, ale przerwanie od portu może także zostać wykorzystane zamiast odpytywania.
// Waiting for VBUS
if(FLAG_CHK(0,GPIOB_PDIR) && !FLAG_CHK(VBUS_Flag,gu8InterruptFlags))
{
USBDCD_CONTROL=USBDCD_CONTROL_IE_MASK | USBDCD_CONTROL_IACK_MASK;
FLAG_SET(USBDCD_CONTROL_START_SHIFT,USBDCD_CONTROL);
FLAG_SET(VBUS_Flag,gu8InterruptFlags);
}
6. Gdy sekwencja detekcji jest ukończona, aplikacja musi odczytać rezultat z rejestrów DCD, a następnie wysłać je do terminala.
// Rezultaty DCD.
if(FLAG_CHK(DCD_Flag,gu8InterruptFlags))
{
u8Error=DCD_GetChargerType();
if((u8Error&0xF0))
printf("Oooooops DCD Error");
else
{
if((u8Error&0x0F)==STANDARD_HOST)
printf("Connected to a Standard Host");
if((u8Error&0x0F)==CHARGING_HOST)
printf("Connected to a Charging Host");
if((u8Error&0x0F)==DEDICATED_CHARGER)
printf("Connected to a Dedicated Charger");
}
Funkcja zwracająca rodzaj ładowarki:
UINT8 DCD_GetChargerType(void)
{
UINT8 u8ChargerType;
u8ChargerType = (UINT8)((USBDCD_STATUS & USBDCD_STATUS_SEQ_RES_MASK)>>16);
u8ChargerType|= (UINT8)((USBDCD_STATUS & USBDCD_STATUS_FLAGS_MASK)>>16);
return(u8ChargerType);
}
Program obsługi przerwania DCD:
void DCD_ISR(void)
{
USBDCD_CONTROL|= USBDCD_CONTROL_IACK_MASK; // Potwierdzenie.
if((USBDCD_STATUS&0x000C0000) == 0x00080000)
FLAG_SET(USBOTG_CONTROL_DPPULLUPNONOTG_SHIFT,USBOTG_CONTROL); // Uruchomienie pull-upu.
if((!(USBDCD_STATUS & 0x00400000)) || (USBDCD_STATUS & 0x00300000))
FLAG_SET(DCD_Flag,gu8InterruptFlags); // Detekcja ładowarki ukończona.

RS PRO: w odpowiedzi na realne potrzeby przemysłu
Platforma JetSys-2010 SFF do wysokowydajnych obliczeń AI-at-the-EDGE w aplikacjach high-end
Hahn EI30 ErP – transformatory sieciowe o niskich stratach mocy 


![https://www.youtube.com/watch?v=kmvM5hVSzCM Piata już edycja konferencji Hardware Design Masterclasses dla elektroników zaskoczyła frekwencją, tym bardziej, że spotkanie było dwudniowe. Film jest krótką relacją z wydarzenia, bazującą na wypowiedziach prelegentów. [materiał redakcyjny] Zapraszamy do obejrzenia!](https://mikrokontroler.pl/wp-content/uploads/2026/01/Rafal-tytulowe.png)

