MICROCHIP - logo

Receptor-emițător asincron universal MICROCHIP Core16550

MICROCHIP -Core16550 -Receptor-transmițător-asincron-universal

Introducere

Core16550 este un transmițător-receptor asincron universal (UART) standard care asigură compatibilitatea software cu dispozitivul 16550, utilizat pe scară largă. Acesta gestionează conversia datelor serial-paralel pentru intrările de la modemuri sau alte dispozitive seriale și efectuează conversia paralel-serială pentru datele trimise de la CPU la aceste dispozitive.
În timpul transmisiei, datele sunt scrise în paralel în bufferul FIFO (First-In, First-Out) al UART-ului. Datele sunt apoi serializate pentru ieșire. La recepție, UART-ul convertește datele seriale primite în date paralele și permite acces facil pentru procesor.
O aplicație tipică a UART-ului 16550 este ilustrată în figura următoare.

Figura 1. Aplicație tipică 16550

MICROCHIP -Core16550 -Receptor-Emițător-Asincron-Universal (2)Tabelul 1. Rezumatul Core16550

MICROCHIP -Core16550 -Receptor-Emițător-Asincron-Universal (3)

Caracteristici cheie
Următoarele sunt caracteristicile cheie ale Core16550:

  • Emițătorul și receptorul sunt fiecare bufferizate cu FIFO-uri de până la 16 octeți pentru a reduce numărul de întreruperi prezentate procesorului.
  • Adaugă sau elimină biții standard de comunicare asincronă (Start, Stop și Parity).
  • Întreruperi controlate independent pentru transmisie, recepție, stare linie și seturi de date
  • Generator de baud programabil
  • Funcții de control al modemului (CTSn, RTSn, DSRn, DTRn, RIn și DCDn).
  • Interfață de registru Advanced Peripheral Bus (APB).

Funcții scoase din producție
Suportul pentru limbajul de descriere hardware (VHDL) pentru circuite integrate de mare viteză (VHSIC) va fi întrerupt începând cu această versiune.
Informații despre jurnalul de modificări Core16550
Această secțiune oferă o prezentare cuprinzătoareview a funcțiilor nou încorporate, începând cu cea mai recentă versiune.

Versiune Ce este nou
Core16550 v3.4 Core16550 folosește cuvântul cheie „break” din sistemul Verilog ca nume de registru, ceea ce cauza erori de sintaxă. Cuvântul cheie este înlocuit cu un alt nume pentru a rezolva această problemă.

Adăugat suport pentru familia PolarFire®

Core16550 v3.3 Adăugat suport pentru familia de FPGA tolerante la radiații (RTG4™)
  1. Descrierea blocului funcțional (Pune o întrebare)
    Această secțiune oferă o scurtă descriere pentru fiecare element al diagramei bloc interne, așa cum se arată în figura următoare.
    Figura 1-1. Diagrama bloc Core16550
    MICROCHIP -Core16550 -Receptor-Emițător-Asincron-Universal (4)

Elemente ale diagramei bloc interne (Pune o întrebare)
Următoarea secțiune oferă informații despre elementele diagramei bloc interne.

  1. RWControl (Pune o întrebare)
    Blocul RWControl este responsabil pentru gestionarea comunicațiilor cu procesorul (partea paralelă) a sistemului. Toată scrierea și citirea registrelor interne se realizează prin intermediul acestui bloc.
  2. UART_Reg (Pune o întrebare)
    Blocul UART_Reg conține toate registrele interne ale dispozitivului.
  3. RXBlock (Pune o întrebare)
    Acesta este blocul receptorului. RXBlock primește cuvântul serial de intrare. Este programabil să recunoască lățimi de date, cum ar fi 5, 6, 7 sau 8 biți; diverse setări de paritate, cum ar fi par, impar sau fără paritate; și diferiți biți de stop, cum ar fi 1, 1½ și 2 biți. RXBlock verifică erorile în fluxul de date de intrare, cum ar fi erori de depășire, erori de cadru, erori de paritate și erori de întrerupere. Dacă cuvântul de intrare nu are probleme, acesta este plasat în FIFO-ul receptorului.
  4. Controlul întreruperilor (Pune o întrebare)
    Blocul de control al întreruperilor trimite un semnal de întrerupere înapoi către procesor, în funcție de starea FIFO și de datele sale recepționate și transmise. Registrul de identificare a întreruperilor furnizează nivelul întreruperii. Întreruperile sunt trimise pentru buffere de transmisie/recepție (sau FIFO) goale, o eroare la primirea unui caracter sau alte condiții care necesită atenția procesorului.
  5. Generator de rată baud (Pune o întrebare)
    Acest bloc preia intrarea PCLK și o împarte la o valoare programată (de la 1 la 216 – 1). Rezultatul este împărțit la 16 pentru a crea ceasul de transmisie (BAUDOUT).
  6. TXBlock (Pune o întrebare)
    Blocul Transmit gestionează transmiterea datelor scrise în FIFO-ul Transmit. Acesta adaugă biții de Start, Parity și Stop necesari la datele transmise, astfel încât dispozitivul receptor să poată efectua gestionarea corectă a erorilor și recepționarea.

