1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Đồ án kỹ thuật lập trình nhúng ARM

46 1,7K 6

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 46
Dung lượng 1,82 MB

Nội dung

Đồ án kỹ thuật lập trình nhúng ARM TỔNG QUAN VỀ ARM LPC2103. Đồ án Kỹ Thuật Lập Trình nằm trong chương trình đào tạo của nghành cơ tin kỹ thuật thuộc khoa cơ khí tự động và robot có vai trò hết sức quan trọng, là bước đầu cho sing viên trong con đường học tập, giúp sinh viên hiểu sâu hơn về những nhiệm vụ và những yêu cầu cơ bản của một người kỹ sư cơ điện, và quan trọng nhất là tổng hợp lại những gì mình đã học trong suốt thời gian qua.

Trang 1

ĐỒ ÁN KỸ THUẬT LẬP TRÌNH

MỤC LỤC

Chương I TỔNG QUAN VỀ ARM LPC2103 tr.2

I.1 : GIỚI THIỆU TỔNG QUAN VỀ ARM tr

I.3 : GIỚI THIỆU TỔNG QUAN VỀ ARM tr.

Chương II CẤU TRÚC VÀ BỘ NHỚ VÀ CHỨC NĂNG PIN LPC 2103 tr.6

II.5 CẤU TRÚC CÁC PIN LPC2103 tr.10

Chương III PLL Control Register (PLL0CON & PLL1CON) tr.19

III.2 PLL Status Register (PLL0STAT & PLL1STAT): tr.

III.3 PLL Feed Register (PLL0FEED & PLL1FEED) tr.

Trang 2

lời nói đầu

Hiện nay, các nghành kinh tế nói chung và cơ khí nói riêng đòi hỏi kỹ sư cơ khí vàcác cán bộ kỹ thuật được đào tạo ra phải có kiến thức sâu rộng, đồng thời phải biết vận dụng những kiến thức đó để giải quyết những vấn đề thường gặp trong sản xuất

và sử dụng máy móc Cùng với sự phát triển ngày càng cao của khoa học kỹ thuật thì những dòng chíp mới được ra đời với nhũng tính năng vượt trội, nhằm đáp ứng những yêu cầu ngày càng cao của xã hội

Mục tiêu của môn học là giúp sinh viên cũng cố kiến thức của các môn đã học như: Kỹ thuật lập trình, Kỹ thuật điện, Lập trình C cho vi điều khiển, … Ngoài ra còn giúp sinh viên tìm hiểu thêm về một dòng chíp mới(chíp 32 bit) với những điểmmạnh nổi trội có thể trong tương lai không xa sẽ thay thế những dòng chíp khác bằng những ứng dung, lợi ích và tốc độ vượt trội mà nó mang lại Qua đó sing viên nắm chắc hơn về phương pháp tính, thiết kế và quy trình chế tạo một mạch điện cơ bản như mạnh nguồn, mạch công suất … Cũng như các yêu cầu công nghệ, và kinh

tế với mục tiêu là sản phẩm chế tạo ra phải đáp ứng được yêu cầu và hợp với thời đại ngày nay

Đồ án Kỹ Thuật Lập Trình nằm trong chương trình đào tạo của nghành cơ tin

kỹ thuật thuộc khoa cơ khí tự động và robot có vai trò hết sức quan trọng, là bước đầu cho sing viên trong con đường học tập, giúp sinh viên hiểu sâu hơn về những nhiệm vụ và những yêu cầu cơ bản của một người kỹ sư cơ điện, và quan trọng nhất

là tổng hợp lại những gì mình đã học trong suốt thời gian qua

Trong quá trình thực hiện đồ án được sự hướng dẫn và giúp đỡ tận tình của thầy HÀ NGỌC NGUYÊN các em đã hoàn thành đồ án này

Em xin chân thành cảm ơn

- Người thực hiện

NGUYỄN HỮU MINH

LÊ ANH KHOA

Trang 3

PHẦN I: TỔNG QUAN VỀ ARM LPC2103.

I.1 : GIỚI THIỆU TỔNG QUAN VỀ ARM

