Hướng dẫn sử dụng phần mềm codevision avr

SỬ DỤNG PHẦN MỀM CODEVISION AVR

Chào các bạn!
Hôm nay mình xin gửi tới các bạn hướng dẫn sử dụng phần mềm lập trình cho AVR: Codevision AVR.
Nếu các bạn chưa có phần mềm này, các bạn có thể tải về tại link sau:
http://hocdientu.vn/threads/download-codevision-2-05-0-phần-mềm-viết-code-cho-avr.308/.

I.Giới thiệu tổng quan.
CodevisionAVR là một trình biên dịch chéo C, môi trường phát triển tích hợp và bộ tạo chương trình tự động được thiết kế cho họ các vi điều khiển AVR của Atmel.
Chương trình có thể chạy trên các hệ điều hành 2000, XP, Vista và Windows 7 32/64 bit.
Bên cạnh các thư viện tiêu chuẩn C, CodevisionAVR còn có các thư viện dành riêng cho:
-Alphanumeric LCD modules
-Philips I2C bus
-National Semiconductor LM75 Temperature Sensor
-Philips PCF8563, PCF8583, Maxim/Dallas Semiconductor DS1302 and DS1307 Real Time Clocks
-Maxim/Dallas Semiconductor 1 Wire protocol
-Maxim/Dallas Semiconductor DS1820, DS18S20 and DS18B20 Temperature Sensors
-Maxim/Dallas Semiconductor DS1621 Thermometer/Thermostat
-Maxim/Dallas Semiconductor DS2430 and DS2433 EEPROMs
-SPI
-TWI for ATxmega chips
-Power management
-Delays
-Gray code conversion
-MMC/SD/SD HC FLASH memory cards low level access
-FAT acces on MMC/SD/SD HC FLASH memory cards.
CodevisionAVR cũng bao gồm bộ tạo chương trình tự động CodeWizardAVR, nơi cho phép bạn viết một chương trình đơn giản chi trong vài phút, gồm các hàm sau:
-Thiết lập truy cập bộ nhớ ngoài
-Chip reset source identification
-Khởi tạo các cổng Output/Input
-Khởi tạo các ngắt ngoài (External Interrputs)
-Khởi tạo Timers/Counters
-Khởi tạo Watchdog Timer
-Khởi tạo USART (UART)
-Khởi tạo Analog Comparator
-Khởi tạo ADC
-Khởi tạo giao diện SPI
-Khởi tạo giao diện 2 Wire
-Khởi tạo giao diện CAN
-I2C bus, sensor LM75, DS1621 nhiệt kế/nhiệt độ và PCF8563, PCF8583, DS1302, DS1307 khởi tạo đồng hồ thời gian thực.
-Khởi tạo bus 1 dây và các cảm biến nhiệt độ DS1820/DS18S20

-Khởi tạo module LCD

II. Môi trường phát triển tích hợp CodevisionAVR (IDE).

[​IMG]

Các thanh cơ bản:

-Thanh Menu bar: chứa các tùy chọn cơ bản, gồmFileEdit, Search, View, Project, Tools, Settings, Help.

[​IMG]

-Thanh Project: dùng để complie và build các project.

[​IMG]

-Thanh Tools : chứa các nút dùng để Run CodeWinzardAVR, Run debugger,…

[​IMG]

-Thanh Setting: Chứa các nút dùng để cái đặt cho IDE, Edittor, Debugger, Programmer, Terminal.

[​IMG]

-Thanh View: chứa các tùy chọn thay đổi vị trí các cửa sổ bên dưới.

[​IMG]

-Thanh Help.

[​IMG]

CodevisionAVR IDE bao gồm các cửa sổ:
-Code Navigator
-Code Information
-Function Call Tree
-Cửa sổ lập trình chính
-Code templates
-Clipboard History
-Messages

Thông thường, chúng ta hay dùng các của số: Code Navigator, Cửa sổ lập trình chính, Messages.
1. Làm việc với các files .
Bạn có thể tạo một file nguồn mới bằng cách sử dụng nút File/View hoặc Ctrl/N. Cửa sổ Create New file hiện ra, bạn chọn Source/OK.

