Trong bài viết này, Điện Tử Tương Lai muốn giới thiệu về ATmega128. Đây là một AVR, vi điều khiển 8 bit công suất thấp đi kèm với giao diện 64 chân và dựa trên kiến trúc RISC. Với 133 lệnh và chu kỳ xung nhịp đơn và 32 x 8 thanh ghi làm việc cho mục đích chung khiến cho thiết bị này trở thành lựa chọn lý tưởng cho nhiều ứng dụng yêu cầu thực thi mã tốt. Không gian tích hợp trên module này nhiều hơn bộ điều khiển AVR bình thường bao gồm bộ nhớ chương trình khoảng 128K, đủ để lưu trữ số lượng lệnh trên một chip. Trong bài viết này, Điện Tử Tương Lai sẽ cố gắng đề cập đến từng thứ liên quan đến ATmega128 để bạn hiểu về nó rõ hơn trước khi lựa chọn cho project liên quan.
ATmega128 là gì
ATmega128 là vi điều khiển AVR, 8-bit công suất thấp có giao diện 64 chân và dựa trên kiến trúc RISC.
Nó chủ yếu được sử dụng trong hệ thống nhúng và tự động hóa công nghiệp.
Bộ điều khiển AVR này khác với bộ điều khiển PIC theo tập lệnh trong đó AVR yêu cầu một chu kỳ xung nhịp để thực hiện một số lệnh trong khi bộ điều khiển PIC cần một số chu kỳ xung nhịp để thực hiện một lệnh duy nhất.
ADC được bao gồm trong thiết bị là chọn lý tưởng cho giao tiếp cảm biến nhận tín hiệu analog và chuyển đổi thành tín hiệu kỹ thuật số. Có tổng cộng 8 kênh trên module ADC.
Ngoài các giao thức giao tiếp như SPI, I2C và USRAT, module này đi kèm với watchdog timer, ngắt bên ngoài, bộ hẹn giờ tăng nguồn, 6 chế độ ngủ và chân kích hoạt lập trình.
Bộ nhớ chương trình dựa trên Flash và đi kèm với không gian bộ nhớ khoảng 128K trong khi EEPROM và SRAM đều là 4K.
Bạn sẽ cần module này để phát triển các project điện tử cần tự động hóa. Với khả năng thực hiện một số chức năng mà không cần mua các thành phần bên ngoài làm cho thiết bị này có tính kinh tế cao và là lựa chọn tốt nhất cho những người đam mê công nghệ.
>>>Tham khảo các sản phẩm ATmega128 và đặt hàng tại Điện Tử Tương Lai
https://dientutuonglai.com/san-pham/?keyword=atmega128
Các tính năng của ATmega128
Bộ vi điều khiển AVR này đi kèm với các tính năng rất hữu ích. Không gian bộ nhớ lớn và nhiều chân cắm phù hợp cho các project tự động hóa. Dưới đây là các tính năng chính của ATmega128.
Số chân: 64
CPU: 8-bit AVR
Điện áp hoạt động: 4,5 đến 5,5 V
Bộ nhớ chương trình: 128K
Loại bộ nhớ chương trình: Flash
RAM: 4K
EEPROM: 4K
Số kênh ADC: 10-Bit8
Bộ so sánh analog: Có
Kênh PWM: 6
Bộ dao động: lên đến 16 MHz
Bộ định thời (4) Bộ định thời 16 bit (2) Bộ định thời 8 bit (2)
Gói (3) PDIPTQFPQFN
Hẹn giờ khởi động: Có
Các chân I / O: 53
Nhà sản xuất: Microchip
SPI: Có
I2C: Có
Bộ hẹn giờ watchdog: Có
Phát hiện suy giảm nguồn (BOD:) Có
USART: Có
Chế độ ngủ: 6
Nhiệt độ hoạt động tối thiểu: -40 độ C
Nhiệt độ hoạt động tối đa: 85 độ C
Sơ đồ chân và mô tả chân của ATmega128
Sơ đồ chân và mô tả chân sẽ giúp bạn hiểu các chức năng chính liên quan đến mỗi chân. Một số chân có thể thực hiện nhiều hơn một chức năng.
Sơ đồ chân
Hình dưới đây là sơ đồ chân của ATmega128.
AVCC là điện áp đặt vào module ADC và AREF là điện áp tham chiếu cấp cho bộ điều khiển. VCC và GND lần lượt là điện áp nguồn và chân nối đất.
Số chân |
Mô tả |
1 |
PEN - Bật lập trình |
2 - 9 |
PE0 - PE7 - Cổng E |
10 - 17 |
PB0 - PB7 - Cổng B |
18 |
TOSC2 / PG3 |
19 |
TOSC1 / PG4 |
20 |
RESET |
21 |
Vcc - Nguồn dương |
22 |
GND - Nối đất |
23 |
XTAL2 - dao động tinh thể |
24 |
XTAL1 - dao động tinh thể |
25 - 32 |
PD0 - PD7 - Cổng D |
33 |
PG0 (WR) |
34 |
PG1 (RD) |
35 - 42 |
PC0 - PC7 - Cổng C |
43 |
PG2 (ALE) |
44 - 51 |
PA7 - PA0 - Cổng A |
52 |
Vcc - Nguồn dương |
53 |
GND - Nối đất |
54 - 61 |
PF7 - PF0 - Cổng F |
62 |
AREF - Tham chiếu analog |
63 |
GND - Nối đất |
64 |
AVCC - Nguồn analog |
Các chức năng chính của ATmega128
ATmega128 có thể thực hiện một số chức năng trên một con chip. Không gian bộ nhớ lớn với nhiều giao diện chân cắm hơn đặt thiết bị này lên trước các bộ điều khiển khác trong họ AVR. Tiếp theo là các chức năng chính liên quan đến module này.
Bộ định thời
Atmega128 đi kèm với 4 bộ định thời là 2 bộ định thời 8 bit và 2 bộ định thời 16 bit. Những bộ định thời này đóng một vai trò quan trọng trong việc tạo ra độ trễ của bất kỳ chức năng đang chạy nào và có thể được sử dụng theo cả hai cách, tức là bộ định thời cũng như bộ đếm nơi cái đầu được sử dụng để điều khiển các chức năng bên trong của bộ điều khiển và tăng chu kỳ lệnh, trong khi cái sau đếm số khoảng thời gian bằng cách và giảm biên của chân và chủ yếu được sử dụng cho các chức năng bên ngoài. Hai bộ hẹn giờ khác được thêm vào thiết bị là
Bộ định thời khởi động Oscillator reset bộ điều khiển để ổn định bộ dao động tinh thể. Đồng thời bộ định thời cấp nguồn được sử dụng để tạo ra độ trễ nhỏ khi bạn bật nguồn thiết bị, giúp ổn định tín hiệu nguồn.
Số chế độ ngủ
Thiết bị này kết hợp sáu chế độ ngủ để tiết kiệm điện. Các chế độ này bao gồm:
Tiết kiệm điện năng
Tắt nguồn
Idle
Giảm nhiễu ADC
Standby
Standby mở rộng
Phát hiện suy giảm nguồn (BOD)
BOD, còn được gọi là BOR (Brown Out Reset), là một bổ sung có giá trị cho thiết bị giúp thiết lập lại module khi Vcc (nguồn cung cấp điện áp) xuống dưới mức điện áp ngưỡng brownout. Ở chế độ này, nhiều dải điện áp được tạo ra khi nguồn điện bị sụt ở đường dây cung cấp điện áp. Nếu bạn muốn khôi phục thiết bị từ chức năng BOD, bạn nên bật bộ định thời cấp nguồn để tạo ra một độ trễ nhỏ.
Bộ định thời watchdog
Hầu hết các chip, nếu không phải tất cả, do Microchip sản xuất, đều tích hợp bộ định thời watchdog để reset bộ điều khiển nếu chương trình đang chạy bị treo trong quá trình biên dịch hoặc bị mắc kẹt trong vòng lặp vô hạn. Mục đích chính của bộ định thời này là để ngăn bộ điều khiển khỏi việc reset theo cách thủ công, mang lại cho bạn một lợi thế nhỏ so với các bộ xử lý khác, nơi bạn cần phải reset bộ điều khiển theo cách thủ công trong trường hợp có trục trặc trong chức năng đang chạy. Bộ định thời watchdog hoạt động giống như đồng hồ đếm ngược.
Ngắt
Các ngắt rất hữu ích cho việc gọi chức năng mong muốn đặt chức năng đang chạy chính ở trạng thái chờ cho đến khi lệnh yêu cầu được thực thi. Bộ điều khiển quay trở lại chương trình chính sau khi ngắt được thực thi.
Giao tiếp I2C
Giao thức I2C được sử dụng để bố trí giao tiếp giữa các thiết bị tốc độ thấp như bộ chuyển đổi ADC và DAC và bộ vi điều khiển. Đây là giao tiếp hai dây chủ yếu chứa hai đường
Clock nối tiếp (SCL)
Dữ liệu nối tiếp (SDA)
Tín hiệu đầu tiên là tín hiệu clock, chủ yếu được sử dụng để đồng bộ hóa việc truyền dữ liệu giữa các thiết bị và được tạo ra bởi thiết bị chính. Tín hiệu sau được sử dụng để lưu giữ dữ liệu mong muốn.
Giao tiếp SPI
ATmega128 có giao diện ngoại vi nối tiếp (SPI) chủ yếu được sử dụng để giao tiếp giữa bộ vi điều khiển và các thiết bị ngoại vi khác như cảm biến, thanh ghi dịch chuyển và thẻ SD. Có xung nhịp và các đường dữ liệu riêng biệt, được phân lớp với một dòng lựa chọn để chọn thiết bị liên quan để giao tiếp. Hai chân được sử dụng cho giao tiếp SPI
MOSI (Đầu vào slave đầu ra master)
MISO (Đầu ra slave đầu vào master)
Chân MOSI được sử dụng để nhận dữ liệu khi vi điều khiển hoạt động như slave. Tương tự, MISO giúp gửi dữ liệu bởi vi điều khiển sau đó hoạt động như một chế độ slave.
Trình biên dịch ATmega128
Trình biên dịch là phần mềm cơ bản được sử dụng để viết và biên dịch mã vào bộ điều khiển AVR. Một số miễn phí và một số có phí. Nếu bạn mới thực hành với bộ điều khiển, bạn nên sử dụng phần mềm miễn phí, bạn có thể chuyển sang phiên bản có phí khi bạn phát triển và học hỏi theo thời gian. Sau đây là một số trình biên dịch cơ bản chủ yếu được sử dụng cho vi điều khiển AVR.
IAR là trình biên dịch trả phí và đi kèm với giao diện chuyên nghiệp. Theo kinh nghiệm cá nhân của một số chuyên gia, trình biên dịch này là phiên bản tốt nhất cho vi điều khiển AVR.
GCC Port là một lựa chọn tốt khác để bắt đầu, nhưng nó đi kèm với giao diện hơi phức tạp. Nó hoạt động với cả hệ điều hành Windows và Linux.
ImageCraft là một lựa chọn có giá trị để biên dịch mã, nhưng nó không kết hợp một số tính năng GUI như trình chỉnh sửa và quản lý project có thể khiến bạn gặp rắc rối trong quá trình thực thi mã.
Giao diện bộ nhớ ATmega128
Hai loại bộ nhớ chủ yếu được sử dụng trong ATmeag128 có tên là Bộ nhớ chương trình (Flash Memory) và bộ nhớ SRAM. Module AVR này kết hợp kiến trúc Harvard trong đó các không gian bộ nhớ riêng biệt được dành riêng cho cả dữ liệu và chương trình. Không gian bộ nhớ trong bộ điều khiển là sự kết hợp của bản đồ bộ nhớ tuyến tính và thông thường. Thanh ghi tệp truy cập nhanh được phân lớp với mục đích chung 32 x 8 Bit.
Bộ nhớ chương trình (ROM)
Bộ nhớ chương trình có không gian bộ nhớ khoảng 128K nơi lệnh gần đây được gọi theo sau lệnh tiếp theo, thực hiện lệnh trong mỗi chu kỳ xung nhịp.
Nó chủ yếu được phân loại thành hai phần có tên là phần chương trình khởi động và phần chương trình ứng dụng, phần trước đi kèm với bộ nhớ Flash ứng dụng đóng vai trò chính để viết lệnh SPM.
Bộ nhớ dữ liệu (RAM)
Bộ nhớ dữ liệu có không gian bộ nhớ khoảng 4K. Năm chế độ định địa chỉ khác nhau trong kiến trúc AVR được sử dụng để xử lý bộ nhớ RAM này. Các chế độ này là
Trực tiếp
Gián tiếp
Gián tiếp với dịch chuyển
Gián tiếp với trước giảm
Gián tiếp với sau tăng.
Ba thanh ghi địa chỉ, được gọi là X, Y và Z, tăng và giảm trong các chế độ địa chỉ gián tiếp. Thanh ghi điều khiển có mặt trong module ngắt linh hoạt chủ yếu đi kèm với việc đặt bit cho phép ngắt toàn cục trong thanh ghi trạng thái. Các ngắt này đi kèm với một bảng vector ngắt trong đó vector ngắt là một phần chính của nó và cả hai đều tỷ lệ nghịch với nhau. Điều quan trọng cần lưu ý là, bảng vector ngắt phụ thuộc vào vị trí vectơ ngắt.
Module ALU hoạt động trong một chu kỳ xung nhịp duy nhất và được chia thành ba chức năng chính gọi là chức năng trực tiếp, số học và chức năng bit, được kết nối trực tiếp với 32 thanh ghi mục đích chung.
Sơ đồ khối ATmega128
Hình dưới là sơ đồ khối của ATmega128.
ATmega128 đi kèm với sáu chế độ tiết kiệm năng lượng có thể lựa chọn phần mềm. Power-down rất hữu ích để đóng băng bộ tạo dao động và dừng tất cả các chức năng module khác trong khi vẫn lưu nội dung thanh ghi. Các chức năng vẫn bị vô hiệu hóa cho đến khi ngắt tiếp theo được gọi và thực thi.
Tương tự, chế độ Idle cho phép hệ thống ngắt, cổng SPI, SRAM, bộ định thời / bộ đếm hoạt động trong khi vẫn giữ CPU bị vô hiệu hóa.
Chế độ Giảm nhiễu ADC đóng một vai trò quan trọng trong việc giảm thiểu nhiễu khi chuyển mạch và đóng băng toàn bộ module ngoại trừ bộ định thời và ADC không đồng bộ.
Ở chế độ Power-save, toàn bộ thiết bị đang ở chế độ ngủ ngoại trừ bộ định thời không đồng bộ vẫn tiếp tục chạy.
Chế độ Standby đặt toàn bộ thiết bị ở chế độ ngủ ngoại trừ dao động tinh thể tiếp tục chạy, giúp tiêu thụ điện năng thấp. Chế độ Extended Standby cho phép cả bộ tạo dao động và bộ định thời không đồng bộ chạy trong khi phần còn lại của thiết bị ở chế độ ngủ.
Ứng dụng ATmega128
Hotline: 0979 466 469