Penerima Pemancar Asinkron Universal MICROCHIP Core16550

Perkenalan
Core16550 adalah Penerima-Pemancar Asinkron Universal (UART) standar yang memastikan kompatibilitas perangkat lunak dengan perangkat 16550 yang banyak digunakan. CoreXNUMX menangani konversi data serial ke paralel untuk input dari modem atau perangkat serial lainnya dan melakukan konversi paralel ke serial untuk data yang dikirim dari CPU ke perangkat-perangkat tersebut.
Selama transmisi, data ditulis secara paralel ke buffer First-In, First-Out (FIFO) UART. Data tersebut kemudian diserialisasi untuk keluaran. Saat menerima, UART mengubah data serial yang masuk menjadi data paralel dan memungkinkan akses yang mudah bagi prosesor.
Aplikasi umum UART 16550 diilustrasikan dalam gambar berikut.
Gambar 1. Aplikasi 16550 Umum
Tabel 1. Ringkasan Core16550

Fitur Utama
Berikut ini adalah fitur utama Core16550:
- Pemancar dan penerima masing-masing diberi buffer dengan FIFO hingga 16-byte untuk mengurangi jumlah interupsi yang disajikan ke CPU.
- Menambahkan atau menghapus bit komunikasi asinkron standar (Mulai, Berhenti, dan Paritas).
- Interupsi transmisi, penerimaan, status jalur, dan set data yang dikontrol secara independen
- Generator baud yang dapat diprogram
- Fungsi kontrol modem (CTSn, RTSn, DSRn, DTRn, RIn dan DCDn).
- Antarmuka register Advanced Peripheral Bus (APB).
Fitur yang Dihentikan
Dukungan Bahasa Deskripsi Perangkat Keras Sirkuit Terpadu Kecepatan Sangat Tinggi (VHSIC) (VHDL) akan dihentikan dari versi ini.
Informasi Log Perubahan Core16550
Bagian ini memberikan penjelasan yang komprehensifview fitur-fitur baru yang disertakan, dimulai dengan rilis terbaru.
| Versi | Apa yang Baru |
| Core16550 v3.4 | Core16550 menggunakan kata kunci Verilog sistem "break" sebagai nama register yang menyebabkan masalah kesalahan sintaksis. Kata kunci tersebut diganti dengan nama lain untuk mengatasi masalah ini.
Menambahkan dukungan keluarga PolarFire® |
| Core16550 v3.3 | Menambahkan dukungan keluarga FPGA yang toleran terhadap radiasi (RTG4™) |
- Deskripsi Blok Fungsional (Ajukan Pertanyaan)
Bagian ini memberikan deskripsi singkat untuk setiap elemen diagram blok internal seperti yang ditampilkan pada gambar berikut.
Gambar 1-1. Diagram Blok Core16550