[​IMG]

Ta đã có 1 cửa số mới được tạo, tên file mới này mặc định là untitled.c . Bạn có thể sacve file này với 1 tên mới bằng cách sử dụng File/Save As hoăc biểu tượng Save As.

[​IMG]

Chú ý:
Ở trên cùng có đượng dẫn tới file đang hiển thị. Để mở lại fil, bạn tìm theo đường dẫn này.

Các thủ tục lưu, sửa, xóa hay đổi tên file khá đơn giản, các bạn có thể tự tìm hiểu.

2. Làm việc với các Project.
Tạo project mới bằng cách vào File/new, cửa số Create New File hiện ra. Ta chọn Project sau đó chọn OK.

[​IMG]

Cửa số Con firm xuất hiện, ở đây bạn chọn OK để xác nhận tạo 1 project mới.

[​IMG]

Tiếp theo là cửa số CodeWizardAVR dùng để chọn loại chip. Ở đây tôi chọn AT90, AtTiny, Atmega, FPSLIC, cho phép sử dụng các loại vi điểu khiển tương ứng.
Cuối cùng chọn OK để xác nhận.

[​IMG]

Cửa số CodewizardAVR xuất hiện. Trong cửa số này, cho các bạn những tùy chọn thiết lập ban đầu cho vi điểu khiển của mình.

[​IMG]

Chúng ta chú ý đến các thẻ ở phía dưới bên trái trước.

[​IMG]

o Thẻ Chip: với các tùy chọn loại chip, chọn xung Clock, Clock Prescaler Divider, và Check Reset Source

Ở đây tôi chọn Atmega8 với Clock 8Mhz.

[​IMG]

o Thẻ Ports: ở đây đã có các port tương ứng với loại vi điểu khiển bạn chọn. trong trường hợp này, tôi đã chọn Atmega8 nên các Port gồm B,C,D. Ở mỗi Port lại có các tùy chọn, giúp bạn chọn chiều của port (Data Direction) và giá trị của Port đó (Pullup/Output Value).
Với Data Direction: Out là đầu ra, In là đầu vào
Với Pullup/Output Value: 0 là mức thấp, 1 là mức cao, P là có trở treo, T là không dùng trở treo.

[​IMG]

Ví dụ ở đây: PORTB.1 là Input và không dùng trở treo, PORTB.2 là Output và ở mức thấp

Các Port khác làm tương tự.

o Thẻ Externa IRQ: Thẻ này cho phép chọn ngắt.

[​IMG]

Ứng với mỗi vi điều khiển lại có số lượng ngắt khác nhau, ở đây tôi chọn Atmega8 vì thế chỉ có 2 ngắt là INT0 và INT1.

Tích vào ngắt bạn chọn, sẽ xuất hiện thêm tùy chọn Mode. Đây là tùy chọn chế độ xảy ra ngắt.

[​IMG]

Có các tùy chọn: Low level (ngắt khi ở mức thấp), Any Change (ngắt với bất kì thay đổi nào), Falling Edge (ngắt khi có xung xuống), Rising Edge (ngắt khi có xung lên).

Hết phần 1.
các bạn có thể xem tiếp phần 2 tại:
http://hocdientu.vn/threads/hƯỚng-dẪn-sỬ-dỤng-phẦn-mỀm-codevision-avr-phần-2.2184/#post-11287 .
Hoặc tải file hướng dẫn full bằng PDF tại:
http://www.fshare.vn/file/DR0ZPN6C7H/

Phần 2:
phần này mình viết tiếp phần 1:
http://hocdientu.vn/threads/hƯỚng-dẪn-sỬ-dỤng-phẦn-mỀm-codevision-avr-phần-1.2185/
o Thẻ Timers .

[​IMG]

Gồm có các thẻ nhỏ: Timer0, Timer1, Timer2, Watchdog. Các thẻ này còn tùy thuộc vào loại vi điều khiển bạn chọn ban đầu.