Interfață software (Pune o întrebare)
Definițiile și mapările adreselor registrelor Core16550 sunt descrise în această secțiune. Tabelul următor prezintă rezumatul registrului Core16550.

PADDR[4:0]

(Adresa)

Bit de acces la zăvorul divizorului1

(DLAB)

Nume Simbol Valoare implicită (resetare) Număr de biți Citiți/Scrieți
00 0 Registrul tampon al receptorului RBR XX 8 R
00 0 Registrul de menținere a transmițătorului THR XX 8 W
00 1 Blocaj divizor (LSB) DLR 01h 8 R/V
04 1 Blocaj divizor (MSB) DMR 00h 8 R/V
04 0 Întrerupe activare registru IER 00h 8 R/V
08 X Registrul de identificare a întreruperilor IIR C1h 8 R
08 X Registrul de control FIFO FCR 01h 8 W
0C X Registrul de control al liniei LCR 00h 8 R/V
10 X Registrul de control al modemului MCR 00h 8 R/V
14 X Registru de stare a liniei LSR 60h 8 R
18 X Registrul de stare al modemului MSR 00h 8 R
1C X Registru zero SR 00h 8 R/V

Important

DLAB este MSB-ul Registrului de Control al Liniei (bitul 7 al LCR).

Registrul tampon al receptorului (Pune o întrebare)
Registrul buffer al receptorului este definit în tabelul următor.
Tabelul 1-2. Registrul tampon al receptorului (doar citire) - Adresa 0 DLAB 0

Biți Nume Stare implicită Stări valide Funcţie
7..0 RBR XX 0..FFh Biți de date recepționați. Bitul 0 este LSB-ul și este primul bit recepționat.

Registrul de menținere al transmițătorului (Pune o întrebare)
Registrul de menținere a transmițătorului este definit în tabelul următor.
Tabelul 1-3. Registrul de menținere a transmițătorului - Numai scriere

Biți Nume Stare implicită Stări valide Funcţie
7..0 THR XX 0..FFh Pentru a transmite biți de date. Bitul 0 este LSB-ul și este transmis primul.

Registrul de control FIFO (Pune o întrebare)
Registrul de control FIFO este definit în tabelul următor.

Biți (7:0) Stare implicită Stări valide Funcţie
0 1 0, 1 Activează atât FIFO-urile transceiverului (Tx), cât și ale receptorului (Rx). Acest bit trebuie setat la 1 atunci când se scriu alți biți FCR, altfel nu vor fi programați.

0: Dezactivat

1: Activat

1 0 0, 1 Șterge toți octeții din FIFO-ul Rx și resetează logica contorului. Registrul de deplasare nu este șters.

0: Dezactivat

1: Activat

2 0 0, 1 Șterge toți octeții din Tx FIFO și resetează logica contorului. Registrul de deplasare nu este șters.

0: Dezactivat

1: Activat

3 0 0, 1 0: Transfer unic DMA: Transfer efectuat între ciclurile magistralei CPU

1: DMA cu transfer multiplu: Transferuri efectuate până când FIFO-ul Rx este gol sau FIFO-ul de transmisie (XMIT) al Operatorului de Sistem de Transport (TSO). FCR[0] trebuie setat la 1 pentru a seta FCR[3] la 1.

4, 5 0 0, 1 Rezervat pentru utilizare ulterioară.
6, 7 0 0, 1 Acești biți sunt utilizați pentru a seta nivelul de declanșare pentru întreruperea Rx FIFO. 7 6 Nivel de declanșare Rx FIFO (octeți)

0 0 01

0 1 04

1 0 08

1 1 14

Registrele de control ale divizorului (Pune o întrebare)
Rata de transmisie (BR) este generată prin împărțirea ratei de intrare (PCLK) la 16 și valoarea divizorului.

Următorul tabel prezintă un exempluample de valori ale divizorului pentru BR dorit atunci când se utilizează un ceas de referință de 18.432 MHz.
Tabelul 1-5. Blocare divizor (LS și MS)

Biți Nume Stare implicită Stări valide Funcţie
7..0 DLR 01h 01..FFh LSB-ul valorii divizorului
7..0 DMR 00h 00..FFh MSB-ul valorii divizorului

Tabelul 1-6. Rate baud și valori ale divizorului pentru ceasul de referință de 18.432 MHz

Baud Rate Împărțitor zecimal (Valoarea împărțitorului) Eroare procentuală
50 23040 0.0000%
75 15360 0.0000%
110 10473 –0.2865%
134.5 8565 0.0876%
150 7680 0.0000%
300 3840 0.0000%
600 1920 0.0000%
1,200 920 4.3478%
1,800 640 0.0000%
Baud Rate Împărțitor zecimal (Valoarea împărțitorului) Eroare procentuală
2,000 576 0.0000%
2,400 480 0.0000%
3,600 320 0.0000%
4,800 240 0.0000%
7,200 160 0.0000%
9,600 120 0.0000%
19,200 60 0.0000%
38,400 30 0.0000%
56,000 21 –2.0408%

Registrul de activare a întreruperii (Pune o întrebare)
Registrul de activare a întreruperii este definit în tabelul următor.
Tabelul 1-7. Registrul de activare a întreruperii