1 1ARM = Acorn RISC Machine Sau này, do có thêm nhiều công ty cùng phát triển và một số lý do khác, người ta thống nhất gọi ARM=Advance RISC Machine 1.2ARM được dùng trong Iphone của Apple (ARM Cortex A5)

1.3ARM sử dụng kiến trúc RISC:

• Kích thước 1 lệnh là cố định <32bit> với chỉ một vài định dạng

• Sử dụng kiến trúc load-store , các lệnh xử lý dữ liệu chỉ ở trong thanh ghi ( toán hạng chỉ được nằm trong thanh ghi,phải dùng lênh truy cập để load nội dung

từ bộ nhớ vào rồi mới thực hiện cộng trừ v v )

• Giải mã các lệnh logic bằng phần cứng

• Thực thi theo pipeline

1.4ARM nhanh hơn, tiết kiệm năng lượng hơn và nhỏ gọn hơn

1.5Thích thì chọn, có làm sao ko?

I.2 ARM CORTEX VÀ ARMv7

- Trước hết ARM không phải là 1 bộ vi điều khiển kiểu như 8051, AVR … Nóchỉ là một cái lõi (core) chuyên xử lý dữ liệu, và kiến trúc của lõi này được công tyARM thiết kế, bán cho các hãng khác theo dạng cấp phép sở hữu trí tuệ (IntellectualProperty), các hãng sản xuất khác sẽ lắp thêm các thành phần ngoại vi vào cái corenày để tạo ra 1 sản phẩm hoàn thiện Để đơn giản , các bạn hãy tưởng tượng coreARM chính là cái chíp core-i5, core-i7 thậm chí là core-9 Các công ty sẽ làmnhiệm vụ lắp thêm RAM, ROM, cổng USB, cổng LAN và cho ra đời các sản phẩm

Trang 4

Vì có thể đọc cùng lúc lệnh và dữ liệu từ bộ nhớ, bộ vi xử lý Cortex-M3 có thể thực hiện nhiều hoạt động song song, tăng tốc thực thi ứng dụng.

I.3 KIẾN TRÚC CỦA ARM7

1.3.2 Cấu trúc load – store:

Cũng như hầu hết các bộ xử lý dùng tập lênh RISC khác, ARM cũng sử dụng cấutrúc load-store Điều đó có nghĩa là: tất cả các chỉ lệnh <cộng, trừ…> đều được thựchiện trên thanh ghi Chỉ có lệnh copy giá trị từ bộ nhớ vào thanh ghi<load> hoặcchép lại giá trị từ thanh ghi vào bộ nhớ<store> mới có ảnh hưởng tới bộ nhớ

1.3.3 Tập lệnh của ARM:

Tất cả các lệnh của ARM có thể thuộc 1 trong 3 loại sau:

+ Chỉ lệnh xử lý dữ liệu: chỉ thay đổi giá trị trên thanh ghi

+ Chỉ lệnh truyền dữ liệu: copy giá trị từ thanh ghi vào bộ nhớ và chép giá trị

từ bộ nhớ vào thanh ghi.<load-store>

+ Chỉ lệnh điều khiển dòng lệnh: Bình thường, ta thực thi các chỉ lệnh chứatrong một vùng nhớ liên tiếp, chỉ lệnh điều khiển dòng lệnh cho phép chuyển sangcác địa chỉ khác nhau khi thực thi lệnh, tới những nhánh cố định, <lệnh rẽ nhánh>hoặc là lưu và trở lại địa chỉ để phục hồi chuỗi lệnh ban đầu <chỉ lệnh rẽ nhánh vàkết nối> hay là đè lên vùng code của hệ thống <gọi giám sát-ngắt phần mềm>

Một số đặc điểm riêng biệt của tập lệnh :

Trang 5

+ Để tăng tính mềm dẻo và giảm kích thước chương trình, ARM đưa ra một loại lệnh gọi là THUMB chỉ có 16 bit Với lệnh 16bit này tốc độ thực thi của

chương trình sẽ giảm tuy nhiên bộ nhớ lưu trữ của chương trình sẽ tiết kiệm hơn Theo như datasheet của LPC2148 thì :