Elemen Diagram Blok Internal (Ajukan Pertanyaan)
Bagian berikut menyediakan informasi tentang elemen diagram blok internal.
- RWControl (Ajukan Pertanyaan)
Blok RWControl bertanggung jawab untuk menangani komunikasi dengan sisi prosesor (paralel) sistem. Semua penulisan dan pembacaan register internal dilakukan melalui blok ini. - UART_Reg (Ajukan Pertanyaan)
Blok UART_Reg menampung semua register internal perangkat. - RXBlock (Ajukan Pertanyaan)
Ini adalah blok penerima. RXBlock menerima kata serial yang masuk. Blok ini dapat diprogram untuk mengenali lebar data, seperti 5, 6, 7, atau 8 bit; berbagai pengaturan paritas, seperti genap, ganjil, atau tanpa paritas; dan berbagai bit henti, seperti 1, 1½, dan 2 bit. RXBlock memeriksa kesalahan dalam aliran data masukan, seperti kesalahan overrun, kesalahan frame, kesalahan paritas, dan kesalahan break. Jika kata yang masuk tidak bermasalah, kata tersebut akan ditempatkan di FIFO penerima. - Kontrol Interupsi (Ajukan Pertanyaan)
Blok Kontrol Interupsi mengirimkan sinyal interupsi kembali ke prosesor, bergantung pada status FIFO dan data yang diterima serta ditransmisikan. Register Identifikasi Interupsi menyediakan level interupsi. Interupsi dikirim untuk buffer transmisi/penerimaan (atau FIFO) yang kosong, kesalahan dalam menerima karakter, atau kondisi lain yang memerlukan perhatian prosesor. - Generator Laju Baud (Ajukan Pertanyaan)
Blok ini mengambil input PCLK dan membaginya dengan nilai terprogram (dari 1 hingga 216 – 1). Hasilnya dibagi 16 untuk menghasilkan clock transmisi (BAUDOUT). - TXBlock (Ajukan Pertanyaan)
Blok Transmit menangani transmisi data yang ditulis ke FIFO Transmit. Blok ini menambahkan bit Start, Parity, dan Stop yang diperlukan ke data yang sedang ditransmisikan agar perangkat penerima dapat melakukan penanganan kesalahan dan penerimaan dengan tepat.
Antarmuka Perangkat Lunak (Ajukan Pertanyaan)
Definisi dan pemetaan alamat register Core16550 dijelaskan di bagian ini. Tabel berikut menunjukkan ringkasan register Core16550.
| PADDR[4:0]
(Alamat) |
Bit Akses Kait Pembagi1
(DLAB) |
Nama | Simbol | Nilai Default (reset) | Jumlah Bit | Baca/Tulis |
| 00 | 0 | Register Penyangga Penerima | RBR | XX | 8 | R |
| 00 | 0 | Daftar Pemegang Pemancar | THR | XX | 8 | W |
| 00 | 1 | Kait Pembagi (LSB) | Bahasa Indonesia: DLR | tahun 01 | 8 | R/W |
| 04 | 1 | Kait Pembagi (MSB) | DMR | tahun 00 | 8 | R/W |
| 04 | 0 | Interupsi Aktifkan Daftar | Bahasa Indonesia | tahun 00 | 8 | R/W |
| 08 | X | Daftar Identifikasi Interupsi | IIR | C1 jam | 8 | R |
| 08 | X | Daftar Kontrol FIFO | FCR | tahun 01 | 8 | W |
| 0C | X | Daftar Kontrol Garis | LCR | tahun 00 | 8 | R/W |
| 10 | X | Daftar Kontrol Modem | MCR | tahun 00 | 8 | R/W |
| 14 | X | Daftar Status Baris | LSR | tahun 60 | 8 | R |
| 18 | X | Daftar Status Modem | MSR | tahun 00 | 8 | R |
| 1C | X | Daftar Gores | SR | tahun 00 | 8 | R/W |
Penting
DLAB adalah MSB dari Line Control Register (LCR bit 7).
Register Penyangga Penerima (Ajukan Pertanyaan)
Register Penyangga Penerima didefinisikan dalam tabel berikut.
Tabel 1-2. Register Penyangga Penerima (Hanya Baca)—Alamat 0 DLAB 0
| Sedikit | Nama | Keadaan Default | Negara yang Valid | Fungsi |
| 7..0 | RBR | XX | 0..FFh | Bit data yang diterima. Bit 0 adalah LSB, dan merupakan bit pertama yang diterima. |
Daftar Penahanan Pemancar (Ajukan Pertanyaan)
Register Penampung Pemancar didefinisikan dalam tabel berikut.
Tabel 1-3. Register Penahan Pemancar—Hanya Tulis
| Sedikit | Nama | Keadaan Default | Negara yang Valid | Fungsi |
| 7..0 | THR | XX | 0..FFh | Untuk mengirimkan bit data. Bit 0 adalah LSB, dan ditransmisikan terlebih dahulu. |
Register Kontrol FIFO (Ajukan Pertanyaan)
Register Kontrol FIFO didefinisikan dalam tabel berikut.
| Sedikit (7:0) | Keadaan Default | Negara yang Valid | Fungsi |
| 0 | 1 | 0, 1 | Mengaktifkan FIFO Transceiver (Tx) dan Receiver (Rx). Bit ini harus disetel ke 1 saat bit FCR lainnya ditulis, atau bit tersebut tidak akan diprogram.
0: Dinonaktifkan 1: Diaktifkan |
| 1 | 0 | 0, 1 | Menghapus semua byte di Rx FIFO dan mereset logika penghitungnya. Register geser tidak dihapus.
0: Dinonaktifkan 1: Diaktifkan |
| 2 | 0 | 0, 1 | Menghapus semua byte di Tx FIFO dan mereset logika penghitungnya. Register geser tidak dihapus.
0: Dinonaktifkan 1: Diaktifkan |
| 3 | 0 | 0, 1 | 0: DMA transfer tunggal: Transfer yang dilakukan antara siklus bus CPU
1: DMA multi-transfer: Transfer dilakukan hingga Rx FIFO kosong atau Transmission System Operator (TSO) Transmit (XMIT) FIFO terisi. FCR[0] harus diatur ke 1 untuk mengatur FCR[3] ke 1. |
| 4, 5 | 0 | 0, 1 | Disimpan untuk penggunaan di masa mendatang. |
| 6, 7 | 0 | 0, 1 | Bit ini digunakan untuk mengatur level pemicu untuk interupsi Rx FIFO. 7 6 Level Pemicu Rx FIFO (byte)
Telepon 0 0 01 Telepon 0 1 04 Telepon 1 0 08 Telepon 1 1 14 |
Register Kontrol Pembagi (Ajukan Pertanyaan)
Jam Baud Rate (BR) dihasilkan dengan membagi jam referensi masukan (PCLK) dengan 16 dan nilai pembagi.
Tabel berikut mencantumkan contohample nilai pembagi untuk BR yang diinginkan saat menggunakan jam referensi 18.432 MHz.
Tabel 1-5. Kait Pembagi (LS dan MS)
| Sedikit | Nama | Keadaan Default | Negara yang Valid | Fungsi |
| 7..0 | Bahasa Indonesia: DLR | tahun 01 | 01..FFh | LSB dari nilai pembagi |
| 7..0 | DMR | tahun 00 | 00..FFh | MSB dari nilai pembagi |
Tabel 1-6. Laju Baud dan Nilai Pembagi untuk Jam Referensi 18.432 MHz
| Kecepatan Baud | Pembagi Desimal (Nilai Pembagi) | Persentase Kesalahan |
| 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% |
| Kecepatan Baud | Pembagi Desimal (Nilai Pembagi) | Persentase Kesalahan |
| 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% |
Interupsi Aktifkan Daftar (Ajukan Pertanyaan)
Register Interrupt Enable didefinisikan dalam tabel berikut.
Tabel 1-7. Register Pengaktifan Interupsi
| Sedikit | Nama | Keadaan Default | Negara yang Valid | Fungsi |
| 0 | ERBFI | 0 | 0, 1 | Mengaktifkan “Data Diterima Tersedia Interupsi” 0: Dinonaktifkan
1: Diaktifkan |
| 1 | ETBEI | 0 | 0, 1 | Mengaktifkan “Transmitter Holding Register Empty Interrupt” 0: Dinonaktifkan
1: Diaktifkan |
| 2 | ELSI | 0 | 0, 1 | Mengaktifkan “Receiver Line Status Interrupt” 0: Dinonaktifkan
1: Diaktifkan |
| 3 | EDSSI | 0 | 0, 1 | Mengaktifkan “Modem Status Interrupt” 0: Dinonaktifkan
1: Diaktifkan |
| 7..4 | Disimpan | 0 | 0 | Selalu 0 |
Register Identifikasi Interupsi (Ajukan Pertanyaan)
Register Identifikasi Interupsi tercantum dalam tabel berikut. Tabel 1-8. Register Identifikasi Interupsi
| Sedikit | Nama | Keadaan Default | Negara yang Valid | Fungsi |
| 3..0 | IIR | 1h | 0..Ch | Bit identifikasi interupsi. |
| 5..4 | Disimpan | 00 | 00 | Selalu 00 |
| 7..6 | Mode | 11 | 11 | 11: modus FIFO |
Bidang register Identifikasi Interupsi didefinisikan dalam tabel berikut.
Tabel 1-9. Bidang Register Identifikasi Interupsi (IIR)
| Nilai IIR[3:0)] | Tingkat Prioritas | Tipe Interupsi | Sumber Interupsi | Kontrol Reset Interupsi |
| 0110 | Paling tinggi | Status jalur penerima | Kesalahan overrun, kesalahan paritas, kesalahan framing atau interupsi putus | Membaca register Status Garis |
| 0100 | Kedua | Data yang diterima tersedia | Data penerima tersedia | Membaca register Buffer Penerima atau FIFO turun di bawah level pemicu |
| Meja 1–9. Bidang Register Identifikasi Interupsi (IIR) (lanjutan) | ||||
| Nilai IIR[3:0)] | Tingkat Prioritas | Tipe Interupsi | Sumber Interupsi | Kontrol Reset Interupsi |
| 1100 | Kedua | Indikasi batas waktu karakter | Tidak ada karakter yang dibaca dari Rx FIFO selama empat waktu karakter terakhir dan setidaknya ada satu karakter di dalamnya selama waktu ini. | Membaca register Buffer Penerima |
| 0010 | Ketiga | Register Penahan Pemancar kosong | Register Penahan Pemancar kosong | Membaca IIR atau menulis ke register Penahan Pemancar |
| 0000 | Keempat | Status modem | Siap Dikirim, Set Data Siap, Indikator Dering atau Deteksi Pembawa Data | Membaca daftar Status Modern |
Daftar Kontrol Garis (Ajukan Pertanyaan)
Register Kontrol Jalur tercantum dalam tabel berikut. Tabel 1-10. Register Kontrol Jalur
| Sedikit | Nama | Keadaan Default | Negara yang Valid | Fungsi |
| 1..0 | WLS | 0 | 0..3 jam | Pilih Panjang Kata 00: 5 bit
01: 6 bit 10: 7 bit 11: 8 bit |
| 2 | STB | 0 | 0, 1 | Jumlah Bit Berhenti 0: 1 Bit Berhenti
1: 1½ Stop bit ketika WLS = 00 2: Stop bit dalam kasus lain |
| 3 | PENA | 0 | 0, 1 | Paritas Aktifkan 0: Dinonaktifkan
1: Diaktifkan. Paritas ditambahkan dalam transmisi dan diperiksa dalam penerimaan. |
| 4 | Bahasa Inggris: EPS (Eng. EPS) | 0 | 0, 1 | Paritas Genap Pilih 0: Paritas ganjil
1 : Paritas genap |
| 5 | SP | 0 | 0, 1 | Paritas Tongkat 0: Dinonaktifkan
1: Diaktifkan Berikut adalah rincian paritas, ketika paritas stick diaktifkan: Bit 4..3 11:0 akan dikirim sebagai bit Paritas, dan diperiksa saat menerima. 01:1 akan dikirim sebagai bit Paritas, dan diperiksa saat menerima. |
| 6 | SB | 0 | 0, 1 | Atur Istirahat 0: Dinonaktifkan
1: Atur break. SOUT dipaksa ke 0. Ini tidak berpengaruh pada logika pemancar. Break dinonaktifkan dengan mengatur bit ke 0. |
| 7 | DLAB | 0 | 0, 1 | Bit Akses Kait Pembagi
0: Dinonaktifkan. Mode Pengalamatan Normal sedang digunakan. 1: Diaktifkan. Mengaktifkan akses ke register Divisor Latch selama operasi baca atau tulis ke alamat 0 dan 1. |
Register Kontrol Modem (Ajukan Pertanyaan)
Register Kontrol Modem tercantum dalam tabel berikut.
| Sedikit | Nama | Keadaan Default | Negara yang Valid | Fungsi |
| 0 | DTR | 0 | 0, 1 | Mengontrol keluaran Data Terminal Ready (DTRn). 0: DTRn <= 1
1: DTRn <= 0 |
| 1 | Bahasa Inggris RTS | 0 | 0, 1 | Mengontrol keluaran Permintaan untuk Mengirim (RTSn). 0: RTSn <= 1
1: RTSn <= 0 |
| 2 | Out1 | 0 | 0, 1 | Mengontrol sinyal Output1 (OUT1n). 0: OUT1n <= 1
1: KELUAR1n <= 0 |
| 3 | Out2 | 0 | 0, 1 | Mengontrol sinyal Output2 (OUT2n). 0: OUT2n <= 1
1: KELUAR2n <= 0 |
| 4 | Lingkaran | 0 | 0, 1 | Loop enable bit 0: Dinonaktifkan
1: Diaktifkan. Berikut ini terjadi dalam mode Loop: SOUT diatur ke 1. Input SIN, DSRn, CTSn, RIn, dan DCDn terputus. Output dari register Transmitter Shift di-loop kembali ke register Receiver Shift. Output kontrol modem (DTRn, RTSn, OUT1n, dan OUT2n) terhubung secara internal ke input kontrol modem, dan pin output kontrol modem diatur ke 1. Dalam mode Loopback, data yang dikirim langsung diterima, memungkinkan CPU untuk memeriksa operasi UART. Interupsi beroperasi dalam mode Loop. |
| 7..4 | Disimpan | 0h | 0 | Disimpan |
Daftar Status Baris (Ajukan Pertanyaan)
Register Status Garis didefinisikan dalam tabel berikut.
Tabel 1-12. Register Status Baris—Hanya Baca
| Sedikit | Nama | Keadaan Default | Negara yang Valid | Fungsi |
| 0 | DR | 0 | 0, 1 | Indikator Data Siap
1 ketika satu byte data telah diterima dan disimpan dalam buffer penerima atau FIFO. DR dihapus ke 0 ketika CPU membaca data dari buffer penerima atau FIFO. |
| 1 | OE | 0 | 0, 1 | Indikator Kesalahan Overrun
Menunjukkan bahwa byte baru diterima sebelum CPU membaca byte tersebut dari buffer penerima, dan byte data sebelumnya dihancurkan. OE dihapus ketika CPU membaca register Status Baris. Jika data terus mengisi FIFO melebihi level pemicu, kesalahan overrun akan terjadi setelah FIFO penuh dan karakter berikutnya telah sepenuhnya dihapus. diterima di register geser. Karakter di register geser ditimpa, tetapi tidak ditransfer ke FIFO. |
| 2 | PE | 0 | 0, 1 | Indikator Kesalahan Paritas
Menunjukkan bahwa byte yang diterima memiliki kesalahan paritas. PE dihapus ketika CPU membaca register Status Baris. Kesalahan ini terungkap ke CPU ketika karakter terkait berada di bagian atas FIFO. |
| 3 | FE | 0 | 0, 1 | Indikator Kesalahan Pembingkaian
Menunjukkan bahwa byte yang diterima tidak memiliki bit Stop yang valid. FE dihapus ketika CPU membaca register Line Status. UART akan mencoba melakukan sinkronisasi ulang setelah terjadi kesalahan framing. Untuk melakukan ini, UART mengasumsikan bahwa kesalahan framing disebabkan oleh bit Start berikutnya, sehinggaampBit Start ini dijalankan dua kali, lalu mulai menerima data. Kesalahan ini akan terdeteksi oleh CPU ketika karakter terkait berada di bagian atas FIFO. |
| Tabel 1-12. Register Status Baris—Hanya Baca (lanjutan) | ||||
| Sedikit | Nama | Keadaan Default | Negara yang Valid | Fungsi |
| 4 | BI | 0 | 0, 1 | Indikator Interupsi Putus
Menunjukkan bahwa data yang diterima berada pada 0, lebih lama dari waktu transmisi kata penuh (Bit awal + Bit data + Paritas + Bit stop). BI dihapus ketika CPU membaca register Status Baris. Kesalahan ini terungkap ke CPU ketika karakter terkaitnya berada di bagian atas FIFO. Ketika terjadi pemutusan, hanya satu karakter nol yang dimuat ke dalam FIFO. |
| 5 | TIGA | 1 | 0, 1 | Indikator Transmitter Holding Register Empty (THRE)
Menunjukkan bahwa UART siap mengirimkan byte data baru. THRE menyebabkan interupsi ke CPU ketika bit 1 (ETBEI) dalam register Interrupt Enable bernilai 1. Bit ini diaktifkan ketika TX FIFO kosong. Bit ini dihapus ketika setidaknya satu byte ditulis ke TX FIFO. |
| 6 | TEMT | 1 | 0, 1 | Indikator Pemancar Kosong
Bit ini ditetapkan ke 1 ketika FIFO pemancar dan register Shift kosong. |
| 7 | lebih tajam | 0 | 1 | Bit ini diatur ketika terdapat setidaknya satu kesalahan paritas, kesalahan pembingkaian, atau indikasi putus pada FIFO. FIER dihapus ketika CPU membaca LSR jika tidak ada kesalahan berikutnya pada FIFO. |
Daftar Status Modem (Ajukan Pertanyaan)
Register Status Modem tercantum dalam tabel berikut.
Tabel 1-13. Register Status Modem—Hanya Baca
| Sedikit | Nama | Keadaan Default | Negara yang Valid | Fungsi |
| 0 | DCTS | 0 | 0, 1 | Indikator Delta Clear to Send.
Menunjukkan bahwa masukan CTSn telah berubah status sejak terakhir kali dibaca oleh CPU. |
| 1 | DDRR | 0 | 0, 1 | Indikator Kesiapan Set Data Delta
Menunjukkan bahwa masukan DSRn telah berubah status sejak terakhir kali dibaca oleh CPU. |
| 2 | TERI | 0 | 0, 1 | Detektor Indikator Tepi Belakang Cincin. Menunjukkan bahwa input RI telah berubah dari 0 menjadi 1. |
| 3 | DDCD | 0 | 0, 1 | Indikator Deteksi Pembawa Data Delta Menunjukkan bahwa masukan DCD telah berubah status.
Catatan: Setiap kali bit 0, 1, 2 atau 3 diatur ke 1, interupsi Status Modem dihasilkan. |
| 4 | Bahasa Inggris CTS | 0 | 0, 1 | Hapus untuk Mengirim
Komplemen masukan CTSn. Ketika bit 4 dari Modem Control Register (MCR) diatur ke 1 (loop), bit ini setara dengan DTR di MCR. |
| 5 | DSR | 0 | 0, 1 | Kumpulan Data Siap
Komplemen masukan DSR. Ketika bit 4 dari MCR diatur ke 1 (loop), bit ini setara dengan RTSn di MCR. |
| 6 | RI | 0 | 0, 1 | Indikator Cincin
Komplemen masukan RIn. Ketika bit 4 MCR diatur ke 1 (loop), bit ini setara dengan OUT1 di MCR. |
| 7 | DCD | 0 | 0, 1 | Deteksi Pembawa Data
Komplemen masukan DCDn. Ketika bit 4 dari MCR diatur ke 1 (loop), bit ini setara dengan OUT2 di MCR. |
Daftar Gores (Ajukan Pertanyaan)
Register Scratch didefinisikan dalam tabel berikut.
| Sedikit | Nama | Keadaan Default | Fungsi |
| 7..0 | SCR | tahun 00 | Register baca/tulis untuk CPU. Tidak berpengaruh pada operasi UART. |
Alur Alat (Ajukan Pertanyaan)
Bagian ini menyediakan rincian tentang alur alat.
SmartDesign (Ajukan Pertanyaan)
Core16550 tersedia untuk diunduh di lingkungan desain penerapan IP SmartDesign. Core dikonfigurasi menggunakan GUI konfigurasi dalam SmartDesign, lihat gambar berikut.
Untuk informasi tentang cara menggunakan SmartDesign untuk membuat instance, mengonfigurasi, menghubungkan, dan menghasilkan inti, lihat Panduan Pengguna SmartDesign.
Gambar 2-1. Konfigurasi Core16550

