Các thanh ghi của DMA

Một phần của tài liệu Bài tập thực hành vi điều khiển H8SX1582 (Trang 87 - 96)

11.3.1 Thanh ghi địa ch ngun DMAC (DSAR_0)

Thanh ghi DSAR là một thanh ghi 32 bit có thểđọc/ghi nó chỉ ra địa chỉ nguồn dữ liệu cần truyền. Thanh ghi DSAR cập nhật giá trị địa chỉ nguồn sau mỗi lần truyền dữ liệu. Trong chếđộ địa chỉ đơn nếu thanh ghi DDAR được chỉ định là một địa chỉ đích (bit DIRS trong thanh ghi DACR là 1), thì thanh ghi DSAR sẽ bị bỏ qua (do khi đó địa chỉ nguồn đã được chỉđịnh bởi tín hiệu DACK).

Mặc dù thanh ghi DSAR luôn luôn có thể được đọc bởi CPU, nhưng mà nó phải được đọc theo đơn vị longword và không được ghi trong khi dữ liệu của kênh đang truyền.

11.3.2 Thanh ghi địa ch đích ca DMAC (DDAR_0)

Thanh ghi DDAR là một thanh ghi 32-bit có thểđọc/ghi nó chỉ ra địa chỉ đích của việc truyền dữ liệu. Thanh ghi DDAR cập nhật địa chỉđích sau mỗi lần truyền dữ liệu. Khi mà thanh ghi DSAR được chỉ định là thanh ghi địa chỉ nguồn (bit DIRS trong thanh ghi DASR có giá trị là 0) trong chếđộđịa chỉ đơn, thì thanh ghi DDAR sẽ bị bỏ qua.

Mặc dù thanh ghi DDAR luôn luôn có thểđược đọc bởi CPU, nhưng nó phải luôn được đọc với đơn vị là longword và không được ghi vào thanh ghi này trong khi dữ liệu đang truyền.

Thanh ghi DOFR là một thanh ghi 32-bit có thểđọc/ghi nó xác định địa chỉ để cập nhật lại địa chỉ đích và địa chỉ nguồn. Mặc dù các giá trị khác nhau được chỉ định cho từng kênh, những giá trị cập nhật cho địa chỉ đích và địa chỉ nguồn là như nhau đối với từng kênh riêng rẽ.

11.3.4 Thanh ghi biến đếm ca DMAC (DTCR_0)

Thanh ghi DTCR là một thanh ghi 32-bit có thểđọc/ghi nó xác định kích thước dữ liệu sẽđược truyền (tổng kích thước dữ liệu truyền).

Để truyền 1-byte dữ liệu, thiết lập giá trị H’0000 0001 trong thanh ghi DTCR. Khi giá trị được thiết lập cho thanh ghi này là H’0000 0000, thì điều này có nghĩa là tổng kích thước của dữ liệu truyền không được thiết lập và bộ truyền dữ liệu sẽ dừng lại (không hoạt động) (chếđộ chạy tự do – free running mode). Khi giá trị được thiết lập cho thanh ghi này là H’FFFF FFFF thì tổng kích thước được truyền là 4Gbyte (4,294,967,295), đây là kích thước lớn nhất. Trong khi dữ liệu đang được truyền thì thanh ghi này chỉ ra kích thước còn lại của khối dữ liệu cần truyền. Giá trị của nó sẽ được trừđi sau mỗi lần truyền dữ liệu tương ứng với dữ liệu truy xuất (-1 nếu đơn vị chuyển là byte, -2 nếu là word, và -4 nếu là longword).

Mặc dù thanh ghi DTCR luôn luôn có thể được đọc bởi CPU, nhưng nó phải luôn được đọc theo đơn vị longword và không được ghi vào thanh ghi này trong khi các kênh đang truyền dữ liệu.

11.3.5 Thanh ghi kích thước khi d liu ca DMA (DBSR_0)

Thanh ghi DBSR chỉ định kích thước lặp hay kích thước của khối. Thanh ghi này được cho phép trong chếđộ truyền lặp và khối và nó bị cấm trong chếđộ bình thường.

Bit Tên bit Giá trị khởi

động R/W Đặc tả

31 đến

16 BKSZH31 đến BKSZH16

Không xác

định R/W Xác thước khđịnh kích thối. ước lặp hay kích Khi giá trịđược thiết lập vào các bit này là H’0001, thì kích thước lặp hay khối là một byte, word hay

longword. Khi giá trịđược thiết lập là H’0000 thì có nghĩa là giá trị lớn

nhất (tham khảo bảng 9.1). Khi mà DMA đang hoạt động, thì việc thiết lập này sẽ bị cốđịnh (không thể thay đổi trong khi đang hoạt động)

15 đến 0 BKSZ15 đến BKSZ0 Không xác định