+ Mọi câu lệnh trong ARM đều có thể viết thành “câu lệnh có điều kiện” ví dụ: EQMOV R1, #0x02FE0302 ; có nghĩa là move giá trị #0x02FE0302 vào R1 nếu kết quả của câu lệnh trước = R1 và sẽ set cờ Z lên 1(EQ được thêm vào trước MOV và người ta gọi thể loại bựa nhân này là Suffix, có thể tra datasheet cái bảng Suffix này) Điều này làm cho một số câu lệnh rẽ nhánh được thực hiện rất nhanh

Phần II : CẤU TRÚC VÀ BỘ NHỚ VÀ CHỨC NĂNG PIN

LPC 2103 Các tính năng được hỗ trợ trong LPC2103

Trang 6

- Là vi điều khiển 32 bit

- Có 8KB Ram và 32KbRom, hoạt động cao nhất ở 70Mhz (Dòng

LPC2101/2102 là tương tự nhưng có Ram và Rom ít hơn)

- ISP/IAP, khả năng nạp xuống vi điều khiển 256bytes/1ms hay xóa toàn bộ chip trong 100ms

- Khả năng Debug theo thời gian thực bằng cổng JTAG

- ADC 10bit với thời gian thực hiện 2.44u Ghi thẳng vào thanh ghi kết quả không cần dùng ngắt

- 2 bộ timer 32 bít (Timer0 và Timer1) với 7 chân Capture và 7 kênh so

sánh

- 2 bộ timer 16 bít (Timer2 và Timer3) với 3 chân Capture và 7 kênh so sánh

- Đồng hồ thời gian thực low power (Real-Time Clock (RTC)) cấp nguồn

rời và khả năng dùng xung rời 32Khz

- 2 bộ UART, 2 bộ FastI2C (400Kbit/s) SPI và SSP