Biți Nume Stare implicită Stare validă Funcţie
0 ERBFI 0 0, 1 Activează „Întreruperea datelor recepționate disponibile” 0: Dezactivat

1: Activat

1 ETBEI 0 0, 1 Activează „Întreruperea registrului de stocare a transmițătorului gol” 0: Dezactivat

1: Activat

2 ELSI 0 0, 1 Activează „Întreruperea stării liniei receptorului” 0: Dezactivat

1: Activat

3 EDSSI 0 0, 1 Activează „Întreruperea stării modemului” 0: Dezactivat

1: Activat

7..4 Rezervat 0 0 Întotdeauna 0

Registru de identificare a întreruperilor (Pune o întrebare)
Registrul de identificare a întreruperilor este listat în tabelul următor. Tabelul 1-8. Registrul de identificare a întreruperilor

Biți Nume Stare implicită Stări valide Funcţie
3..0 IIR 1h 0..Ch Biți de identificare a întreruperii.
5..4 Rezervat 00 00 Întotdeauna 00
7..6 Modul 11 11 11: Mod FIFO

Câmpul registrului de identificare a întreruperii este definit în tabelul următor.

Tabelul 1-9. Câmpul registrului de identificare a întreruperilor (IIR)

Valoare IIR [3:0)] Nivel de prioritate Tip de întrerupere Sursă de întrerupere Controlul resetării prin întrerupere
0110 Cel mai înalt Starea liniei receptorului Eroare de depășire, eroare de paritate, eroare de încadrare sau întrerupere Citirea registrului de stare a liniei
0100 Doilea Datele primite sunt disponibile Datele receptorului sunt disponibile Citirea registrului tampon al receptorului sau a FIFO scade sub nivelul de declanșare
Masă 1-9. Câmpul Registrului de Identificare a Întreruperilor (IIR) (continuare)
Valoare IIR [3:0)] Nivel de prioritate Tip de întrerupere Sursă de întrerupere Controlul resetării prin întrerupere
1100 Doilea Indicație de expirare a caracterelor Niciun caracter nu a fost citit din Rx FIFO în ultimele patru perioade de timp și a existat cel puțin un caracter în acesta în acest timp. Citirea registrului tampon al receptorului
0010 Treilea Registrul de menținere al transmițătorului este gol Registrul de menținere al transmițătorului este gol Citirea IIR sau scrierea în registrul de menținere a transmițătorului
0000 Patrulea Stare modem Trimitere gata, Set de date pregătit, Indicator sonerie sau Detectare purtător de date Citirea registrului de stare modernă

 Registrul de control al liniei (Pune o întrebare)
Registrul de control al liniei este listat în tabelul următor. Tabelul 1-10. Registrul de control al liniei

Biți Nume Stare implicită Stări valide Funcţie
1..0 WLS 0 0..3h Selectare lungime cuvânt 00: 5 biți

01: 6 biți

10: 7 biți

11: 8 biți

2 STB 0 0, 1 Număr de biți de stop 0: 1 Bit de stop

1: 1½ biți de stop când WLS = 00 2: Biți de stop în alte cazuri

3 STILOU 0 0, 1 Activare paritate 0: Dezactivat

1: Activat. Paritatea este adăugată în transmisie și verificată în recepție.

4 EPS 0 0, 1 Paritate pară Selectați 0: Paritate impară

1: Paritate uniformă

5 SP 0 0, 1 Paritate stick 0: Dezactivat

1: Activat

Următoarele sunt detaliile parității, când paritatea stick-ului este activată: Biții 4..3

11: 0 va fi trimis ca bit de paritate și verificat la recepție.

01: 1 va fi trimis ca bit de paritate și verificat la recepție.

6 SB 0 0, 1 Setați Pauza 0: Dezactivat

1: Setează pauza. SOUT este forțat la 0. Acest lucru nu are niciun efect asupra logicii transmițătorului. Pauza este dezactivată prin setarea bitului la 0.

7 DLAB 0 0, 1 Bit de acces la zăvorul divizorului

0: Dezactivat. Modul de adresare normală este în uz.

1: Activat. Permite accesul la registrele Divisor Latch în timpul operațiunii de citire sau scriere la adresele 0 și 1.

Registrul de control al modemului (Pune o întrebare)
Registrul de control al modemului este listat în tabelul următor.

Biți Nume Stare implicită Stări valide Funcţie
0 DTR 0 0, 1 Controlează ieșirea Terminal de date pregătit (DTRn). 0: DTRn <= 1

1: DTRn <= 0

1 RTS 0 0, 1 Controlează ieșirea Cererii de trimitere (RTSn). 0: RTSn <= 1

1: RTSn <= 0

2 Out1 0 0, 1 Controlează semnalul Output1 (OUT1n). 0: OUT1n <= 1

1: OUT1n <= 0

3 Out2 0 0, 1 Controlează semnalul Output2 (OUT2n). 0: OUT2n <= 1

1: OUT2n <= 0

4 Buclă 0 0, 1 Bitul 0 de activare a buclei: Dezactivat

1: Activat. În modul Buclă se întâmplă următoarele:

SOUT este setat la 1. Intrările SIN, DSRn, CTSn, RIn și DCDn sunt deconectate. Ieșirea registrului de deplasare al transmițătorului este reintrodusă în registrul de deplasare al receptorului. Ieșirile de control al modemului (DTRn, RTSn, OUT1n și OUT2n) sunt

conectat intern la intrările de control al modemului, iar pinii de ieșire ai controlului modemului sunt setați la 1. În modul Loopback, datele transmise sunt recepționate imediat, permițând procesorului să verifice funcționarea UART-ului. Întreruperile funcționează în modul Loop.

7..4 Rezervat 0h 0 Rezervat

Registru de stare a liniei (Pune o întrebare)
Registrul de stare a liniei este definit în tabelul următor.
Tabelul 1-12. Registru de stare a liniei - Doar citire

Biți Nume Stare implicită Stări valide Funcţie
0 DR 0 0, 1 Indicator Date pregătite

1 când un octet de date a fost recepționat și stocat în bufferul de recepție sau în FIFO. DR este resetat la 0 când CPU citește datele din bufferul de recepție sau din FIFO.

1 OE 0 0, 1 Indicator de eroare de depășire

Indică faptul că noul octet a fost primit înainte ca procesorul să citească octetul din bufferul de recepție și că octetul de date anterior este distrus. OE este șters atunci când procesorul citește registrul de stare a liniei. Dacă datele continuă să umple FIFO dincolo de nivelul de declanșare, apare o eroare de depășire odată ce FIFO este plin și următorul caracter a fost complet completat.

recepționat în registrul de deplasare. Caracterul din registrul de deplasare este suprascris, dar nu este transferat în FIFO.

2 PE 0 0, 1 Indicator de eroare de paritate

Indică faptul că octetul recepționat a avut o eroare de paritate. PE este șters atunci când procesorul citește registrul de stare a liniei. Această eroare este dezvăluită procesorului atunci când caracterul asociat se află în partea de sus a FIFO-ului.

3 FE 0 0, 1 Indicator de eroare de încadrare

Indică faptul că octetul primit nu avea un bit de stop valid. FE este șters când CPU citește registrul Line Status. UART-ul va încerca să se resincronizeze după o eroare de încadrare. Pentru a face acest lucru, presupune că eroarea de încadrare a fost cauzată de următorul bit de start, deci...ampscrie acest bit de Start de două ori, apoi începe să primească datele. Această eroare este dezvăluită procesorului atunci când caracterul asociat se află în partea de sus a FIFO-ului.

Tabelul 1-12. Registru de stare a liniei - Doar citire (continuare)
Biți Nume Stare implicită Stări valide Funcţie
4 BI 0 0, 1 Indicator de întrerupere a pauzei

Indică faptul că datele recepționate sunt la 0, mai lungi decât timpul de transmisie a unui cuvânt întreg (bitul de început

+ Biți de date + Paritate + Biți de stop). BI este șters când CPU citește registrul de stare a liniei. Această eroare este dezvăluită CPU-ului atunci când caracterul asociat se află în partea de sus a FIFO. Când apare o întrerupere, în FIFO se încarcă doar un caracter zero.

5 TREI 1 0, 1 Indicator registru de menținere gol al transmițătorului (THRE)

Indică faptul că UART-ul este gata să transmită un nou octet de date. THRE provoacă o întrerupere către CPU atunci când bitul 1 (ETBEI) din registrul de activare a întreruperii este 1. Acest bit este setat când FIFO-ul TX este gol. Este șters când cel puțin un octet este scris în FIFO-ul TX.

6 TEMT 1 0, 1 Indicator de emițător gol

Acest bit este setat la 1 când atât registrele FIFO, cât și registrele de deplasare ale transmițătorului sunt goale.

7 FIER 0 1 Acest bit este setat atunci când există cel puțin o eroare de paritate, o eroare de încadrare sau o indicație de întrerupere în FIFO. FIER este șters când CPU citește LSR-ul dacă nu există erori ulterioare în FIFO.

Registru de stare a modemului (Pune o întrebare)
Registrul de stare a modemului este listat în tabelul următor.
Tabelul 1-13. Registru de stare a modemului - Doar citire

Biți Nume Stare implicită Stări valide Funcţie
0 DCTS 0 0, 1 Indicator Delta Clear to Send.

Indică faptul că intrarea CTSn și-a schimbat starea de la ultima citire de către CPU.

1 DDSR 0 0, 1 Indicator Set de date Delta pregătit

Indică faptul că intrarea DSRn și-a schimbat starea de la ultima citire de către CPU.

2 TERI 0 0, 1 Detector indicator de marginea inferioară a inelului. Indică faptul că intrarea RI s-a modificat de la 0 la 1.
3 DDCD 0 0, 1 Indicatorul de detectare a purtătorului de date Delta indică faptul că intrarea DCD și-a schimbat starea.

Notă: Ori de câte ori bitul 0, 1, 2 sau 3 este setat la 1, se generează o întrerupere de stare a modemului.

4 CTS 0 0, 1 Ștergeți pentru a trimite

Complementul intrării CTSn. Când bitul 4 al Registrului de Control al Modemului (MCR) este setat la 1 (buclă), acest bit este echivalent cu DTR în MCR.

5 DSR 0 0, 1 Set de date gata