§Ở Timer0 có các tùy chọn: Clock Source (nguồn clock), Clock Value (giá trị Clokck). Ở đây tôi chọn System Clock, 8000kHz.
Nếu bạn dùng chế độ OverFlow Interrupt thì chọn vào ô đó.
Timer Value là gía trị Timer mà bạn muốn đặt.

Chú ý: Timer value ở dạng hex.
§ Thẻ Timer1
Có các tùy chọn Clock Source, Clock Value

giống với Timer0 . Các bạn để ý tới tùy chọn Mode (chế độ hoạt động của Timer1).

[​IMG]

Mặc định là Nomal top=0xFFFF . Đây là chế độ hoạt động bình thường, có chức năng định thời giống với Timer0. Các chức năng còn lại chủ yếu liên quan tới phát xung PWM, các bạn có thể tự tìm hiểu.
Nếu chọn 1 mode (chức năng) liên quan tới PWM, các bạn cần chú ý tới Out. AOut. B đây là 2 kênh ra tương ứng của chế độ phát PWM.
2 ô bên dưới là các tùy chọn Input CaptInterrupt on

Với 4 ô nhập giá trị bên dưới, ta có: Value (giá trị của Timer), Inp. Capture (giá trị Input capture ), Comp. A, B.

o Thẻ Alphanumeric LCD: cài đặt cho màn hình LCD
Các bạn chọn vào Enable Alphanumeric LCD support để kích hoạt chức năng này.
Characters/Line: chọn loại màn hình.
Connections: Chọn các chân của vi điểu khiển cho chức năng LCD. Ở đây đã có sẵn tùy chọn các Port, và các bit tương ứng với các port để bạn chọn. Tôi đã chọn các
port như sau:

[​IMG]

o Thẻ ADC: chọn chức năng ADC cho vi điều khiển. Bạn cần chọn ô ADC Enable để mở tính năng này.

[​IMG]

Các tùy chọn:
§ Use 8 bits, Interrputs.
§ Volt. Ref: chọn điện áp tham chiếu.
§ Clock: chọn xung clock.

o Thẻ USART: chọn chế độ USART.

Bạn chọn Receiver nếu muốn nhận, và Transmitter nếu muốn truyền. các ô Rx InterrputTx Interrput tương ứng với ngắt nhận và ngắt truyền.

[​IMG]

Nhấn vào mũi tên[​IMG] nếu muốn thay đổi Baud rate ,và x2 nếu muốn gấp đôi tốc độ.
Các tùy chọn Communication Parameters và Mode, tùy thuộc vào phần cứng của bạn.

[​IMG]

o Thẻ I2C.

[​IMG]

Đầu tiên trong mục I2C Port bạn chọn Port muốn dùng. Giả sử ở đây tôi chọn PORTB.

[​IMG]

Xuất hiện thêm các tùy chọn trong đây.
Đầu tiên, các bạn chú ý đến SDA Bit và SCL Bit,
§ SDA (Serial DATA): đường truyền nhận dữ liệu
§ SCL (Serail Clock): đường truyền xung nhịp
Do ở trên, chúng ta đã chọn Port B nên các Bit chọn ở SDA và SCL là bit của PortB. Chú ý là 2 đường truyền này riêng biệt nên phải khác nhau.

Các thẻ bên dưới là các thẻ tùy chọn dùng module gì, các bạn chọn module phù hợp rồi chọn ô Enable.

o Thẻ 1 Wire: cấu hình cho Bus 1 dây.

[​IMG]

Đầu tiên bạn chọn trong 1 wire PortData Bit để chỉ định Port và Bit cho Bus 1 dây. Nếu sử dụng các cảm biến đo nhiệt độ DS1820/DS18S20 bạn chọn và ô Enable bên dưới. Trường hợp muốn dùng vài cảm biến DS1820/DS18S20 kết nối đến 1Wire Bus, cần chọn ô Multuple Devices. Có tối đa 8 thiết bị DS1820/DS18S20 được kết nối tới bus.

o Thẻ (TWI) I2C: chuẩn truyền thông Two Wire Bus.

[​IMG]