Alur Simulasi (Ajukan Pertanyaan)
Bangku uji pengguna untuk Core16550 disertakan dalam semua rilis.
Untuk menjalankan simulasi, pilih opsi Alur User Testbench di SmartDesign dan klik Hasilkan Desain di bawah menu SmartDesign. User testbench dipilih melalui GUI Konfigurasi Core Testbench.
Ketika SmartDesign menghasilkan proyek Libero SoC, ia menginstal testbench pengguna files.
Untuk menjalankan uji coba pengguna, atur root desain ke instansiasi Core16550 di panel Hirarki Desain SoC Libero dan klik ikon Simulasi di jendela Alur Desain SoC. Ini akan memanggil ModelSim® dan menjalankan simulasi secara otomatis.
Sintesis di Libero SoC (Ajukan Pertanyaan)
Klik ikon Sintesis di Libero SoC. Jendela Sintesis akan muncul. Proyek Synplify®. Atur Synplify untuk menggunakan standar Verilog 2001 jika Verilog sedang digunakan. Untuk menjalankan Sintesis, klik ikon Jalankan.
Place-and-Rute di Libero SoC (Ajukan Pertanyaan)
Untuk mengatur rute desain dengan tepat dan menjalankan Sintesis, klik ikon Tata Letak di Libero SoC dan panggil Designer. Core16550 tidak memerlukan pengaturan lokasi dan rute khusus.
Core16550 (Ajukan Pertanyaan)
Bagian ini menyediakan informasi tentang parameter yang digunakan dalam inti ini.
Parameter (Ajukan Pertanyaan)
Core16550 tidak mendukung parameter tingkat atas apa pun.
Antarmuka Inti (Ajukan Pertanyaan)
Bagian ini menyediakan ringkasan masukan dan keluaran.
Deskripsi Sinyal I/O (Ajukan Pertanyaan)
Berikut ini daftar definisi I/O Core16550.
| Nama | Jenis | Polaritas | Keterangan |
| PRESET | Masukan | Rendah | Atur ulang master |
| PCLK | Masukan | — | Jam induk
PCLK dibagi dengan nilai register Pembagi. Hasilnya kemudian dibagi 16 untuk menghasilkan laju baud. Sinyal yang dihasilkan adalah sinyal BAUDOUT. Tepi naik pin ini digunakan untuk memberi strobe pada semua sinyal input dan output. |
| TULIS | Masukan | Tinggi | APB mengaktifkan penulisan/pembacaan, aktif-tinggi.
Jika TINGGI, data ditulis ke lokasi alamat yang ditentukan. Jika RENDAH, data dibaca dari lokasi alamat yang ditentukan. |
| PADDR[4:0] | Masukan | — | Alamat APB
Bus ini menyediakan tautan bagi CPU ke alamat register Core16550 untuk dibaca atau ditulis. |
| PSEL | Masukan | Tinggi | APB pilih
Bila ini TINGGI bersama dengan PENABLE, pembacaan dan penulisan ke Core16550 diaktifkan. |
| PWDATA[7:0] | Masukan | — | Bus masukan data
Data pada bus ini akan ditulis ke register yang dituju selama siklus tulis. |
| PENABEL | Masukan | Tinggi | APB mengaktifkan
Bila ini TINGGI bersama dengan PSEL, pembacaan dan penulisan ke Core16550 diaktifkan. |
| PRDATA[7:0] | Keluaran | — | Bus keluaran data
Bus ini menyimpan nilai register yang dituju selama siklus baca. |
| CTSn | Masukan | Rendah | Hapus untuk Mengirim
Sinyal aktif-rendah ini merupakan input yang menunjukkan kapan perangkat yang terpasang (modem) siap menerima data. Core16550 meneruskan informasi ini ke CPU melalui register Status Modem. Register ini juga menunjukkan bahwa jika sinyal CTSn telah berubah sejak terakhir kali, register telah terbaca. |
| DSRn | Masukan | Rendah | Kumpulan Data Siap
Sinyal aktif-rendah ini merupakan input yang menunjukkan kapan perangkat yang terpasang (modem) siap untuk terhubung dengan Core16550. Core16550 meneruskan informasi ini ke CPU melalui register Status Modem. Register ini juga menunjukkan apakah sinyal DSRn telah berubah sejak terakhir kali register dibaca. |
| DCDn | Masukan | Rendah | Deteksi Pembawa Data
Sinyal aktif-rendah ini merupakan input yang menunjukkan kapan perangkat yang terhubung (modem) telah mendeteksi pembawa. Core16550 meneruskan informasi ini ke CPU melalui register Status Modem. Register ini juga menunjukkan apakah sinyal DCDn telah berubah sejak terakhir kali register dibaca. |
| DOSA | Masukan | — | Data Masukan Serial
Data ini ditransmisikan ke Core16550 dan disinkronkan dengan pin input PCLK. |
| RIn | Masukan | Rendah | Indikator Cincin
Sinyal aktif-rendah ini merupakan masukan yang menunjukkan kapan perangkat yang terpasang (modem) telah mendeteksi sinyal dering pada saluran telepon. Core16550 meneruskan informasi ini ke CPU melalui register Status Modem. Register ini juga menunjukkan kapan tepi belakang RIn terdeteksi. |
| SELATAN | Keluaran | — | Data keluaran serial
Data ini ditransmisikan dari Core16550 dan disinkronkan dengan pin keluaran BAUDOUT. |
| RTS | Keluaran | Rendah | Permintaan untuk Mengirim
Sinyal keluaran aktif-rendah ini digunakan untuk memberi tahu perangkat yang terpasang (modem) bahwa Core16550 siap mengirim data. Sinyal ini diprogram oleh CPU melalui register Kontrol Modem. |
| Tabel 4-1. Ringkasan Sinyal I/O (lanjutan) | |||
| Nama | Jenis | Polaritas | Keterangan |
| DTRn | Keluaran | Rendah | Terminal Data Siap
Sinyal keluaran aktif-rendah ini memberi tahu perangkat yang terhubung (modem) bahwa Core16550 siap untuk membangun tautan komunikasi. Sinyal ini diprogram oleh CPU melalui register Kontrol Modem. |
| KELUAR1n | Keluaran | Rendah | Keluaran 1
Output aktif-rendah ini merupakan sinyal yang ditentukan pengguna. CPU memprogram sinyal ini melalui register Kontrol Modem dan mengaturnya ke nilai yang berlawanan. |
| KELUAR2n | Keluaran | Rendah | Keluaran 2
Sinyal keluaran aktif-rendah ini merupakan sinyal yang ditentukan pengguna. Sinyal ini diprogram oleh CPU melalui register Kontrol Modem dan diatur ke nilai yang berlawanan. diprogram. |
| INFORMASI | Keluaran | Tinggi | Interupsi Tertunda
Sinyal keluaran aktif-tinggi ini adalah sinyal keluaran interupsi dari Core16550. Sinyal ini diprogram untuk aktif pada peristiwa tertentu, memberi tahu CPU bahwa peristiwa tersebut telah terjadi (untuk detail selengkapnya, lihat Register Identifikasi Interupsi). CPU kemudian mengambil tindakan yang sesuai. |
| BAUDOUTn | Keluaran | Rendah | Baud keluar
Ini adalah sinyal jam keluaran yang berasal dari jam masukan untuk menyinkronkan aliran data keluaran dari SOUT. |
| RXRDYN | Keluaran | Rendah | Penerima siap menerima transmisi.
CPU ditunjukkan oleh sinyal keluaran aktif-rendah ini bahwa bagian penerima Core16550 tersedia untuk membaca data. |
| TXRDYN | Keluaran | Rendah | Pemancar siap mengirimkan data.
Sinyal aktif-rendah ini menunjukkan kepada CPU bahwa bagian pemancar Core16550 memiliki ruang untuk menulis data untuk transmisi. |
| rxfifo_kosong | Keluaran | Tinggi | Terima FIFO kosong.
Sinyal ini menjadi TINGGI ketika FIFO penerima kosong. |
| rxfifo_penuh | Keluaran | Tinggi | Terima FIFO penuh.
Sinyal ini menjadi Tinggi ketika FIFO penerima penuh. |
Diagram Pengaturan Waktu (Ajukan Pertanyaan)
Bagian ini menyediakan diagram waktu inti ini.
Siklus Penulisan Data dan Siklus Pembacaan Data (Ajukan Pertanyaan)
Gambar 5-1 dan Gambar 5-2 menggambarkan hubungan waktu siklus tulis dan siklus baca relatif terhadap jam sistem APB, PCLK.
Daftar Tulis (Ajukan Pertanyaan)
Gambar berikut menunjukkan sinyal Address, Select, dan Enable terkunci dan harus valid sebelum mencapai tepi naik PCLK. Penulisan terjadi di tepi naik sinyal PCLK.
Daftar Baca (Ajukan Pertanyaan)
Gambar berikut menunjukkan sinyal Address, Select, dan Enable terkunci dan harus valid sebelum tepi naik PCLK. Pembacaan terjadi pada tepi naik sinyal PCLK.
Untuk detail lebih lanjut tentang deskripsi dan bentuk gelombang waktu, lihat spesifikasi AMBA.
Sinkronisasi Penerima (Ajukan Pertanyaan)
Ketika penerima mendeteksi status Rendah dalam aliran data masuk, penerima akan melakukan sinkronisasi. Setelah tepi awal, UART menunggu 1.5 × (panjang bit normal). Hal ini menyebabkan setiap bit berikutnya dibaca di tengah lebarnya. Gambar berikut menggambarkan proses sinkronisasi ini.
Gambar 5-3. Sinkronisasi Penerima
Operasi Testbench (Ajukan Pertanyaan)
Core16550 hanya dilengkapi satu testbench: Verilog User Testbench. Testbench ini mudah digunakan dan ditulis dalam bahasa Verilog. Testbench ini ditujukan untuk modifikasi oleh pengguna.
Uji Coba Pengguna (Ajukan Pertanyaan)
Gambar berikut menunjukkan diagram blok dari example desain pengguna dan bangku uji.
Gambar 6-1. Uji Coba Pengguna Core16550
Bangku uji pengguna mencakup contoh sederhanaampdesain yang berfungsi sebagai referensi bagi pengguna yang ingin menerapkan desain mereka sendiri.
Bangku uji untuk mantanampDesain pengguna mengimplementasikan sebagian dari fungsionalitas yang diuji dalam uji verifikasi, untuk detail lebih lanjut, lihat Uji Pengguna. Secara konseptual, seperti yang ditunjukkan pada Gambar 6-1, instansiasi Core16550 disimulasikan menggunakan mikrokontroler perilaku dan koneksi loopback yang disimulasikan. Misalnya,ample, user testbench mendemonstrasikan pengiriman dan penerimaan oleh unit Core16550 yang sama, sehingga Anda dapat memperoleh pemahaman dasar tentang cara menggunakan inti ini.
Uji coba pengguna mendemonstrasikan pengaturan dasar, operasi transmisi, dan penerimaan Core16550. Uji coba pengguna melakukan langkah-langkah berikut:
- Menulis ke register kontrol.
- Periksa data yang diterima.
- Nyalakan transmisi dan terima.
- Membaca register kontrol.
- Mengirim dan menerima satu byte.
Pemanfaatan dan Performa Perangkat (Ajukan Pertanyaan)
Tabel berikut mencantumkan data pemanfaatan dan performa Core16550. Tabel 7-1. Pemanfaatan dan Performa Core16550 PolarFire dan PolarFire SoC
| Detail Perangkat | Sumber daya | RAM | |||
| Keluarga | Perangkat | 4LUT | DFF | Elemen Logika | μ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- Standar | 1163 | 243 | 1406 | 2 |
| IGLOO®/IGLOOE | AGL600- STD/AGLE600 V2 | 1010 | 237 | 1247 | 2 |
| Fusi | 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 |
Masalah yang Terselesaikan (Ajukan Pertanyaan)
Tabel berikut mencantumkan semua masalah yang teratasi untuk berbagai rilis Core16550.
Tabel 8-1. Masalah yang Terselesaikan
| Versi | Perubahan |
| Bahasa Inggris v3.4 | Core16550 menggunakan Kata Kunci Verilog Sistem "break" sebagai nama register yang menyebabkan masalah kesalahan sintaksis. Masalah ini telah diperbaiki dengan mengganti kata kunci tersebut dengan nama lain. Menambahkan dukungan keluarga PolarFire® |
Riwayat Revisi (Ajukan Pertanyaan)
Riwayat revisi menjelaskan perubahan yang diterapkan dalam dokumen. Perubahan dicantumkan berdasarkan revisi, dimulai dari publikasi terkini.