Complementul intrării DSR. Când bitul 4 al MCR este setat la 1 (buclă), acest bit este echivalent cu RTSn în MCR.

6 RI 0 0, 1 Indicator de apel

Complementul intrării RIn. Când bitul 4 al MCR este setat la 1 (buclă), acest bit este echivalent cu OUT1 în MCR.

7 DCD 0 0, 1 Detectare purtător de date

Complementul intrării DCDn. Când bitul 4 al MCR este setat la 1 (buclă), acest bit este echivalent cu OUT2 din MCR.

Registru automat (Pune o întrebare)
Registrul Scratch este definit în tabelul următor.

Biți Nume Stare implicită Funcţie
7..0 SCR 00h Registr de citire/scriere pentru CPU. Fără efecte asupra funcționării UART.

Fluxuri de instrumente (Pune o întrebare)
Această secțiune oferă detalii despre fluxurile de instrumente.

 SmartDesign (Pune o întrebare)
Core16550 este disponibil pentru descărcare în mediul de proiectare a implementării IP SmartDesign. Nucleul este configurat utilizând interfața grafică de configurare din SmartDesign, consultați figura următoare.
Pentru informații despre cum se utilizează SmartDesign pentru a instanția, configura, conecta și genera nuclee, consultați Ghidul utilizatorului SmartDesign.

Figura 2-1. Configurația Core16550 

MICROCHIP -Core16550 -Receptor-Emițător-Asincron-Universal (5)
Fluxuri de simulare (Pune o întrebare)
Bancul de testare pentru utilizatori pentru Core16550 este inclus în toate versiunile.
Pentru a rula simulări, selectați opțiunea Flux de testare utilizator din SmartDesign și faceți clic pe Generare proiectare din meniul SmartDesign. Testbench-ul utilizator este selectat prin intermediul interfeței grafice de configurare Core Testbench.
Când SmartDesign generează proiectul Libero SoC, instalează testbench-ul pentru utilizatori. files.
Pentru a rula testbench-ul utilizatorului, setați rădăcina de proiectare la instanțierea Core16550 în panoul Ierarhie de proiectare Libero SoC și faceți clic pe pictograma Simulare din fereastra Flux de proiectare SoC. Aceasta invocă ModelSim® și rulează automat simularea.

Sinteză în Libero SoC (Pune o întrebare)
Faceți clic pe pictograma Sinteză din Libero SoC. Apare fereastra Sinteză. Proiectul Synplify®. Setați Synplify să utilizeze standardul Verilog 2001 dacă se utilizează Verilog. Pentru a rula Sinteză, faceți clic pe pictograma Executare.

Plasare și rutare în Libero SoC (Pune o întrebare)
Pentru a seta ruta de proiectare în mod corespunzător și a rula Synthesis, faceți clic pe pictograma Layout din Libero SoC și apelați Designer. Core16550 nu necesită setări speciale de plasare și rută.

Core16550 (Pune o întrebare)

Această secțiune oferă informații despre parametrii utilizați în acest nucleu.

Parametri (Pune o întrebare)
Core16550 nu acceptă niciun parametru de nivel superior.

Interfețe principale (Pune o întrebare)

Această secțiune oferă un rezumat al intrărilor și ieșirilor.

Descrierea semnalului I/O (Pune o întrebare)
Următoarele sunt listate definițiile I/O pentru Core16550.

Nume Tip Polaritate Descriere
PRESETN Intrare Scăzut Resetare generală
PCLK Intrare Ceas maestru

PCLK este împărțit la valoarea registrelor divizor. Rezultatul este apoi împărțit la 16 pentru a produce rata baud. Semnalul rezultat este semnalul BAUDOUT. Frontul ascendent al acestui pin este utilizat pentru a afișa stroboscop toate semnalele de intrare și ieșire.

PWRITE Intrare Ridicat Activare scriere/citire APB, activ-înalt.

Când este HIGH (nivelul HIGH), datele sunt scrise la adresa specificată. Când este LOW (nivelul L), datele sunt citite de la adresa specificată.

PADDR[4:0] Intrare Adresă APB

Această magistrală oferă legătura dintre CPU și adresa registrului Core16550, din care se va citi sau scrie.

PSEL Intrare Ridicat Selectare APB

Când este HIGH împreună cu PENABLE, citirea și scrierea pe Core16550 sunt activate.

PWDATA[7:0] Intrare magistrală de intrare a datelor

Datele de pe această magistrală vor fi scrise în registrul adresat în timpul unui ciclu de scriere.

PENIBIL Intrare Ridicat Activare APB

Când acesta este HIGH împreună cu PSEL, citirea și scrierea pe Core16550 sunt activate.

PRDATA[7:0] Ieșire Magistrală de ieșire a datelor

Această magistrală reține valoarea registrului adresat în timpul unui ciclu de citire.

CTSn Intrare Scăzut Ștergeți pentru a trimite

Acest semnal activ-scăzut este o intrare care arată când dispozitivul (modemul) conectat este gata să accepte date. Core16550 transmite aceste informații către CPU prin registrul de stare a modemului. Acest registru indică, de asemenea, că, dacă semnalul CTSn s-a modificat de ultima dată, registrul a fost citit.

DSRn Intrare Scăzut Set de date gata

