- Các hàm hỗ trợ việc in các thanh đồ họa theo chiều ngang hoặc chiều dọc Module LCD là một tập thư viện các chương trình con để ghi các xâu ký tự và định dạng các số theo một chuẩn chun
Trang 1Hình 3 -5: Sơ đồ khối của hệ thống tương tự trong PSoC
• Những ngoại vi được tạo bởi khối PSoC tương tự
x Các bộ khếch đại
a Bộ khếch đại INSAMP - Instrumentation Amplifier
- Độ khuếch đại có thể lập trình từ 2 - 16 hoặc lên tới 93 đối với cấu trúc 3
bộ KĐTT
- Trở kháng vi sai đầu vào cao
- Một đầu ra
- Có thể lựa chọn cấu trúc hai hoặc ba bộ KĐTT
Hình 3 - 6: Sơ đồ nguyên lý bộ khuếch đại INSAMP
b Bộ khuếch đại đảo AMPINV - Inverting Amplifier
Trang 2Hình 3 - 7:Sơ đồ nguyên lý bộ khuếch đại đảo
- Độ khuếch đại có thể lập trình từ với 18 cấp, độ khuếch đại tối đa là -47
- Một đầu ra đơn được tham chiếu đối với đất của Analog
c Bộ khuếch đại không đảo PGA - Programmable Gain Amplifier
- Độ khuếch đại có thể lập trình từ với 33 cấp, độ khuếch đại tối đa là 48
- Một đầu ra đơn với điện áp tham chiếu có thể lựa chọn
- Trở kháng đầu vào cao Module PGA là một module KĐTT dựa trên bộ khuếch đại không đảo, độ khuếch đại với độ khuếch đại có thể lập trình được
Bộ khuếch đại này có trở kháng đầu vào cao, băng thông rộng và điện áp tham chiếu có thể lựa chọn được
Hình 3 - 8: Sơ đồ nguyên lý bộ khuếch đại không đảo PGA
x Các bộ chuyển đổi tương tự sang số - ADC
a ADCINC12 - 12 bit Incremental ADC
- Độ phân giải 12 bit, bù 2
- Tốc độ lấy mẫu: 7,8 - 480 mẫu/giây
- Dải đầu vào: AGND V ref
Trang 3- Hỗ trợ chế độ bình thường hoặc chế độ khử hài bậc cao
- Xung nhịp bên trong hoặc bên ngoài
Hình 3-9: Sơ đồ nguyên lý bộ chuyển đổi ADC 12-bit Incremental
b.ADCINCVR - 7 to 13 bit Variable Resolution Incremental ADC
- Độ phân giải 7 - 13 bit, bù 2
- Tốc độ lấy mẫu: 4 - 10000 mẫu/giây
- Dải đầu vào: VSS -VDD
- Xung nhịp bên trong hoặc bên ngoài
Hình 3-10: Sơ đồ nguyên lý bộ ADCINCVR
c DELSIG8 - 8 bit Deltal Sigma ADC
- Độ phân giải 8 bit, bù 2
- Tốc độ lấy mẫu: 32K mẫu/giây
- Dải đầu vào: được định nghĩa bởi các lựa chọn tham chiếu trong hoặc ngoài
- Xung nhịp bên trong hoặc bên ngoài
DELSIG8 là một bộ biến đổi A/D có kiểu tích phân hàng đợi, cần phải có 127
Trang 4chu kỳ tích phân để có được một mẫu ở đầu ra
Hình 3-11: Sơ đồ nguyên lý bộ ADC DelSig8
d DUALADC - Hai bộ ADCINCVR kết hợp với nhau để tạo ra bộ ADC kép
e TRIADC - Ba bộ ADCINCVR kết hợp với nhau để tạo ra ba bộ ADC
f SAR6 - 6 bit Successive Apropximation Register
- Độ phân giải 6 bit
- Sử dụng duy nhất một khối PSoC tương tự
- Thời gian chuyển đổi tiêu biểu là 25ms
- Giao diện lập trình ứng dụng API được tối ưu để đơn giản trong sử dụng
Hình: 3-12 Sơ đồ nguyên lý API
Ngoài ra các khối PSoC số còn coa các bộ chuyển đổi DAC, các bộ lọc, các bộ lựa chọn MUX
x Những User Module được bổ xung
Trang 5a.Module Hiển thị Tinh thể lỏng - LCD
- Sử dụng giao thức theo tiêu chuẩn công nghiệp của HITACHI HD44780
- Chỉ yêu cầu sử dụng 7 chân I/O trên một cổng vào ra
- Các hàm hỗ trợ việc in xâu ký tự trong RAM và ROM
- Các hàm hỗ trợ việc in các số
- Các hàm hỗ trợ việc in các thanh đồ họa theo chiều ngang hoặc chiều dọc Module LCD là một tập thư viện các chương trình con để ghi các xâu ký
tự và định dạng các số theo một chuẩn chung hai hoặc bốn hàng, các thanh đồ họa ngang hoặc dọc được hỗ trợ bằng cách sử dụng những đặc điểm đồ họa hay ký tự của Module LCD này Module này được phát triển đặc biệt dành riêng cho chuẩn công nghiệp của Hitachi HD44780 hai hàng 16 ký tự, nhưng vẫn sẽ làm việc cho nhiều màn hiển thị 4 hàng khác Thư viện này sử dụng chế
độ giao diện 4-bit để tiết kiệm các chân vào ra cho chíp
Hình: 3-13 Sơ đồ chân của LCD
b.Module Truyền thông I2C
- Giao diện theo chuẩn công nghiệp I2C của hãng Philips
- Vận hành ở chế độ Master và Slave, có khả năng hỗ trợ nhiều Master
Trang 6Hình: 3-14 Sơ đồ nguyên lý I 2 C
- Chỉ sử dụng 2 chân (SDA và SCL) để giao tiếp với Bus I2C
- Tốc độ dữ liệu chuẩn là 100/400 kBit/s, hỗ trợ 50 kbit/s
- API xây dựng sẵn khiến cho việc lập trình trở nên dễ dàng
- Chế độ 7 bit địa chỉ, hỗ trợ đến 10 bit địa chỉ Module I2CHW bổ sung một thiết bị I2C dưới dạng phần mềm nhúng, bus I2C là một chuẩn công nghiệp, giao diện phần cứng có hai dây, được phát triển bởi hãng Philip Master khởi tạo tất cả các thao tác truyền thông lên bus I2C và cung cấp xung nhịp cho tất cả các thiết bị Slave Module I2CHW hỗ trợ chế độ chuẩn với tốc
độ lên tới 400 kbit/s Module này không cần sử dụng khối PSoC nào Nó tương thích với các thiết bị Slave khác trên cùng một bus
c Module E2PROM
- Hoạt động theo nguyên tắc của một EEPROM có định h ớng byte
- Có cấu trúc định hướng theo khối
- Sử dụng bộ nhớ hiệu quả Module E2PROM là bộ giả lập bộ nhớ EEPROM trong bộ nhớ Flash của PSoC E2PROM có thể được định nghĩa
điểm bắt đầu tại bất kỳ đường biên của khối Flash nào, với một byte độ dài từ
1 phần dư còn lại của bộ nhớ Flash API cho phép người sử dụng đọc hoặc viết
từ N byte trong một lần đọc Module này là một kỹ thuật phần mềm cùng với phần cứng Flash cho ROM của chíp nên nó không chiếm bất kỳ một tài
Trang 7nguyên phần cứng nào của thiết bị PSoC Bộ nhớ Flash của thiết bị PSoC được
tổ chức dưới dạng 256 khối 64 byte đối với thiết bị 16 K Kỹ thuật Flash của PSoC cho phép đọc từng byte dữ liệu trong bộ nhớ Flash, nhưng khi viết lại thì yêu cầu phải viết cả 64 byte cùng một lúc Vùng lưu trữ của E2PROM phải bắt đầu tại đường biên khối bộ nhớ Flash và có thể bao gồm 1 hoặc nhiều byte Sử dụng các hàm API là E2Read() và E2Write() để đọc và ghi dữ liệu Hàm E2Read() của API đọc bộ nhớ Flash bằng cách sử dụng lệnh ROMX của M8C Lệnh này cho phép đọc bộ nhớ Flash theo từng byte một cách có hiệu quả Nó yêu cầu sử dụng 8 byte cuối cùng của RAM, từ 0xF8 0xFF Hàm E2Write() của API ghi dữ liệu của bộ nhớ Flash theo từng khối, dựa trên địa chỉ đầu của không gian nhớ E2PROM, hàm E2Write() phân tích dữ liệu được viết thành nhiều phần và dựa theo đường biên của từng khối, nó cũng yêu cầu
sử dụng 8 byte cuối cùng của RAM từ 0xF8 0xFF
3.4 Phần mềm phát triển PSoC Designer 4.2
PSoC Designer là phần mềm phát triển hỗ trợ người thiết kế trong việc cấu hình phần cứng và lập trình phần mềm cho các chip PSoC trên máy PC thông thường và sau đó nạp vào chip qua Kit ICE Do điều kiện làm đồ án này không có Kit ICE cho nên tôi dùng bộ MiniDevelopment Kit để nạp chương trình vào chip
Mọi hỗ trợ kỹ thuật và phần mềm miễn phí được cung cấp trên trang chũ của hãng sản xuất Cypress: http://www.cypressmicro.com/ và http://www.cypress.com/
3.4.1 Cấu trúc của PSoC Designer
Phần mềm PSoC Designer được chia làm 3 phần chính:
* Device Editor - Trình soạn thảo cấu hình chip
* Application Editor - Trình soạn thảo ứng dụng
Trang 8* Debugger - Trình gỡ rối
3.4.2 Các kiểu file và đuôi mở rộng
Khi bạn tạo một dự án thì một thư mục gốc với 3 thư mục con sẽ được tạo ra tại vị trí mà bạn định trước Tên của thư mục gốc lấy theo tên của dự án, tên của 3 thư mục con là lib(Librarian), obj(Objects), output(chứa file nạp xuống chip)
3.4.3 Tạo một dự án trong PSoC Deisigner
a Tạo một dự án hoàn toàn mới
Ban đầu để chạy PSoC Designer thì chỉ việc kích đúp vào biểu tượng PSoC Designer.exe Khi đó để cấu hình cho chip những chức năng mong muốn thì trước hết ta phải tạo một thư mục cho dự án để chứa các tệp của dự án
3 Sau khi chạy chương trình sẽ xuất hiện cửa sổ Start, khi đó ta kích
vào nút Start New Project để tạo ra một dự án mới
Hình 3-15: Cửa sổ khởi động chương trình
3 Khi đã nhấn vào nút Start New Project thì trên màn hình xuất hiện
cửa sổ New Project Khi đó ta chỉ việc đánh tên của dự án vào phần New
Trang 9Project name và định vị cho dự án tại mục New Project location bằng cách gõ
đường truyền hoặc nhấn nút Browse
Hình 3-15: Cửa sổ khởi tạo chương trình mới
3 Khi thực hiện xong thì nhấn vào nút Next Khi đó sẽ xuất hiện hộp
thoại Creat New Project Trong phần Family ta chọn họ chip, trong phần Part
ta chọn loại chip thích hợp trong họ chip đó Trong phần Generate “Main” file
using ta chọn ngô ngữ lập trình là C hay Assembly
3 Sau khi hoàn tất thì nhấn nút Finish để kết thúc khi đó ta đã tạo ra
một dự án hoàn toàn mới
b Tạo một dự án dựa trên những thiết kế có sẵn
Ta có thể tạo ra một dự án mới dựa trên những thiết kế đã được xuất thành file Một cấu hình có thể nạp lại bao gồm một hay nhiều User Module
đã được sử dụng với những thông số xác định Tính năng này giúp bạn sử dụng lại những tham số của cấu hình trước hiệu quả và tiết kiệm thời gian Khi
đó bạn tiến hành các bước sau:
3 Bắt đầu bạn tiến hành như khi tạo ra một dự án hoàn toàn mới nhưng
trong hộp thoại New Project bạn chọn Designe - Based Project trong phần
Select Method Nhập tên cho dự án và định vị nơi lưugiữ dự án
3 Chọn Next khi đó sẽ xuất hiện hộp thoại hỏi bạn là có muốn tạo thư
Trang 10mục mới cho dự án với tên mới hay không? chọn Yes
3 Trong hộp thoại Designed Based Project chọn Designed Brows để
link đến dự án đã có sẵn mà ta muốn sao chép lại ở dự án mới này Khi đó bạn cũng có thể thay đổi được họ chip điều khiển và ngôn ngữ lập trình bằng cách vào phần Select Base Part
Hình 3-16: Cửa sổ khởi tạo chương trình theo thiết kế đã có sẵn
3 Sau đó thì nhấn nút finish để hoàn tất công việc và khi đó bạn đã tạo
ra một dự án mới dựa trên một thiết kế đã có sẵn
3.4.4 Trình soạn thảo cấu hình chip - Device Editor
1 Lựa chọn User Module
Lựa chọn User Module cho ứng dụng của bạn là bước đầu tiên cần phải làm để cấu hình cho chip Một User Module là một chức năng được cấu hình trước và nó sẽ làm như là một ngoại vi trên chip
Để truy nhập vào Device Editor, nhấn nút khi đó PSoC Designed sẽ
mở chế độ lựa chọn User Module Khi đó tuỳ thuộc vào chức năng của từng Module và yêu cầu bài toán điều khiển của bạn mà bạn gọi các Module ra bằng cách nhấn đúp vào Module cần lựa chọn
Trang 11Hình 3-17: Cửa sổ thiết lập phần cứng chương trình
Sau khi đã lựa chọn những User Module cần thiết ta chuyển sang chế độ Interconnection View bằng cách nhấn nút
2 Cách đặt một User Module
Khi muốn sử dụng một User Module thì ta phải đặt nó vào trong các khối tài nguyên của chip bằng cách:
ế. Click đơn vào User Module được lựa chọn, khi đó Module được chọn
sẽ có một khối chức năng(hoặc hai khối tuỳ thuộc vào cấu hình của Module
đó) sáng lên
ế Ta nhấn vào nút Next Allowed Placement để chuyển khung sáng sang vị trí hợp lý cuối cùng bạn nhấn nút để định vị tại khối chức năng của Module
ế Nếu muốn gỡ bỏ User Module nào thì chỉ cần chọn User Module đó nhấn chuột phải và chọn vào nút Unplace Một số User Module không sử dụng đến khối tài nguyên như LCD, I2C… vì vậy không cần định vị
3 Chọn thông số cho chip