Dukungan FPGA Microchip
Grup produk Microchip FPGA mendukung produknya dengan berbagai layanan dukungan, termasuk Layanan Pelanggan, Pusat Dukungan Teknis Pelanggan, dan websitus, dan kantor penjualan di seluruh dunia. Pelanggan disarankan untuk mengunjungi sumber daya daring Microchip sebelum menghubungi dukungan karena kemungkinan besar pertanyaan mereka sudah terjawab.
Hubungi Pusat Dukungan Teknis melalui websitus di www.microchip.com/dukungan Sebutkan nomor Bagian Perangkat FPGA, pilih kategori kasus yang sesuai, dan unggah desain files sambil membuat kasus dukungan teknis.
Hubungi Layanan Pelanggan untuk dukungan produk non-teknis, seperti harga produk, peningkatan produk, informasi pembaruan, status pesanan, dan otorisasi.
- Dari Amerika Utara, hubungi 800.262.1060
- Dari seluruh dunia, hubungi 650.318.4460
- Faks, dari mana saja di dunia, 650.318.8044
Informasi Mikrochip
Merek Dagang
Nama dan logo “Microchip”, logo “M”, dan nama, logo, serta merek lain adalah merek dagang terdaftar dan tidak terdaftar milik Microchip Technology Incorporated atau afiliasi dan/atau anak perusahaannya di Amerika Serikat dan/atau negara lain (“Merek Dagang Microchip”). Informasi mengenai Merek Dagang Microchip dapat ditemukan di https://www.microchip.com/en-us/about/legal-information/microchip-trademarks
Bahasa Indonesia:
Pemberitahuan Hukum
- Publikasi ini dan informasi di dalamnya hanya dapat digunakan dengan produk Microchip, termasuk untuk merancang, menguji, dan mengintegrasikan produk Microchip dengan aplikasi Anda. Penggunaan informasi ini
dengan cara lain apa pun melanggar ketentuan ini. Informasi mengenai aplikasi perangkat disediakan hanya untuk kenyamanan Anda dan dapat digantikan oleh pembaruan. Anda bertanggung jawab untuk memastikan bahwa aplikasi Anda memenuhi spesifikasi Anda. Hubungi kantor penjualan Microchip setempat Anda untuk mendapatkan dukungan tambahan atau, dapatkan dukungan tambahan di www.microchip.com/en-us/support/design-help/client-support-services - INFORMASI INI DISEDIAKAN OLEH MICROCHIP “SEBAGAIMANA ADANYA”. MICROCHIP TIDAK MEMBERIKAN PERNYATAAN ATAU JAMINAN APAPUN BAIK SECARA TERSURAT MAUPUN TERSIRAT, TERTULIS MAUPUN LISAN, BERDASARKAN HUKUM ATAU LAINNYA, YANG TERKAIT DENGAN INFORMASI TERMASUK NAMUN TIDAK TERBATAS PADA JAMINAN TERSIRAT TENTANG KETIDAKPELANGGARAN, KEMAMPUAN UNTUK DIPERDAGANGKAN, DAN KESESUAIAN UNTUK TUJUAN TERTENTU, ATAU JAMINAN YANG TERKAIT DENGAN KONDISI, KUALITAS, ATAU KINERJANYA.
- DALAM KEADAAN APA PUN, MICROCHIP TIDAK AKAN BERTANGGUNG JAWAB ATAS KERUGIAN, KERUSAKAN, BIAYA, ATAU PENGELUARAN TIDAK LANGSUNG, KHUSUS, HUKUMAN, INSIDENTAL, ATAU KONSEKUENSIAL DALAM BENTUK APA PUN YANG TERKAIT DENGAN INFORMASI ATAU PENGGUNAANNYA, APA PUN PENYEBABNYA, BAHKAN JIKA MICROCHIP TELAH DIBERITAHUKAN TENTANG KEMUNGKINAN TERSEBUT ATAU KERUSAKAN TERSEBUT DAPAT DIPERKIRAKAN. SEJAUH YANG DIIZINKAN OLEH HUKUM, TOTAL TANGGUNG JAWAB MICROCHIP ATAS SEMUA KLAIM DALAM BENTUK APA PUN YANG TERKAIT DENGAN INFORMASI ATAU PENGGUNAANNYA TIDAK AKAN MELEBIHI JUMLAH BIAYA, JIKA ADA, YANG TELAH ANDA BAYARKAN SECARA LANGSUNG KEPADA MICROCHIP UNTUK INFORMASI TERSEBUT.
- Penggunaan perangkat Microchip dalam aplikasi pendukung kehidupan dan/atau keselamatan sepenuhnya menjadi risiko pembeli, dan pembeli setuju untuk membela, mengganti rugi, dan membebaskan Microchip dari segala kerusakan, klaim, tuntutan, atau biaya yang timbul akibat penggunaan tersebut. Tidak ada lisensi yang diberikan, secara tersirat atau sebaliknya, berdasarkan hak kekayaan intelektual Microchip kecuali dinyatakan sebaliknya.
Fitur Perlindungan Kode Perangkat Microchip
Perhatikan rincian berikut mengenai fitur perlindungan kode pada produk Microchip:
- Produk mikrochip memenuhi spesifikasi yang tercantum dalam Lembar Data Mikrochip masing-masing.
- Microchip yakin bahwa rangkaian produknya aman jika digunakan sesuai tujuan, sesuai spesifikasi pengoperasian, dan dalam kondisi normal.
- Microchip menghargai dan secara agresif melindungi hak kekayaan intelektualnya. Upaya untuk melanggar fitur perlindungan kode produk Microchip sangat dilarang dan dapat melanggar Digital Millennium Copyright Act.
- Baik Microchip maupun produsen semikonduktor lainnya tidak dapat menjamin keamanan kodenya. Perlindungan kode tidak berarti bahwa kami menjamin produk tersebut "tidak dapat dipecahkan". Perlindungan kode terus berkembang. Microchip berkomitmen untuk terus meningkatkan fitur perlindungan kode pada produk kami.
Panduan Pengguna
© 2025 Microchip Technology Inc. dan anak perusahaannya
Dokumen / Sumber Daya
![]() |
Penerima Pemancar Asinkron Universal MICROCHIP Core16550 [Bahasa Indonesia:] Panduan Pengguna v3.4, v3.3, Pemancar Penerima Asinkron Universal Core16550, Core16550, Pemancar Penerima Asinkron Universal, Pemancar Penerima Asinkron, Pemancar Penerima, Pemancar |