- Bộ véctơ ngắt có thể điều chỉnh độ ưu tiên.(1 ngắt nhanh “Fast IRQ”, 16

vector ngắt có thể lập trình địa chỉ “Vectored IRQ”, các ngắt còn lại

“Non-Vectored IRQ” bạn có thể định danh nguồn gây ra ngắt sau khi vào chế độ ngắt

- 32 chân ngõ xuất nhập công dụng chung 5V

- 13 chân có khả năng làm chân ngắt ngoài

- Có bộ nhân tầng giúp VĐK hoặt động ở 70Mhz với tần số ngõ vào từ 1 đến 25Mhz

- Có chế độ Thump dùng tập lệnh 16bit thay vì 32bit và có khả năng phối hợp

cả 2 chế độ, giúp tối ưu thời gian thực hiện cũng như chi phí bộ nhớ Trong chế độ Thump bạn giảm được 30% code nhưng chạy chậm hơn 40% so với chế độ 32 bit ( thường được gọi là chế độ ARM )

Trang 7

ARM có một bộ PLL là một bộ nhân tần số Tức là khi thạch anh đầu vào của bạn chỉ là 12MHz và bạn muốn hoặt động ở tần số 60MHz (hỗ trợ cao nhất đến 70Mhz) thì bạn cần nhân 5 tần số ngõ vào Điều này được thực hiện thông qua thanh ghi PLLCON, PLLCFG và PLLFEED Và thường được khai báo sẵn trong file startup.s mặc định của Keil Clock sinh ra thông qua PLL gọi là Cclk Cclk quyết định tốc độ thực thi lệnh cũng như tốc độ AHB bus (các bus có tốc độ cao trong VĐK như bus bộ nhớ).

Bên cạnh đó thì ARM còn có một bộ chia tần số gọi là bộ VPB divider Clock sinh ra thông qua bộ chia VPB sẽ quyết định tốc độ của VPB bus và có tên là Pclk.Bus này thường được dùng để giao tiếp với các thiết bị ngoại vi (nhằm tránh gây hiện tượng nghẽn cổ chai do tốc độ của các thiết bị ngoại vi chậm hơn tốc độ của VĐK) Bên cạnh đó còn dùng để điều khiển Timer (nếu dùng nguồn clock nội thì

cứ mỗi xung của Pclk sẽ tăng timer count lên 1, còn nếu dùng xung ngoài thì cứ mỗi cạnh lên của Pclk thì VĐK sẽ kiểm tra tín hiệu ở ngõ Capture) Bộ VPB được quyết định bởi thanh ghi VPBDIV Ví dụ, nếu bạn cho VPBDIV = 0x00000002 thìtức là Pclk sẽ có tần số bằng ½ tần số của Cclk

II.1 PINSEL0 và PINSEL1

- Đây là hai thanh ghi chọn chức năng cho chân của vi điều khiển Riêng con LPC2103 chỉ có một Port 0 duy nhất gồm 32 chân đánh dấu từ P0.0 đến P0.31 Mỗi chân thường có từ 3 đến 4 công dụng Chức năng mặc định là chân xuất nhập chung (tức dùng điều khiển Led hoặc LCD hoặc nhận phím bấm… tức làm bất cứ

gì mà không dùng đến module thiết kế sẵn bên trong VĐK)

- PINSEL0 điều khiển cho 16 chân đầu, còn PINSEL1 điều khiển 16 chân còn lại

- Bít thứ 0 và 1 của PINSEL0 sẽ điều khiển cho P0.0, bít thứ 2 và 3 điều

khiển cho P0.1 Tương tự cho các chân còn lại, tức 2 bít điều khiển cho 1 chân

- Chẳng hạn P0.0 có 3 chức năng, chức năng thứ 0 là GPIO, thứ 1 là TXD0 (chân Transmitter của UART0) và thứ 2 là MAT3.1(PWM thứ 1 của timer 3) vậy nếu bít 1và 0 của PINSEL0 có giá trị là 00 thì P0.0 là GPIO, nếu là 01 thì là TXD0

và 10 là MAT3.1 Giá tri 11 không được sử dụng Các chức năng cũng nhưng thứ

tự chức năng của mỗi chân các bạn có thể tham khảo trong phần User manual rất hoàn chỉnh Ở các Tuts sau mình sẽ cố gắng trình bày đầy đủ các chức năng mà bạn có được từ một con LPC2103

Trang 8

II.2 IOPIN

- Đây là thanh ghi dùng để đọc trạng thái của các chân, không cần biết chân đóđang là Input hay Output Mỗi bit trong thanh ghi IOPIN sẽ tương ứng trạng thái của một chân trong P0

- Bạn có thể ghi thẳng vào thanh ghi này các giá trị cần xuất ra cho các chân, lưu ý là tất cả các chân sẽ bị thay đổi theo giá trị mà bạn gán Khác với thanh ghi IOSET hay IOCLR là chỉ các vị trí bạn gán 1 thì port đó mới thay đổi giá trị

Quyết định dùng thanh ghi IOPIN hay IOSET/IOCLR sẽ giúp bạn tối ưu được chương trình của mình

II.4 IOSET/ IOCLR

- 2 thanh ghi dùng để thay đổi trạng thái của các chân Nếu bạn ghi bit 1 vào thanh ghi IOSET thì tại vị trí tương ứng chân đó sẽ có logic mức cao Còn nếu bạn ghi bit 1 vào thanh ghi IOCLR thì tại vị trí tương ứng chân đó sẽ có logic mức thấp(chú ý ghi 1 vào IOCLR, ghi 0 vào sẽ không có tác dụng).\

E Các thanh ghi FastGPIO : (Khi SCS = 0x00000000 (mặc định) bạn ở chế

độ GPIO còn nếu SCS = 0x00000001 bạn vào chế độ FastGPIO) Thanh ghi tươngđương như các thanh ghi GPIO nhưng tốc độ cải thiện 3.5 lần (Giúp bạn có thể sinh ra những tín hiệu có tần số cao hơn)

- Tương tự với các thanh ghi FIODIR, FIOMASK, FIOPIN, FIOSET,

FIOCLR.Sự khác biệt lớn nhất giữ Fast GPIO và Slow GPIO là tốc độ đáp ứng chênh nhau khoảng 3.5 lần, tức là tần số bạn có khả năng sinh ra ở các chân có thể cao lên gấp 3.5 lần Và điều khác biệt thứ hai là khi ghi hoặc đọc dữ liệu vào các thanh ghi FIOPIN, FIOSET hay FIOCLR thì

chỉ các bit nào trong thanh ghi FIOMASK là 0 thì mới được đọc hoặc ghi Ví dụ tôi muốn cho các chân từ P0.0 đến P0.15 lên 1 và giữ nguyên giá trị cho các chân còn lại, tôi có thể gán cho FIOMASK=0xFFFF0000 và gán cho FIOPIN =

0xFFFFFFFF Lúc đó các chân từ P0.16 trở đi sẽ bị che

Trang 9

- Điều đáng lưu ý là các thanh ghi này chưa được khai báo trong file LPC210x.hcủa Keil, mình chỉ xin khai báo lại 5 thanh ghi FIODIR, FIOMASK, FIOPIN, FIOSET, FIOCLR mà thôi Còn một số thanh ghi bổ sung nhằm giúp tối ưu hóa quá trình xuất nhập, các bạn có thể tra thêm trong User manua

II.5 : CẤU TRÚC CÁC PIN LPC2103

2.5.1 : Sơ đồ khối của ARM LPC 2103.

Trang 10

2.5.2 : Thứ tự chân trên chíp trên chip LPC 2103.

Trang 11

2.5.3: Chức năng và nhiệm vụ của từng chân.

- Vi điều khiển LPC 2103 có 48 chân

- Gồm 32 chân từ P0.0 tới P0.31 với chức năng I/O

- Chân số 7,19,43 nối GND

- Chân số 42, 17, 40 nối VCC(3,3V)

- Chân số 5 nối VCC(1,8V)

Trang 12

- Tổng cộng có 32 chân của Port 0 có thể được sử dụng như mục đích chung hai chiều vừa có thể là tín hiệu đầu ra vừa có thể là tín hiệu đầu vào.Riêng Port 0.31 chỉ

có thể là tín hiệu đầu vào input

- Các chân của Port 0 có hoạt động phụ thuộc vào chức năng pin lựa chọn thông qua các kết nối khối pin

- LPC 2103 sử dụng hai thạch anh dao động ,một thạch anh cho mạch chính, một thạch anh cho đồng hồ thời gian thực

- Chân số 20,25 sử thạch anh RTCX1,RTCX2 _32KHZ_là đầu vào và đầu ra cho mạch giao động RTC(rill time clock)

- Chân số 11,12 sử dụng thạch anh XTAL1,XYAL2 là đầu vào và đầu ra cho mạchdao động nội bộ

- Chân số 26 _ RTCK :Trả lại đồng hồ kiểm tra đầu ra Extra tín hiệu được gửi đếncổng JTAG Hỗ trợ gỡ rối đồng bộ hóa khi bộ xử lý tần số khác nhau

- Chân số 27 _ DBGSEL được chọn: khi ở mức thấp, một phần hoạt động bình thường Khi bên ngoài kéo lên mức cao , P0.27 để P0.31 được cấu hình như JTAG cảng và một phần là ở chế độ Debug

- Chân số 6 _ RST_ Khi chân này được đưa về mức thấp thì thiết bị bị sẽ được reset, gây ra cổng I / O và thiết bị ngoại vi để đưa vào trạng thái mặc định của họ và thực hiện xử lý bắt đầu tại địa chỉ 0 TTL với thời gian trễ 5 V là đủ

II.6 : CÁC CHỨC NĂNG PORT 0

- P0.0 : chân 13 của LPC 2103

+ Tổng giám mục đích đầu vào / đầu ra kỹ thuật số pin

+ TXD0 - phát đầu ra cho UART0

+ MAT3.1 - PWM ra 1 cho Timer 3

- P0.1 : chân 14 của LPC 2103

Trang 13

+ Tổng giám mục đích đầu vào / đầu ra kỹ thuật số pin

+ RXD0 - phát đầu ra cho UART0

+ MAT3.2 - PWM ra 2 cho Timer 3

+ CAP0.1 : Bắt đầu vào cho Timer 0, kênh 1

Trang 14

+ MOSI0 : Dữ liệu đầu ra từ SPI chủ hoặc dữ liệu đầu vào từ SPI thiết bị

+ CAP0.2 - Bắt đầu vào cho Timer 0, kênh 2

+Tổng giám mục đích đầu vào / đầu ra kỹ thuật số pin

+ RTS1 : Yêu cầu đầu ra cho UART1 gửi

+ CAP1.0 : Bắt đầu vào cho 1 Timer, kênh 0

+ AD0.3 : ADC 0, đầu vào 3

- P0.11 : chân 36 của LPC 2103

+Tổng giám mục đích đầu vào / đầu ra kỹ thuật số pin

+ AD0.4 - ADC 0, đầu vào 4

Trang 15

+ CAP1.1 : Bắt đầu vào cho Timer 1, kênh 1

+ CTS1 :Clear để Gửi đầu vào cho UART1

- P0.12 : chân 37 của LPC 2103

+Tổng giám mục đích đầu vào / đầu ra kỹ thuật số pin

+ DSR1 : Data Set Ready đầu vào cho UART1

+ MAT1.0 : PWM đầu ra cho 1 Timer, kênh 0

+ AD0.5 : ADC 0, đầu vào 5

- P0.13 : chân 41 của LPC 2103

+Tổng giám mục đích đầu vào / đầu ra kỹ thuật số pin

+DTR1 : Data Terminal Ready đầu ra cho UART1

+MAT1.1 :-PWM đầu ra cho Timer 1, kênh 1

- P0.14 : chân 44 của LPC 2103

+Tổng giám mục đích đầu vào / đầu ra kỹ thuật số pin

+DCD1 ; Phát hiện nhà cung cấp dữ liệu đầu vào cho UART1

+ SCK1 : SPI đồng hồ đầu ra từ chủ hoặc đầu vào cho thiết bị

+EINT1 : ngắt ngoài gián đoạn 1 đầu vào

- P0.15 : chân 45 của LPC 2103

+Tổng giám mục đích đầu vào / đầu ra kỹ thuật số pin

+RI1: Ring Chỉ số đầu vào cho UART1

+EINT2 : ngắt ngoài gián đoạn 2 đầu vào

- P0.16 : chân 46 của LPC 2103

+Tổng giám mục đích đầu vào / đầu ra kỹ thuật số pin

+EINT0 - ngoài ngắt 0 đầu vào

+ MAT0.2 - PWM đầu ra cho Timer 0, kênh 2

- P0.17 : chân 47 của LPC 2103

Trang 16

+Tổng giám mục đích đầu vào / đầu ra kỹ thuật số pin.

+ CAP1.2 - Bắt đầu vào cho Timer 1, kênh 2

+ SCL0 : C1 đồng hồ đầu vào / đầu ra

- P0.18 : chân 48 của LPC 2103

+Tổng giám mục đích đầu vào / đầu ra kỹ thuật số pin

+ CAP1.3 - Bắt đầu vào cho Timer 1, kênh 3

+SDA1 :C1 dữ liệu đầu vào / đầu ra pin này là một cống mở ra nếu chức năng được chọn trong các kết nối khối pin

- P0.19 : chân 1 của LPC 2103

+Tổng giám mục đích đầu vào / đầu ra kỹ thuật số pin

+ MAT1.2 - PWM đầu ra cho Timer 1, kênh 2

+ MISO1 : Dữ liệu đầu vào cho SPI chủ hoặc dữ liệu đầu ra từ SPI thiết bị

- P0.20 : chân 2 của LPC 2103

+Tổng giám mục đích đầu vào / đầu ra kỹ thuật số pin

+ MAT1.3 - PWM đầu ra cho Timer 1, kênh 3

+ MOSI1 : Dữ liệu đầu ra cho SPI chủ hoặc dữ liệu đầu vào từ SPI thiết bị

- P0.21 : chân 3 của LPC 2103

+Tổng giám mục đích đầu vào / đầu ra kỹ thuật số pin

+ MAT3.0 - PWM đầu ra cho Timer 3, kênh 0

+ SSEL1 : Thiết bị ngoài chọn SPI1.Chọn giao diện SPI là một thiết bị bên ngoài

để thực thi

- P0.22 : chân 32 của LPC 2103

+Tổng giám mục đích đầu vào / đầu ra kỹ thuật số pin

+ AD0.0 – ADC0, ngõ vào 0

- P0.23 : chân 33 của LPC 2103

Trang 17

+Tổng giám mục đích đầu vào / đầu ra kỹ thuật số pin.

+ AD0.1 – ADC0, ngõ vào 1

- P0.24 : chân 34 của LPC 2103

+Tổng giám mục đích đầu vào / đầu ra kỹ thuật số pin

+ AD0.2 – ADC0, ngõ vào 2

- P0.25 : chân 38 của LPC 2103

+Tổng giám mục đích đầu vào / đầu ra kỹ thuật số pin

+ AD0.6– ADC0, ngõ vào 6

- P0.26 : chân 39 của LPC 2103

+Tổng giám mục đích đầu vào / đầu ra kỹ thuật số pin

+ AD0.7 – ADC0, ngõ vào 7

- P0.27 : chân 8 của LPC 2103

+Tổng giám mục đích đầu vào / đầu ra kỹ thuật số pin

+ TRST - Test thiết lập lại cho giao diện JTAG Nếu DBGSEL là cao, chân này là

tự động cấu hình để sử dụng với EmbeddedICE (Debug chế độ)

+ CAP2.0 - Bắt đầu vào cho 2 Timer, kênh 0

- P0.28 : chân 9 của LPC 2103

+Tổng giám mục đích đầu vào / đầu ra kỹ thuật số pin

+ TMS - Chọn chế độ thử nghiệm cho giao diện JTAG Nếu DBGSEL là cao, chân này là ) tự động cấu hình để sử dụng với EmbeddedICE (Debug chế độ)