Acest semnal activ-scăzut este o intrare care indică momentul în care dispozitivul (modemul) conectat este gata să stabilească o legătură cu Core16550. Core16550 transmite aceste informații către CPU prin registrul de stare a modemului. Acest registru indică, de asemenea, dacă semnalul DSRn s-a modificat de la ultima citire a registrului.

DCDn Intrare Scăzut Detectare purtător de date

Acest semnal activ-scăzut este o intrare care indică momentul în care dispozitivul conectat (modem) a detectat o purtătoare. Core16550 transmite aceste informații către procesor prin registrul de stare a modemului. Acest registru indică, de asemenea, dacă semnalul DCDn s-a modificat de la ultima citire a registrului.

PĂCAT Intrare Date de intrare seriale

Aceste date sunt transmise către Core16550. Sunt sincronizate cu pinul de intrare PCLK.

RIn Intrare Scăzut Indicator de apel

Acest semnal activ-scăzut este o intrare care arată când dispozitivul conectat (modem) a detectat un semnal de apel pe linia telefonică. Core16550 transmite aceste informații către procesor prin registrul de stare a modemului. Acest registru indică, de asemenea, când a fost detectat frontul descendent RIn.

SUD Ieșire Date de ieșire serială

Aceste date sunt transmise de la Core16550. Sunt sincronizate cu pinul de ieșire BAUDOUT.

RTSn Ieșire Scăzut Solicitare de trimitere

Acest semnal de ieșire activ-scăzut este utilizat pentru a informa dispozitivul atașat (modem-ul) că Core16550 este gata să trimită date. Este programat de CPU prin intermediul registrului Modem Control.

Tabelul 4-1. Rezumatul semnalului I/O (continuare)
Nume Tip Polaritate Descriere
DTRn Ieșire Scăzut Terminal de date gata

Acest semnal de ieșire activ-scăzut informează dispozitivul atașat (modem-ul) că Core16550 este gata să stabilească o legătură de comunicații. Este programat de CPU prin intermediul registrului Modem Control.

OUT1n Ieșire Scăzut Rezultat 1

Această ieșire activ-scăzut este un semnal definit de utilizator. CPU-ul programează acest semnal prin registrul de control al modemului și este setat la valoarea opusă.

OUT2n Ieșire Scăzut Rezultat 2

Acest semnal de ieșire activ-scăzut este un semnal definit de utilizator. Este programat de CPU prin registrul de control al modemului și este setat la valoarea opusă. programat.

INTR Ieșire Ridicat Întrerupere în așteptare

Acest semnal de ieșire activ-înalt este semnalul de ieșire de întrerupere de la Core16550. Este programat să devină activ la anumite evenimente, informând procesorul că a avut loc un astfel de eveniment (pentru mai multe detalii, consultați Registrul de identificare a întreruperilor). Apoi, procesorul ia măsurile corespunzătoare.

BAUDOUTn Ieșire Scăzut Baud ieșire

Acesta este un semnal de ceas de ieșire derivat din ceasul de intrare pentru sincronizarea fluxului de date de ieșire de la SOUT.

RXRDYN Ieșire Scăzut Receptor gata să recepționeze transmisii.

CPU-ul este indicat prin acest semnal de ieșire activ-scăzut că secțiunea receptorului Core16550 este disponibilă pentru citirea datelor.

TXRDYN Ieșire Scăzut Transmițătorul este gata să transmită date.

Acest semnal activ-scăzut indică procesorului că secțiunea transmițătorului Core16550 are spațiu pentru a scrie date pentru transmisie.

rxfifo_empty Ieșire Ridicat Primește FIFO gol.

Acest semnal devine HIGH când FIFO-ul de recepție este gol.

rxfifo_full Ieșire Ridicat Primește FIFO plin.

Acest semnal devine High când FIFO-ul de recepție este plin.

Diagrame de sincronizare (Pune o întrebare)
Această secțiune prezintă diagrame de timp ale acestui nucleu.

 Ciclul de scriere a datelor și ciclul de citire a datelor (Pune o întrebare)
Figura 5-1 și Figura 5-2 prezintă relațiile de temporizare ale ciclului de scriere și ale ciclului de citire în raport cu ceasul sistemului APB, PCLK.

Înregistrare Scriere (Pune o întrebare)
Următoarea figură arată că semnalele Adresă, Selectare și Activare sunt memorate și trebuie să fie valide înainte de frontul ascendent al PCLK. Scrierea are loc la frontul ascendent al semnalului PCLK.

MICROCHIP -Core16550 -Receptor-Emițător-Asincron-Universal (6)Înregistrare Citire (Pune o întrebare)
Următoarea figură arată că semnalele Adresă, Selectare și Activare sunt memorate și trebuie să fie valide înainte de frontul ascendent al PCLK. Citirea are loc la frontul ascendent al semnalului PCLK. MICROCHIP -Core16550 -Receptor-Emițător-Asincron-Universal (7)Pentru mai multe detalii despre descrieri și formele de undă de temporizare, consultați specificația AMBA.

