BÀI 10: DMA VỚI STM32F103 - Chia Sẻ Các Vấn đề điện Tử
Có thể bạn quan tâm
BÀI 10: DMA VỚI STM32F103
DMA VỚI STM32F103 BÀI 10: DMA VỚI STM32F1.- Giới thiệu sơ lược về DMA.
- 7 channel của kênh DMA1 có thể được cấu hình riêng biệt.
- Mỗi channel được kết nối để dành riêng cho tín hiệu DMA từ các thiết bị ngoài hay tín hiệu nội bên trong MCU.
- Có 4 mức ưu tiên có thể lập trình cho mỗi channel.
- Kích thước data được sử dụng là 1 byte, 2 byte(half word) hoặc 4 byte(word).
- Hỗ trợ việc lặp lại liên tục data.
- Có 3 ngắt sự kiện(truyền xong DMA half word, word và truyền DMA bị lỗi).
- Có 2 loại truyền dữ liệu là ngoại vi với bộ nhớ và bộ nhớ với bộ nhớ.
- Quyền truy cập tới Flash, SRAM, APB1, APB2, APB.
- Số lượng data có thể lên đến 65535.
- Cấu hình sử dụng thư viện chuẩn ST.
- DMA1_channel1 : channel 1 tương ứng với DMA của bộ ADC.
- ADC1_DR_Address: địa chỉ của thanh ghi chứa Data trong bộ ADC.
- (uint32_t)&ADC_value : địa chỉ của biến chứa giá trị ADC đọc về.
- DMA_DIR_PeripheralSRC: chiều dữ liệu được truyền là từ ngoại vi.
- 1 : số lượng data truyền là 1.
- DMA_PeripheralInc_Disable : không cho phép tăng địa chỉ của ngoại vi vì data chỉ có 1.
- DMA_MemoryInc_Disable : không cho phép tăng địa chỉ của bộ nhớ vì data chỉ có 1.
- DMA_PeripheralDataSize_HalfWord: số bit của data ngoại vi là 16 bit.
- DMA_MemoryDataSize_HalfWord : số bit của data bộ nhớ là 16 bit.
- DMA_Mode_Circular: cho phép data liên tục chuyển đổi.
- DMA_Priority_High: mức độ ưu tiên của channel là mức cao.
- DMA_M2M_Disable: không cho phép sử dụng DMA giữa bộ nhớ và bộ nhớ.
- Một vài thanh ghi quan trọng.
- DMA_CCRx – DMA channel x configuration register.
- MEM2MEM: cho phép truyền DMA từ bộ nhớ đến bộ nhớ.
- PL[1:0] : mức ưu tiên của channel tương ứng 00: thấp nhất, 11 cao nhất.
- MSIZE[1:0] : kích thước của bộ nhớ 00,01,10 tương ứng 8 bit, 16 bit, 32 bit.
- PSIZE[1:0] : kích thước ngoại vi 00,01,10 tương ứng 8 bit, 16 bit, 32 bit.
- MINC: có cho phép mode tăng địa chỉ bộ nhớ hay không.
- PINC: có cho phép mode tăng địa chỉ ngoại vi hay không.
- CIRC: có cho phép việc chuyển đổi được diễn ra liên tục hay không.
- TEIE: cho phép ngắt khi có lỗi trong quá trình truyền hay không.
- HTIE: cho phép ngắt khi truyền xong data ở chế độ half word.
- TCIE: cho phép ngắt khi truyền xong data ở chế độ word.
- EN : cho phép bộ DMA hoạt động hay không.
- DMA_CNDTRx – DMA channel x number of data register.
- DMA_CPARx – DMA channel x pheripheral address register.
- DMA_CMARx – DMA channel x memory address register.
- Bài tập.
- Viết chương trình đọc giá trị ADC trên channel 0 ở kênh ADC1 sử dụng chế độ DMA. Debug chương trình để quan sát giá trị ADC đọc về.
- Viết chương trình đọc ADC trên channel 0 kênh ADC1 để thay đổi PWM của TIM1 channel1. TIM1 được cấu hình ở chế độ DMA.
DMA – Direct memory access(DMA) được sử dụng với mục đích truyền data với tốc độ cao từ thiết bị ngoại vi đến bộ nhớ cũng như từ bộ nhớ đến bộ nhớ. Data được truyền với tốc độ cao hơn khi sử dụng DMA do không cần nhiều lệnh xử lý từ CPU. Điều đó làm cho tài nguyên CPU được rảnh rỗi cho các hoạt động khác.
Ở STM32F103C8 chỉ có 1 bộ DMA với 7 kênh hỗ trợ cho các chức năng như: ADC1, SPI, USART, I2C, TIM1 -> TIM4.
Chức năng chính:
Vd: cấu hình bộ ADC sử dụng DMA.
Chương trình con cấu hình DMA cho bộ ADC1:
Channel của bộ DMA1 phụ thuộc vào chức năng được sử dụng và được tra trong bảng sau:
Thanh ghi này có giá trị là 16 bit tương ứng với 65535, chứa số lượng data truyền.
Thanh ghi này là thanh ghi 32 bit chứa địa chỉ của ngoại vi.
Thanh ghi này là thanh ghi 32 bit chứa địa chỉ của bộ nhớ.
Thanh ghi này có giá trị là 16 bit tương ứng với 65535, chứa số lượng data truyền.
Thanh ghi này là thanh ghi 32 bit chứa địa chỉ của ngoại vi.
Thanh ghi này là thanh ghi 32 bit chứa địa chỉ của bộ nhớ.
xuan minh
You may also like :
No comments:
Post a Comment
Newer Post Older Post Subscribe to: Post Comments (Atom)Bài đăng phổ biến
-
BÀI 08: UART TRONG STM32F103 BÀI 08: UART TRONG STM32F103. Sơ lược về lý thuyết. UART - Universal synchronous asynchronous receiver transmitter là một ngoại vi cơ... -
BÀI 00 : GIỚI THIỆU VỀ STM32F103C8T6 BÀI 00 : GIỚI THIỆU VỀ STM32F103C8T6. Giới thiệu sơ lược STM32 là một trong những dòng chip... -
BÀI 09: ADC TRONG STM32F103 BÀI 09: ADC TRONG STM32F103. Sơ lược về lý thuyết. ADC – Analog to digital Converter là bộ chuyển đổi tín hiệu tương tự sang tín hiệu... -
BÀI 07: PWM TRONG STM32F103 BÀI 07: PWM TRONG STM32F103. Sơ lược về lý thuyết. PWM(pulse- with modulation) hay còn gọi nôm na là “băm xung” hay “điều khiển độ r... -
BÀI 02 : GPIO VỚI STM32F1 BÀI 02 : GPIO VỚI STM32F1. Sơ lược về lý thuyết. GPIO là từ viết tắt của General purpose I/O po... -
BÀI 06 : TIMER BASE trong STM32F103 BÀI 06 : TIMER BASE trong STM32F103. Sơ lược về lý thuyết. STM32f103C8 có tất cả 7 timer nhưng trong đó đã bao gồm 1 systick timer, 2... -
NẠP CODE CHO STM32 BẰNG BOOT LOADER NẠP CODE VỚI BOOT LOADER STM32 Boot loader là gì -
BÀI 04 : SYSTEM TICK TIMER VỚI STM32F1 BÀI 04 : SYSTEM TICK TIMER VỚI STM32F1. Sơ lược về lý thuyết. System Tick Timer là bộ timer 24 bit độc lập nằm trong lõi cortex. Bộ t... -
BÀI 10: DMA VỚI STM32F103 BÀI 10: DMA VỚI STM32F1. Giới thiệu sơ lược về DMA. ... -
BÀI 01 : HƯỚNG DẪN TẠO PROJETC STM32 VỚI KEIL V5. BÀI 01 : HƯỚNG DẪN TẠO PROJETC STM32 VỚI KEIL V5. Những phần mềm cần thiết cần cài đặt: ...
About Me
xuan minh View my complete profilePopular
Labels
Archive
Hướng dẫn tạo project trong STM8S với STVD
-
BÀI 00 : GIỚI THIỆU VỀ STM32F103C8T6 BÀI 00 : GIỚI THIỆU VỀ STM32F103C8T6. Giới thiệu sơ lược STM32 là một trong những dòng chip... -
NẠP CODE CHO STM32 BẰNG BOOT LOADER NẠP CODE VỚI BOOT LOADER STM32 Boot loader là gì -
BÀI 09: ADC TRONG STM32F103 BÀI 09: ADC TRONG STM32F103. Sơ lược về lý thuyết. ADC – Analog to digital Converter là bộ chuyển đổi tín hiệu tương tự sang tín hiệu...
Labels
- 01. Giao tiếp với cảm biến ánh sáng BH1750.
- 10. MXCUBE HAL STM32F407 SIMULATE EEPROM.
- 13. FLASH và EEPROM TRONG STM8S.
- 14. OPTION BYTES TRONG STM8S
- ADC TRONG STM32F103
- ADC TRONG STM8S
- ADC với STM32F303CC.
- BÀI 00 : GIỚI THIỆU VỀ STM32F103C8T6
- BÀI 01 : HƯỚNG DẪN TẠO PROJETC STM32 VỚI KEIL V5.
- BÀI 02 : GPIO VỚI STM32F1
- BÀI 03 : CLOCK HỆ THỐNG VỚI STM32F1
- BÀI 04 : SYSTEM TICK TIMER VỚI STM32F1
- Bài 04. Giao tiếp với OLED 0.96 inch SSD1306.
- Bài 05: PWM với STM32F303CC trong MXCUBE
- BOARD STM32F103C8T6 - STLINK.
- BOARD STM8S003F3P6 - UART.
- BOOT LOADER VỚI STM32
- Bootloader STM8S trên IAR.
- CLOCK HỆ THỐNG TRONG STM8S
- DAC với STM32F303CC
- DMA VỚI STM32F103
- ENCODER TRONG STM8S
- ENCODER VỚI STM32F103
- Export library from existing project in altium
- EXTERNAL INTERRUPT với STM32F303CC
- GPIO trong STM8S với STVD
- GPIO với STM32CubeMX trong STM32F303
- Hướng dẫn tạo project với STM32CubeMX
- I2C VỚI IC DS1307
- I2C VỚI STM32F1
- NẠP CHƯƠNG TRÌNH VỚI CÁC CHÂN ALTERNATE FUNCTION(REMAP)TRONG STVP
- NGẮT NGOÀI TRONG STM8S
- Ngắt ngoài với STM32F1
- PWM TRONG STM32F103
- PWM trong STM8S
- RTC VỚI STM32F103
- RTC với STM32F303CC
- SPI VỚI STM32F1
- SRF05 VỚI STM8S
- Tạo project cho STM8S với IAR for STM8S
- Tạo project trong STM8S với STVD
- THIẾT KẾ LED VỚI 2 CHÂN PB4 VÀ PB5
- TIMER BASE trong STM32F103
- TIMER BASE và NGẮT TIMER
- TIMER BASE VỚI MXCUBE SỬ DỤNG STM32F303CC
- TỐI ƯU CODE TRONG STVD
- UART TRONG STM32F103
- UART TRONG STM8S
- UART với STM32F303CC trong MXCUBE
Blog Archive
- ► 2024 (1)
- ► August (1)
- ► 2022 (4)
- ► July (1)
- ► June (1)
- ► March (2)
- ► 2021 (2)
- ► November (2)
- ► 2019 (4)
- ► March (4)
- ► 2017 (2)
- ► December (2)
Blogger templates
Blogroll
About
Copyrights at chia sẻ các vấn đề điện tử © - Powered By Xuan MinhSEARCH ON chia sẻ các vấn đề điện tử
Từ khóa » Dma Trong Stm32 Là Gì
-
STM32F1: DMA Phần 1: ADC Với STM32 - DevIOT
-
Dma Là Gì - Hướng Dẫn Lập Trình Dma Với Stm32 - WEB GIẢI ĐÁP
-
Dma Là Gì - Hướng Dẫn Lập Trình Dma Với Stm32 - Thienmaonline
-
Dma Là Gì - Hướng Dẫn Lập Trình Dma Với Stm32
-
Cơ Chế Dma Là Gì ? Hướng Dẫn Lập Trình Dma Với Stm32
-
Hướng Dẫn Sử Dụng Chức Năng UART IDLE DMA - TAPIT
-
Đọc ADC Nhiều Kênh Trên SMT32 Sử Dụng DMA - TAPIT
-
Bài 9: Lập Trình STM32 ADC Nhiều Kênh Với DMA - Khuê Nguyễn
-
Thế Nào Là Dma Là Gì ? Trong Tin Học Dma Là Gì
-
Sự Khác Nhau Khi Sử Dụng Polling, Interrupt Và DMA Trong Giao Tiếp ...
-
Direct Memory Access ( Dma Là Gì ? Định Nghĩa Và Giải Thích Ý ...
-
Top 9 Dma Là Gì - Mobitool
-
Bài 9: Lập Trình STM32 ADC Nhiều Kênh Với DMA - Chickgolden
-
Direct Memory Access – Wikipedia Tiếng Việt