+ CAP2.1- Bắt đầu vào cho 2 Timer, kênh 1

- P0.29 : chân 10 của LPC 2103

+Tổng giám mục đích đầu vào / đầu ra kỹ thuật số pin

+TCK - Kiểm tra đồng hồ cho giao diện JTAG Đồng hồ này phải được chậm hơn 1/6 lần của CPU đồng hồ (CCLK) cho giao diện JTAG để hoạt động Nếu DBGSEL

Trang 18

là cao, điều này pin được tự động cấu hình để sử dụng với EmbeddedICE (Debug chế độ)

+ CAP2.2 - Bắt đầu vào cho 2 Timer, kênh 2

- P0.30 : chân 15 của LPC 2103

+Tổng giám mục đích đầu vào / đầu ra kỹ thuật số pin

+TDI - Kiểm tra dữ liệu nhập cho giao diện JTAG Nếu DBGSEL là cao, chân này

là tự động cấu hình để sử dụng với EmbeddedICE (Debug chế độ)

+MAT3.3 - PWM ngõ ra 3 cho Timer 3

- P0.31 : chân 16 của LPC 2103

+ Tổng giám mục đích đầu ra kỹ thuật số pin

+ TDO - Kiểm tra dữ liệu ra cho giao diện JTAG Nếu DBGSEL là cao, chân này