R/W Cho biết kích thước lặp hay khối còn lại trong khi bộ DMA đang hoạt động. Giá trị này sẽ giảm 1 sau mỗi lần truyền. Khi mà kích thước còn lại là 0, thì giá trị của bit các BKSZH sẽ được chuyển vào các bit BKSZ. Thiết lập giá trị giống với giá trị trong các bit BKSZH.

11.3.6 Thanh ghi điu khin chế độ ca DMA (DMDR_0)

Thanh ghi DMDR điều khiển chếđộ hoạt động của bộđiều khiển DMAC. • DMDR_0

Chú ý : * Chỉ ghi giá trị 0 vào những bit này sau khi đã đọc là 1, để xóa cờ. • DMDR_1 to DMDR_3

Bit Tên bit Giá trị khởi đầu

R/W Đặc tả

31 DTE 0 R/W Bit cho phép truyền dữ liệu. 0: Không truyền dữ liệu

1: Cho phép truyền dữ liệu (DMA đang hoạt động)

30 DACKE 0 R/W Bit cho phép tín hiệu xuất DACK 0: Cho phép tín hiệu xuất DACK 1: Cấm tín hiệu xuất DACK 29 TENDE 0 R/W Bit cho phép tín hiệu xuất TEND

0: Cho phép tín hiệu xuất TEND 1: Cấm tín hiệu xuất TEND

28 --- 0 R/W Không dùng

27 DREQS 0 R/W Bit lựa chọn DREQ 0: Chọn mức thấp 1: Chọn cạnh xuống 26 NRD 0 R/W Bit trì hoãn yêu cầu kế tiếp

0: Bắt đầu cho phép yêu cầu truyền kế tiếp sau khi hoàn tất lần truyền hiện tại

1: Bắt đầu cho phép yêu cầu truyền kế tiếp sau khi lần truyền hiện tại một chu kỳ (nghĩa là yêu cầu truyền kế tiếp sẽ bị trì hoãn một chu kỳ).

25,

24 --- 0 R Không dùng

23 ACT 0 R Trạng thái kích hoạt

0: Đang chờ yêu cầu truyền hay ở trong trạng thái cấm do việc xóa bit DTE 1: Trạng thái kích hoạt

22 đến 20

--- 0 R Không dùng

19 ERRF 0 R/(W)

* Bit c0: Ngờắ lt quãng lỗi hệ thốỗng i địa chỉ hay NMI chưa được phát sinh

1: Một ngắt quãng lỗi địa chỉ hay NMI đã được phát sinh

18 --- 0 R Không dùng

17 ESIF 0 R/(W)

* Bit c0: Không có ngờ ngắt quãng thoát truyắt quãng thoát truyền ền

1: Một ngắt quãng thoát truyền đã được yêu cầu

16 DTIF 0 R/(W)

*

Bit cờ ngắt quãng truyền dữ liệu

0: Không có ngắt quãng kết thúc truyền do đếm truyền

1: Có ngắt quãng kết thúc truyền do đếm truyền

15 DTSZ1 0 R/W

14 DTSZ0 0 R/W

Các bit kích thước dữ liệu truy xuất 00: kích thước byte

01: kích thước word 10: kích thước long word 11: cấm thiết lập 13 MDS1 0 R/W 12 MDS0 0 R/W Bit lựa chọn chếđộ truyền 00: chếđộ truyền bình thường 01: chếđộ truyền khối 10: chếđộ truyền lặp 11: cấm thiết lập

11 TSEIE 0 R/W Bit cho phép ngắt quãng lỗi kích thước truyền

0: Cấm yêu cầu ngắt quãng sai kích thước truyền

1: Cho phép yêu cầu ngắt quãng sai kích thước truyền

10 --- 0 R Không dùng

9 ESIE 0 R/W Bit cho phép ngắt thoát truyền. 0: Cấm ngắt quãng thoát truyền 1: Cho phép ngắt quãng thoát truyền 8 DTIE 0 R/W Bit cho phép ngắt quãng kết thúc truyền dữ

liệu

0: Cấm ngắt quãng kết thúc truyền 1: Cho phép ngắt quãng kết thúc truyền 7

6 DTF1 DTF0 0 0 R/W R/W Bit nhân t00: tựđộng yêu cố truyền dầu (chu kữ liệu ỳ stealing) 01: tựđộng yêu cầu (chu kỳ burst)

10: module ngắt quãng trên chip 11: yêu cầu ngoại

5 DTA 0 R/W Bit xác nhận truyền dữ liệu

4, 3 --- 0 R Không dùng

2 DMAP2 0 R/W

1 DMAP1 0 R/W

0 DMAP0 0 R/W

Các bit chỉđộưu tiên DMA 000: Mức 0 001: Mức 1 010: Mức 2 011: Mức 3 100: Mức 4 101: Mức 5 110: Mức 6 111: Mức 7 (cao)