Các bạn chọn vào Two Wire Enable để mở tính năng này. Xuất hiện thêm các tùy chọn.
Nếu bạn chọn Generrate Acknowledge Pulse, xung ACK trên Two wire bus sẽ được tạo ra nếu một trong các trường hợp sau xảy ra: địa chỉ riêng của slave được nhận hoặc một lệnh General Call được nhận và General Call Recognition được check.
Ô Slaver Address đặt địa chỉ cho Slave. Ô General Call Recognition cho phép công nhận lệnh General Call cho Two Wire Bus.
Tiếp theo là Bit Rate, cho phép bạn chọn tần số tối đa của xung tại dây SCL. Nó ảnh hưởng đến giá trị của thanh ghi TWBR

Nếu bạn chọn ô Two Wire Interrupt, giao diện Two Wire sẽ tạo ra các ngắt.

o Thẻ Bit-Banged: cấu hình cho các thiết bị ngoại vi bằng cách sử dụng phương thức bit-ranging.

[​IMG]

Đầu tiên các bạn chọn Port để chỉ định dùng Port nào cho kết nối với DS1302
Các tùy chọn I/O Bit , SCLK Bit , và CE (/RST) Bit cho phép bạn chọn các bit của port cho từng bit tương ứng.

Chọn chức năng Trickle Charge bằng cách chọn vào Enable, số Diodes tương ứng với giá trị điện trở, có thể được xác định bằng ô Trickle Charge/Diodes , tương ứng với Trickle Charge/ Resistor.

o Thẻ Analog Comparator : để chỉ định cấu hình analog comparator
Chọn vào ô Analog Comparator Enable để mở chức năng này.

[​IMG]

§ Bandgap Voltage Reference.
§ Negative Input Multiplexer.
§ Analog Comparator Input Capture.
§ Analog Comparator Interrupt.

o Thẻ Project Infamation: chứa các tùy chọn về thông tin project của bạn.

[​IMG]

Bạn chỉ cần điền các thông tin vào thẻ này, khi lưu project, các thông tin này sẽ tự động được in ra ở trên cùng của project. Rất thuận tiện cho việc kiểm tra.

3. Hoàn thành quá trình tạo Project

Sau khi đã cài đặt xong cho vi điều khiển, các bạn có thẻ xem trước bằng cách vào Program/Preview.

[​IMG]

Các bạn nhìn vào ô Program Preview, đây là các code sinh ra sẵn tương ứng với các tùy chọn cảu bạn đã thực hiện trước đó.
Giờ bạn có thể lưu project này bằng vào File/Generate program , save and exit.

Do trong 1 project của CodeWizardAVR có rất nhiều file khác nhau, bạn nên tạo hẳn 1 thư mục mới và đặt tên dễ hiểu để có thể quản lý tốt project của mình.
Cửa sổ mới hiện lên, đầu tiên là lưu file có đuôi “.cwp”. Ở đây tôi đặt tên là sample1.

[​IMG]

Tiếp theo là cửa sổ Save C Complier Source File lưu file “.c”.

[​IMG]

Tiếp theo là lưu file có đuôi “.prj”

Ở project này, tôi đặt tên cho 3 file này cùng một tên (Chú ý: cùng tên nhưng khác đuôi).
Xuất hiện cửa số soạn thảo.

[​IMG]

Chúng ta sẽ lập trình trên file “.c”. Cụ thể ở đây là file “sample1.c” mà tôi đã đặt tên.
Chú ý: bên trái thẻ sample1.c là thẻ Notes như một trang note đơn giản, cho phép bạn viết nhân các chú ý của mình.

Nhìn vào cửa số lập trình chình, đầu tiên các bạn sẽ thấy các ghi chú (không có ý nghĩa trong code). Ở đây là các thông tin cơ bản của vi điều khiển:

[​IMG]

Bên dưới là các dòng lập trình chính.
Các bạn đã có thể lập trình cho Vi điều khiển của mình.

Chúc các bạn thành công!

Các bạn có thể tải file hướng dẫn full bằng PDF tại:
http://www.fshare.vn/file/DR0ZPN6C7H/