là tự động cấu hình để sử dụng với EmbeddedICE (Debug chế độ)

Phần III : PLL Control Register (PLL0CON & PLL1CON):

III.1 : PLLCON

Chứa các bit để kích hoạt và kết nối PLL Kích hoạt PLL cho phép khóa cấu hình hiệntại (với 2 số M & P) Kết nối PLL làm chip và toàn bộ các chức năng chạy theo xung nhịp từ ngõ ra PLL

Bit Ký hiệu Ý nghĩa Giá trị sau Reset

0 PLLE bit = 1: cho phép kích hoạt PLL 0

và khóa tại tần số yêu cầu

Trang 19

1 PLLC khi PLLE và PLLC = 1 thì PLL được 0

kết nối như nguồn xung cho vi điều khiển

7:2 - Reserved n/a

III.2 : PLL Status Register (PLL0STAT & PLL1STAT):

PLLSTAT là thanh ghi chỉ đọc, nó chứa các giá trị thực sự của bộ PLL tại thời điểm đọc thanh ghi này

Bit Ký hiệu Ý nghĩa Giá trị sau Reset 4:0 MSEL số nhân hiện tại đang được sử dụng bởi bộ PLL 0

6:5 PSEL số chia hiện tại đang được sử dụng bởi bộ PLL 0