Sincronizarea receptorului (Pune o întrebare)
Când receptorul detectează o stare Low (Low) în fluxul de date primit, se sincronizează cu aceasta. După frontul de început, UART-ul așteaptă 1.5 × (lungimea normală a bitului). Acest lucru face ca fiecare bit ulterior să fie citit la mijlocul lățimii sale. Figura următoare ilustrează acest proces de sincronizare.

Figura 5-3. Sincronizarea receptorului

MICROCHIP -Core16550 -Receptor-Emițător-Asincron-Universal (8)Operațiunea pe bancul de testare (Pune o întrebare)
Doar un singur banc de testare este furnizat cu Core16550: bancul de testare pentru utilizatori Verilog. Acesta este un banc de testare ușor de utilizat, scris în Verilog. Acest banc de testare este destinat modificărilor de către client.

Bench de testare pentru utilizatori (Pune o întrebare)
Următoarea figură prezintă schema bloc a exampdesignul utilizatorului și bancul de testare.
Figura 6-1. Bancul de testare pentru utilizatori Core16550

MICROCHIP -Core16550 -Receptor-Emițător-Asincron-Universal (1)Bancul de testare pentru utilizatori include un exemplu simpluampun design care servește drept referință pentru utilizatorii care doresc să implementeze propriile designuri.
Bancul de testare, de exempluampAdică, designul utilizatorului implementează un subset al funcționalității testate în bancul de testare pentru verificare, pentru mai multe detalii, consultați Bancul de testare pentru utilizatori. Conceptual, așa cum se arată în Figura 6-1, instanțierea Core16550 este simulată folosind un microcontroler comportamental și o conexiune loopback simulată. De exempluampAdică, bancul de testare pentru utilizatori demonstrează transmisia și recepția de către aceeași unitate Core16550, astfel încât să puteți obține o înțelegere de bază a modului de utilizare a acestui nucleu.
Bancul de testare pentru utilizatori demonstrează configurarea de bază, operațiunile de transmisie și recepție ale Core16550. Bancul de testare pentru utilizatori efectuează următorii pași:

  1. Scrieți în registrele de control.
  2. Verificați datele primite.
  3. Activați transmisia și recepția.
  4. Citiți registrele de control.
  5. Transmite și primește un octet.

Utilizarea și performanța dispozitivului (Pune o întrebare)

Următorul tabel prezintă datele privind utilizarea și performanța Core16550. Tabelul 7-1. Utilizarea și performanța Core16550 PolarFire și PolarFire SoC

Detalii despre dispozitiv Resurse RAM
Familial Dispozitiv 4LUT DFF Elemente logice μSRAM
PolarFire® MPF100T- FCSG325I 752 284 753 2
PolarFire®SoC MPFS250TS-FCSG536I 716 284 720 2
RTG4™ RT4G150-1CG1657M 871 351 874 2
IGLOO® 2 M2GL050TFB GA896STD 754 271 1021 2
SmartFusion® 2 M2S050TFBG A896STD 754 271 1021 2
SmartFusion® A2F500M3G- STANDARD 1163 243 1406 2
IGLOO®/IGLOOE AGL600- STANDARD/AGLE600 V2 1010 237 1247 2
Fuziune AFS600-STD 1010 237 1247 2
ProASIC® 3/E A3P600-STD 1010 237 1247 2
ProASIC Plus® APA075-STD 1209 233 1442 2
RTAX-S RTAX250S- STD 608 229 837 2
Axcelerator® AX125-STD 608 229 837 2

Probleme rezolvate (Pune o întrebare)
Următorul tabel listează toate problemele rezolvate pentru diferitele versiuni Core16550.
Tabelul 8-1. Probleme rezolvate

Versiune Schimbări
v3.4 Core16550 folosește cuvântul cheie „break” din System Verilog ca nume de registru, ceea ce cauza erori de sintaxă. Această problemă a fost remediată prin înlocuirea cuvântului cheie cu un alt nume.
Adăugat suport pentru familia PolarFire®

Istoricul revizuirilor (Pune o întrebare)

Istoricul revizuirilor descrie modificările care au fost implementate în document. Modificările sunt listate după revizuire, începând cu cea mai recentă publicație.

MICROCHIP -Core16550 -Receptor-Emițător-Asincron-Universal (2)

Suport FPGA pentru microcip

Grupul de produse Microchip FPGA își susține produsele cu diverse servicii de asistență, inclusiv Serviciul Clienți, Centrul de asistență tehnică pentru clienți, un website-ul web și birourile de vânzări la nivel mondial. Clienților li se recomandă să viziteze resursele online ale Microchip înainte de a contacta serviciul de asistență, deoarece este foarte probabil ca întrebările lor să fi primit deja răspuns.
Contactați Centrul de asistență tehnică prin intermediul website la www.microchip.com/support Menționați numărul piesei dispozitivului FPGA, selectați categoria de carcasă adecvată și încărcați designul files în timp ce creați un caz de asistență tehnică.
Contactați Serviciul Clienți pentru asistență non-tehnică pentru produse, cum ar fi prețul produselor, upgrade-uri ale produsului, informații de actualizare, starea comenzii și autorizare.

  • Din America de Nord, sunați la 800.262.1060
  • Din restul lumii, sunați la 650.318.4460
  • Fax, de oriunde în lume, 650.318.8044

Informații despre microcip

