Hướng dẫn này giới thiệu về vi điều khiển ARM7 LPC2148 . Chúng tôi cũng sẽ thảo luận về một số sự kiện và tính năng của vi điều khiển NXP LPC2148. Hướng dẫn này sẽ giúp bạn hiểu cơ bản về chức năng của vi điều khiển ARM7 LPC2148. Trong hướng dẫn tiếp theo, chúng tôi sẽ cài đặt phần mềm và cấu hình phần cứng để ghi hoặc tải xuống tệp hex vào bộ nhớ flash của Bộ vi điều khiển LPC2148.
ARM là gì?
Máy RISC ARM-Advanced là kiến trúc bộ vi xử lý RISC 32-bit (Bộ máy tập lệnh hướng dẫn giảm) được phát triển bởi ARM Holdings. Nhiều người mới bắt đầu đôi khi hiểu lầm rằng ARM là vi điều khiển hoặc bộ vi xử lý nhưng trên thực tế, ARM là một kiến trúc được sử dụng trong nhiều bộ xử lý và vi điều khiển. Kiến trúc ARM được cấp phép cho các công ty muốn sản xuất CPU dựa trên ARM hoặc các sản phẩm Hệ thống trên Chip. Điều này cho phép các công ty phát triển bộ xử lý riêng của họ tuân theo kiến trúc bộ lệnh ARM. Ví dụ, thiết bị chúng tôi đang sử dụng LPC2148 là kiến trúc ARM dựa trên sản phẩm SOC được phát triển bởi NXP Semiconductor. Tương tự như vậy, tất cả các nhà sản xuất bán dẫn lớn như Atmel, Samsung, TI, vv tất cả đều tạo ra các SOC dựa trên ARM.
Tại sao bắt đầu với ARM7 LCP2148?
ARM7 là bộ xử lý thành công và được sử dụng rộng rãi nhất trong các ứng dụng hệ thống nhúng. Vì vậy, chúng tôi đã quyết định chọn ARM7 TDMI dựa trên bộ điều khiển NXP LPC2148 . Ngoài ra, ARM7 là sự cân bằng giữa dòng Cortex cổ điển và mới. ARM7 là tuyệt vời để bắt đầu với các nguồn lực có sẵn trên internet và tài liệu chất lượng được cung cấp bởi NXP. Nó phù hợp hoàn hảo cho người mới bắt đầu để có được ý tưởng sâu sắc về việc triển khai phần cứng và phần mềm.
LPC2148 được sản xuất bởi NXP Semiconductor (Phillips) và được cài đặt sẵn nhiều tính năng và thiết bị ngoại vi tích hợp sẵn. Điều này làm cho nó trở nên hiệu quả và đáng tin cậy hơn cho một nhà phát triển ứng dụng cao cấp. Tôi không muốn lặp lại danh sách các tính năng từ Hướng dẫn sử dụng. Tôi yêu cầu bạn giữ sổ tay hướng dẫn sử dụng trong khi đọc các hướng dẫn này. Khi chúng ta di chuyển, chúng ta sẽ thảo luận và sử dụng hầu như tất cả các tính năng trong loạt bài này. Bây giờ chúng ta hãy xem sơ đồ pin của LPC2148.
Đối với người mới, điều quan trọng hơn là phải có kiến thức cơ bản về cấu hình pin, bộ nhớ, cổng IO và thanh ghi cơ bản.
KÝ ỨC
LPC2148 có 32kB trên chip SRAM và 512kB trên bộ nhớ FLASH chip. Chip này đã tích hợp hỗ trợ bộ nhớ RAM USB 2kB. Bộ nhớ này là quá đủ cho hầu như tất cả các ứng dụng. Hãy hiểu chức năng của không gian bộ nhớ khổng lồ này trong LPC2148.
Hệ thống bộ nhớ FLASH: LPC2148 có bộ nhớ flash 512kB. Bộ nhớ này có thể được sử dụng cho cả mã và lưu trữ dữ liệu. Bộ nhớ flash có thể được lập trình theo nhiều cách khác nhau
- Sử dụng nối tiếp được xây dựng trong giao diện JTAG
- Sử dụng lập trình trong hệ thống (ISP)
- Bằng khả năng của các ứng dụng Lập trình trong ứng dụng (IAP)
Chương trình ứng dụng, sử dụng các hàm IAP cũng có thể xóa và / hoặc lập trình FLASH trong khi ứng dụng đang chạy. Khi LPC2148 trên bộ nạp khởi động chip được sử dụng, 500kB bộ nhớ flash có sẵn cho mã người dùng.
Hệ thống bộ nhớ RAM: LPC2148 cung cấp 32kB RAM tĩnh có thể được sử dụng để mã và / hoặc lưu trữ dữ liệu. Nó có thể được truy cập như 8-bit, 16-bit và 32-bit.
INPUT / OUTPUT PORTS (GPIO của LPC2148)
Hiểu cổng IO là gì và cách sử dụng chúng là rất quan trọng. Đó là bởi vì khi chúng ta thấy chip vi mô, chúng ta sẽ tìm thấy một hộp đen tức là IC với một số chân. LPC2148 có hai cổng IO, mỗi cổng 32 bit, được cung cấp bởi 64 chân IO. Các cổng được đặt tên là P0 và P1. Chân của mỗi cổng được gắn nhãn là Px.y trong đó “ x ” là viết tắt của số cổng, 0 hoặc 1. Trong đó “ y ” là viết tắt của số pin thường từ 0 đến 31. Mỗi ghim có thể thực hiện nhiều chức năng. Ví dụ: Pin no.1 là P0.21 phục vụ như GPIO cũng như PWM5, AD1.6 (A / D converter1, input 6), CAP1.3 (đầu vào Capture cho Timer1, Channel 3).
CONFIGURE GPIO trong LPC2148:
Điều đầu tiên cần tìm hiểu khi lập trình LPC2148 là cách cấu hình các Ghim GPIO? Hãy bắt đầu với các khái niệm và thanh ghi liên quan.
PORT PINS | KIỂU | SỰ MIÊU TẢ |
P0.0-P0.31 P1.16-P1.31 | Đầu ra đầu vào | Mục đích đầu vào / đầu ra chung. Số lượng GPIO thực sự có sẵn phụ thuộc vào việc sử dụng các hàm thay thế. |
PORT 0 là cổng I / O 32 bit với các điều khiển hướng riêng cho từng bit. Tổng số 28 chân của Cổng 0 có thể được sử dụng như một I / O kỹ thuật số hai chiều mục đích chung trong khi P0.31 chỉ cung cấp các chức năng đầu ra kỹ thuật số. Hoạt động của chân cổng 0 phụ thuộc vào chức năng pin được chọn thông qua khối kết nối pin. Pins P0.24, P0.26 và P0.27 không có sẵn.
PORT 1 là cổng I / O hai chiều 32 bit với các điều khiển hướng riêng cho từng bit. Hoạt động của chân cổng 1 phụ thuộc vào chức năng pin được chọn thông qua khối kết nối pin. Ghim từ 0 đến 15 của cổng 1 không khả dụng.
PORT0 và PORT1 được điều khiển thông qua hai nhóm thanh ghi được giải thích dưới đây.
IOPIN
Đây là thanh ghi giá trị GPIO Port Pin. Trạng thái hiện tại của các chân cổng được cấu hình GPIO luôn có thể được đọc từ thanh ghi này, bất kể hướng pin.
IODIR
Đây là thanh ghi điều khiển GPIO Port Direction. Đăng ký riêng lẻ Điều khiển hướng của từng Pin cổng .
IOCLR
Đây là GPIO Port Output Clear register. Thanh ghi này kiểm soát trạng thái chân đầu ra . Viết những người sản xuất thấp ở chân cổng tương ứng và xóa các bit tương ứng trong đăng ký IOSET. Viết zeroes không có hiệu lực.
IOSET
Đây là thanh ghi GPIO Port Output Set. Thanh ghi này kiểm soát trạng thái chốt đầu ra kết hợp với thanh ghi IOCLR . Viết những người sản xuất cao ở chân cổng tương ứng. Viết zeroes không có hiệu lực.
Đây là tập hợp thanh ghi được sử dụng để định cấu hình Ghim I / O. Bây giờ chúng ta hãy di chuyển đến các thanh ghi riêng lẻ ở sâu.
ĐĂNG KÝ CHO C PROGRAMMING
IOSEL0
Cổng 0 có 32 chân (P0.0 đến P0.31). Mỗi chốt có thể có nhiều chức năng. Trên RESET, tất cả các chân được cấu hình như các chân GPIO. Tuy nhiên chúng ta có thể cấu hình lại bằng cách sử dụng các thanh ghi IOSEL0 và IOSEL1.
IOSEL0 được sử dụng để chọn hàm P0.0 đến P0.15 . Mỗi chốt có tối đa 4 chức năng nên 2 bit / pin trong IOSEL0 được cung cấp để chọn chức năng.
00 | Hàm 0 (Hàm mặc định = GPIO) |
01 | Chức năng 1 |
10 | Hàm số 2 |
11 | Chức năng 3 |
IOSEL1
IOSEL1 được sử dụng để chọn hàm P trong P0.16 đến P0.31
IOSEL2
IOSEL2 được sử dụng để chọn chức năng của Pins P1.16 đến P1.31
IO0DIR
IO0DIR được sử dụng để cấu hình các chân của cổng 0-P0 làm chân đầu vào hoặc đầu ra.
1 = Pin đầu ra
0 = Pin đầu vào
0 = Pin đầu vào
Ví dụ: IO0DIR = 0x0000FFFF có nghĩa là P0.0 đến P0.15 được cấu hình như các chân đầu ra và P0.16 đến P0.31 được cấu hình như các chân đầu vào.
IO1DIR
IO1DIR được sử dụng để cấu hình các chân của Cổng 1-P1 làm chân đầu vào hoặc đầu ra.
1 = Pin đầu ra
0 = Pin đầu vào
0 = Pin đầu vào
Ví dụ: IO1DIR = 0xAAAAAAAA có nghĩa là các ghim (P1.0, P1.2, P1.4, v.v.) được cấu hình như các chân đầu vào và các chân lẻ (P1.1, P1.3, P1.5, v.v.) được cấu hình làm đầu vào ghim.
IO0SET
Nó được sử dụng để đặt chân của Port0-P0 thành logic 1.
Ví dụ: IO0SET = 0x0000FFFF sẽ đặt chân P0.0 thành P0.15 ở logic 1. Nó sẽ không ảnh hưởng đến các chân khác.
IO0CLR
Nó được sử dụng để đặt chân của Port0-P0 thành logic 0.
Ví dụ: IO0CLR = 0x0000FFFF sẽ đặt chân P0.0 thành P0.15 ở mức logic 0. Nó sẽ không ảnh hưởng đến các chân khác.
IO1SET
Nó được sử dụng để thiết lập các chân của Port1-P1 thành logic 1.
Ví dụ: IO1SET = 0x0000FFFF sẽ đặt các chốt P1.0 thành P1.15 ở logic 1. Nó sẽ không ảnh hưởng đến các chân khác.
IO1CLR
Nó được sử dụng để thiết lập các chân của Port1-P1 thành logic 0.
Ví dụ: IO1CLR = 0x0000FFFF sẽ đặt các chốt P1.0 thành P1.15 ở mức logic 0. Nó sẽ không ảnh hưởng đến các chân khác.
Một khi việc sử dụng ở trên tất cả các thanh ghi được hiểu một cách hoàn toàn, bạn sẽ tốt khi lập trình.
Ví dụ: Đèn LED nhấp nháy được kết nối trên chân P0.10-P0.13
Bước 1: Chọn Ghim PORT GPIO bằng PINSEL0 .
Bước 2: Chỉ định hướng ghim làm đầu ra sử dụng IO0DIR .
Bước 3: Đặt chân P0.10-P0.13 bằng IO0SET.
Bước 4: Xóa các chốt P0.10-P0.13 bằng IO0CLR .
Bước 5: Chuyển sang bước 2.
Bây giờ, bằng cách sử dụng các bước được đưa ra ở đây, hãy thử viết chương trình cơ bản của riêng bạn và một khi nó được thực hiện, so sánh với chương trình cơ bản được đưa ra ở đây . Bạn có thể viết chương trình này bằng cách sử dụng các kỹ thuật khác nhau. Chúng tôi đã đưa ra tùy chọn cơ bản nhất cho bạn. Trong hướng dẫn tiếp theo, chúng tôi sẽ thực hiện cài đặt phần mềm và kết nối phần cứng để tìm hiểu cách lập trình vi điều khiển LPC2148 .
Không có nhận xét nào:
Đăng nhận xét