7 - Reserved n/a

8 PLLE bit = 1: bộ PLL đang được kích hoạt 0

9 PLLC bit = 1: bộ PLL đang được kích hoạt 0

và kết nối

10 PLOCK bit = 0: PLL chưa được khóa 0

bit = 1: PLL đã được khóa với tần số yêu cầu

15:11 - Reserved n/a

III.3 : PLL Feed Register (PLL0FEED & PLL1FEED)

Sau khi bộ PLL đã được kết nối, mọi thay đổi trong 2 thanh ghi PLLCON &

PLLCFG sẽ

không có tác dụng Để thay đổi cấu hình PLL đã chọn, phải ghi vào thanh ghi

PLLFEED

theo 1 thứ tự xác định:

- Ghi 0xAA vào PLLFEED

- Ghi 0x55 vào PLLFEED

Thao tác ghi phải theo đúng thứ tự, và liền kề nhau

Trang 20

Ví Dụ: tính toán tần số PLL: giả sử tần số thạch anh là 12MHz và tần số chip CCLK

là 60MHz, không sử dụng USB

Fosc: tần số dao động thạch anh

Fcco: tần số dao động của PLL CCO

Bảng giá trị của MSEL & PSEL:

PSEL bits 6:5 của PLLCFG P

Vậy PSEL = 01 và MSEL = 00100