Mărci comerciale
Numele și sigla „Microcip”, sigla „M” și alte nume, logo-uri și mărci sunt mărci comerciale înregistrate și neînregistrate ale Microchip Technology Incorporated sau ale afiliaților și/sau filialelor sale din Statele Unite și/sau alte țări („Microchip mărci comerciale”). Informații despre mărcile comerciale ale microcipului pot fi găsite la https://www.microchip.com/en-us/about/legal-information/microchip-trademarks
ISBN:

Aviz legal

  • Această publicație și informațiile de aici pot fi utilizate numai cu produsele Microchip, inclusiv pentru a proiecta, testa și integra produsele Microchip cu aplicația dumneavoastră. Utilizarea acestor informații
    în orice alt mod încalcă acești termeni. Informațiile referitoare la aplicațiile dispozitivului sunt furnizate numai pentru confortul dvs. și pot fi înlocuite de actualizări. Este responsabilitatea dumneavoastră să vă asigurați că aplicația dumneavoastră corespunde specificațiilor dumneavoastră. Contactați biroul local de vânzări Microchip pentru asistență suplimentară sau obțineți asistență suplimentară la www.microchip.com/en-us/support/design-help/client-support-services
  • ACESTE INFORMAȚII ESTE FURNIZATE DE MICROCHIP „CA AȘA ESTE”. MICROCHIP NU OFERĂ DECLARAȚII SAU GARANȚII DE NICIUN FEL, EXPRESE SAU IMPLICITE, SCRISE SAU ORALE, LEGALE SAU DE ALTE ALTE, LEGATE DE INFORMAȚII INCLUSIVĂ, DAR FĂRĂ A SE LIMITA LA NICIO GARANȚIE IMPLICITĂ DE NEÎNCĂLCARE, COMERCIALITATE ȘI PARTICIBILITATE, PENTRU O PUBLICABILITATE. GARANȚII LEGATE DE STARE, CALITATE SAU PERFORMANȚĂ.
  • ÎN NICIO SITUAȚIE, MICROCHIP NU VA FI RĂSPUNDĂTOR PENTRU NICIO PIERDERE, DAUNĂ, COST SAU CHELTUIALĂ INDIRECTĂ, SPECIALĂ, PUNITIVĂ, INCIDENTALĂ SAU CONSECUTIVĂ DE ORICE FEL, LEGATĂ DE INFORMAȚII SAU DE UTILIZAREA ACESTORA, INDIFERENT DE CAUZA AR FI PROVOCATĂ, CHIAR DACĂ MICROCHIP A FOST INFORMAT DESPRE POSIBILITATE SAU DAUNELE SUNT PREVIZIBILE. ÎN MĂSURA MAXIMĂ PERMISĂ DE LEGE, RĂSPUNDEREA TOTALĂ A MICROCHIP PENTRU TOATE RECLAMAȚIILE LEGATE ÎN ORICE FEL DE INFORMAȚII SAU DE UTILIZAREA ACESTOASTA NU VA DEPĂȘI SUMA TAXELOR, DACĂ EXISTĂ, PE CARE LE-AȚI PLĂTIT DIRECT CĂTRE MICROCHIP PENTRU INFORMAȚII.
  • Utilizarea dispozitivelor Microcip în aplicații de susținere a vieții și/sau de siguranță este în întregime pe riscul cumpărătorului, iar cumpărătorul este de acord să apere, să despăgubească și să țină inofensiv Microcipul de orice daune, pretenții, procese sau cheltuieli care rezultă dintr-o astfel de utilizare. Nicio licență nu este transmisă, implicit sau în alt mod, în baza niciunui drept de proprietate intelectuală Microchip, cu excepția cazului în care se specifică altfel.

Caracteristica de protecție a codului dispozitivelor cu microcip
Rețineți următoarele detalii despre caracteristica de protecție a codului de pe produsele Microcip:

  • Produsele cu microcip îndeplinesc specificațiile conținute în fișa lor specială pentru microcip.
  • Microchip consideră că familia sa de produse este sigură atunci când este utilizată în modul prevăzut, în cadrul specificațiilor de funcționare și în condiții normale.
  • Microcipul apreciază și își protejează în mod agresiv drepturile de proprietate intelectuală. Încercările de a încălca funcțiile de protecție prin cod ale produselor Microchip sunt strict interzise și pot încălca Digital Millennium Copyright Act.
  • Nici Microcip și nici alt producător de semiconductori nu poate garanta securitatea codului său. Protecția prin cod nu înseamnă că garantăm că produsul este „incasibil”. Protecția prin cod este în continuă evoluție. Microchip se angajează să îmbunătățească continuu caracteristicile de protecție prin cod ale produselor noastre.

Ghidul utilizatorului
© 2025 Microchip Technology Inc. și filialele sale

Documente/Resurse

Receptor-emițător asincron universal MICROCHIP Core16550 [pdfGhid de utilizare
v3.4, v3.3, Core16550 Transmițător Receptor Asincron Universal, Core16550, Transmițător Receptor Asincron Universal, Transmițător Receptor Asincron, Receptor Transmițător, Transmițător

Referințe

Lasă un comentariu

Adresa ta de e-mail nu va fi publicată. Câmpurile obligatorii sunt marcate *