11.3.7 Thanh ghi điu khin địa ch ca DMA (DACR_0)

Thanh ghi DACR xác định chếđộ hoạt động và phương thức truyền dữ liệu

Bit Tên bit Giá trị

khởi đầu R/W Đặc tả

31 AMS 0 R/W Bit lựa chọn chếđộđịa chỉ 0: chếđộđịa chỉđôi 1: chếđộđịa chỉđơn

30 DIRS 0 R/W Bit lựa chọn địa chỉ đơn trực tiếp

0: Chỉđịnh thanh ghi DSAR là địa chỉ nguồn 1: Chỉđịnh thanh ghi DDAR là địa chỉđích 29

đến 27

---- 0 R Không dùng

Các bit này chỉ là bit chỉ đọc và không thế hiệu chỉnh giá trị của nó.

0: Cấm ngắt quãng kết thúc kích thước lặp. 1: Cho phép ngắt quãng kết thúc kích thước lặp.

25 ARS1 0 R/W 24 ARS0 0 R/W Lựa chọn khối 00: Vùng dữ liệu khối hay vùng lặp được xác định bởi địa chỉ nguồn 01: Vùng dữ liệu khối hay vùng lặp được xác định bởi địa chỉđích 10: Không xác định vùng dữ liệu khối hay lặp 11: Cấm thiết lập 23, 22 --- 0 R Không dùng

Các bit này là những bit chỉđọc và không thể hiệu chỉnh giá trị của nó.

21 SAT1 0 R/W

20 SAT0 0 R/W

Các bit chếđộ cập nhật địa chỉ nguồn 00: Địa chỉ nguồn không thay đổi

01: Địa chỉ nguồn được cập nhật bằng việc cộng thêm offset

10: Địa chỉ nguồn được cập nhật bởi cộng thêm 1, 2, hay 4 tùy vào kích thước dữ liệu truy xuất. 11: Địa chỉ nguồn được cập nhật bởi việc trừ 1, 2, hay 4 tùy thuộc vào kích thước dữ liệu truy xuất.

19,

18 --- 0 R Không Các bit này là các bit chdùng ỉ đọc và không thể thay đổi giá trị 17 DAT1 0 R/W 16 DAT0 0 R/W Các bit chếđộ cập nhật địa chỉđích 00: Địa chỉ đích không thay đổi 01: Địa chỉ đích được cập nhật bằng việc cộng thêm offset 10: Địa chỉ đích được cập nhật bởi cộng thêm 1, 2, hay 4 tùy vào kích thước dữ liệu truy xuất. 11: Địa chỉ đích được cập nhật bởi việc trừ 1, 2, hay 4 tùy thuộc vào kích thước dữ liệu truy xuất. 15 SARIE 0 R/W Bit cho phép ngắt, ngắt quãng tạo ra bởi việc

tràn vùng địa chỉ nguồn mở rộng

0: Cấm ngắt quãng tạo ra cho việc tràn vùng nhớ mở rộng trên địa chỉ nguồn.

1: Cho phép ngắt quãng tạo ra khi có hoạt động tràn bộ nhớ mở rộng trên địa chỉ nguồn.

14, 13

--- 0 R Không dùng

Các bit này là những bit chỉđọc và không thể thay đổi giá trị 12 SARA4 0 R/W 11 SARA3 0 R/W 10 SARA2 0 R/W 9 SARA1 0 R/W Các bit chỉ vùng lặp mở rộng địa chỉ nguồn

8 SARA0 0 R/W

7 DARIE 0 R/W Bit cho phép ngắt quãng tràn vùng lặp mở rộng của địa chỉđích.

0: Cấm yêu cầu ngắt quãng của hoạt động tràn vùng lặp mở rộng trên địa chỉđích

1: Cho phép yêu cầu ngắt quãng của hoạt động tràn vùng lặp mở rộng trên địa chỉđích

6, 5 --- 0 R/W Không dùng

Các bit này là những bit chỉđọc và không thể thay đổi giá trị 4 DARA4 0 R/W 3 DARA3 0 R/W 2 DARA2 0 R/W 1 DARA1 0 R/W 0 DARA0 0 R/W Các bit Vùng lặp Mở rộng trên vùng địa chỉđích

11.3.8 Thanh ghi la chn yêu cu ngt quãng ca DMA (DMRSR_0)

Thanh ghi DMRSR là một thanh ghi 8-bit có thể đọc/ghi nó xác định các nguồn ngắt của các module trên chip. Chỉ số vector của nguồn ngắt được chỉ định bởi 8 bit. Tuy nhiên, giá trị 0 được hiểu như là không có nguồn ngắt quãng.

Một phần của tài liệu Bài tập thực hành vi điều khiển H8SX1582 (Trang 87 - 96)

Tải bản đầy đủ (PDF)

(105 trang)