Giá trị ghi vào thanh ghi PLLCFG sẽ là 0x00000024

III.4 : Pulse Width Modulator (PWM):

Trang 21

Bộ tạo xung PWM được thiết kế dựa trên bộ Timer/Counter, hoạt động theo xung PCLK Nguyên tắc hoạt động dựa trên các Match events của 7 match register Có 2 loạixung:

- Single Edge: tất cả các xung đều được set lên 1 ngay khi bắt đầu 1 xung PWM, xung được set về 0 khi giá trị của timer counter bằng với giá trị của 1 trong các

Match register 1-6 Có thể có tối đa 6 xung Single Edge đồng thời, tất cả các xung đều có cùng tần số được điểu khiển bởi Match register 0 (khi giá trị của timer

counter bằng giá trị trong Match register 0 thì kết thúc 1 xung PWM và bắt đầu 1 xung mới)

III.5 : PWM

- Double Edge: các xung được set bằng 0 khi bắt đầu 1 xung PWM, được set lên 1 bằng 1 Match register và set về 0 bằng 1 Match register khác Các xung double

edge cũng có tần số được điều khiển bởi Match register 0

PWM2 & PWM4: double edge

PWM5: single edge

Bảng các kênh PWM:

Kênh Single Edge Double Edge

Set by Reset by Set by Reset by

1 Match 0 Match 1 - -

Trang 22

2 Match 0 Match 2 Match 1 Match 2

3 Match 0 Match 3 Match 2 Match 3

4 Match 0 Match 4 Match 3 Match 4

5 Match 0 Match 5 Match 4 Match 5

6 Match 0 Match 6 Match 5 Match 6

PHẦN IV : CHỌN PHẦN MỀM LẬP TRÌNH CHO CHÍP

Hiện nay có nhiều phần mềm lập trình cho LPC2103 như “Keil uVision4” for ARM đây là phần mềm thông dụng được sử dụng nhiều nhất hiện nay Bên cạnh đó còn có “Raisonance Tools” hay còn gọi là Ride7 dành riêng cho ARM, phần mềm này hỗ trợ khá đầy đủ cho việc lập trình IO,PPL,ADC,PWM cho ARM với việc khaibáo sẵn trong file thư viện (.h), các ví dụ đơn giản trong phần Example Ngoài ra người sử dụng có thể khai báo những thanh gi khác mà không có sẵn trong file thư viện để sử dụng cho những ứng dụng khác

Ở đây chúng ta sử dụng Raisonance Tools để lập trình cho LPC2103

GIAO DIỆN VÀ LẬP TRÌNH CƠ BẢN VỚI “RAISONANCE TOOLS”

Biểu tượng Raisonance Tools

Trang 23

- Giao diện chính:

Ngày đăng: 29/07/2014, 10:08

HÌNH ẢNH LIÊN QUAN

Bảng giá trị của MSEL &amp; PSEL: - Đồ án kỹ thuật lập trình nhúng ARM
Bảng gi á trị của MSEL &amp; PSEL: (Trang 20)
Bảng các kênh PWM: - Đồ án kỹ thuật lập trình nhúng ARM
Bảng c ác kênh PWM: (Trang 21)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w