quocbao gửi vào
- 33103 lượt xem
Hình ảnh của Intel Galileo
Tổng quan
Galileo là một bo mạch vi điều khiển dựa trên bộ xử lí ứng dụng Intel Quark SoC X1000 - một bộ xử lí thuộc dòng Pentium 32bit system-on-chip (datasheet) (tích hợp tất cả các thành phần hệ thống vào trong 1 chip xử lí duy nhất). Galileo là bo mạch tương thích với Arduino đầu tiên dựa trên Intel Architecture. Cả phần cứng lẫn phần mềm của Galileo đều tương thích với các Arduino Shield vốn được thiết kế cho Arduino UNO R3 với chuẩn chân cắm Arduino 1.0 pinout.
Galileo có thể chạy được các shield của Arduino ở cả 2 mức điện áp 3.3V và 5V mặc dù điện áp hệ thống của nó chỉ là 3.3V. Galileo có được điều này là nhờ các bộ chuyển đổi điện áp được tích hợp ngay trên bo mạch. Theo mặc định, Galileo chạy shield ở mức 5V và có thể chuyển xuống 3.3V bằng cách thay đổi các chân cắm (jumper) trên mạch.
Ngoài các tương thích về mặt phần mềm lẫn phần cứng với nền tảng Arduino, Galileo cũng hỗ trợ các chuẩn giao tiếp trên máy tính cá nhân hiện nay. Vì vậy, Galileo có thể giao tiếp với nhiều thiết bị khác ngoài các shield trong hệ sinh thái Arduino. Mặc định, trên bo mạch Galileo hỗ trợ:
- Cổng full sized mini-PCI Express.
- Cổng Ethernet 100Mb.
- Khe cắm thẻ nhớ Micro-SD.
- Cổng Serial RS-232.
- Cổng USB Host và USB Client.
- 8MB bộ nhớ NOR Flash mặc định trên mạch.
Đây là bo mạch đầu tiên trong họ hàng của Arduino có khe cắm mini-PCI Express half-sized lẫn full-sized.
Hãy xem qua trang FAQ của Intel Galileo để biết thêm chi tiết.
Cấu trúc của Galileo
Bắt đầu với Galileo
Để bắt đầu với Galileo, bạn chỉ đơn giản là cấp nguồn DC 5V (12V đối với Intel Galileo Gen 2) cho mạch bằng adapter đi kèm. Cổng Micro-USB (USB Client) cho phép bạn kết nối Galileo với máy tính.
Galileo cũng có một diễn đàn riêng để mọi người có thể thảo luận về các vấn đề liên quan. Bạn có thể truy cập nó tại http://www.intel.com/support/go/galileo.
Chi tiết và Thông số kĩ thuật
Các tính năng hỗ trợ cho Arduino Shield
Galileo tương thích với các Arduino UNO shield và được thiết kể để làm việc với các shield chạy ở cả 2 mức điện áp 3.3V và 5V. Giống như Arduino UNO phiên bản 3, Galileo có:
- 14 chân Digital I/O, trong đó 6 chân có thể phát xung PWM. Chúng có thể được sử dụng ở cả 2 chế độ INPUT và OUTPUT, sử dụng được với các hàm pinMode(), digitalWrite() và digitalRead() như trên các mạch Arduino.
- Các chân giao tiếp có thể hoạt động ở 2 mức điện áp 3.3V và 5V. Dòng cấp tối đa là 10mA, dòng đỉnh là 25 mA.
- Mỗi chân đều có một điện trở pull-up trong có trị số khoảng 5.6k đến 10k ohms. Mặc định, các điện trở này bị ngắt.
- 6 chân Analog từ A0 đến A5 giao tiếp qua chip AD7298 (chuyển đổi Analog-to-Digital) (datasheet).
- Mỗi chân Analog có thể cung cấp độ phân giải 12bit với 4096 giá trị khác nhau.
- I2C bus, TWI với 2 chân SDA và SLC nằm cạnh chân AREF.
- TWI: gồm 2 chân SDA (A4) và SCL (A5). Hỗ trợ giao tiếp TWI thông qua thư viện Wire tương tự như trên Arduino.
- SPI: chạy ở xung mặc định là 4Mhz để làm việc với các Arduino shield, có thể lập trình lên đến mức 25Mhz.
Chú ý
Dù Galileo có SPI Controler riêng nhưng nó chỉ hoạt động như là một SPI Master, không phải SPI Slave. Do đó, Galileo không thể là một SPI Slave cho một SPI Master khác. Galileo chỉ có thể là một thiết bị slave khi được kết nối với máy tín qua cổng USB Client.
- UART (cổng Serial): là một cổng UART với tốc độ có thể lập trình được, 2 chân giao tiếp là 0 (RX) và chân 1 (TX)
- ICSP (SPI): gồm 6 chân tích hợp Serial Programming dùng để kết nối với các shield. Các chân này hỗ trợ giao tiếp SPI thông qua thư viện SPI.
- VIN: chân cấp nguồn cho Galileo khi nó sử dụng nguồn ngoài (trái ngược với điện áp chuẩn 5V từ chân cắm nguồn). Bạn có thể cấp nguồn cho Galileo từ chân này, hoặc, nếu cấp nguồn từ chân cắm nguồn phía trước, bạn có thể lấy ra điện áp chuẩn 5V từ chân này.
Chú ý
Dù Galileo có SPI Controler riêng nhưng nó chỉ hoạt động như là một SPI Master, không phải SPI Slave. Do đó, Galileo không thể là một SPI Slave cho một SPI Master khác. Galileo chỉ có thể là một thiết bị slave khi được kết nối với máy tín qua cổng USB Client.
- Chân 5V output: chân này cấp nguồn ra 5V từ nguồn ngoài cấp cho Galileo hay từ nguồn USB. Dòng ra tối đa ở chân này cho các shield là 800mA.
- Chân 3.3V output: cấp điện áp ra 3.3V được điều chế từ các mạch điều áp trên Galileo. Dòng ra tối đa ở chân này cho các shield là 800mA.
- GND: chân nối cực âm của nguồn điện.
- IOREF: cho phép các shield điều chỉnh hoạt động phù hợp với điện áp hoạt động trên Galileo. Chân IOREF được kiểm soát bởi các jumper trên mạch để lựa chọn 2 mức điện áp làm việc của shield là 3.3V và 5V.
- RESET: chân/nút nhấn RESET.
- Kéo chân này xuống GND để reset chương trình Arduino đang chạy trên Galileo. Thường chân này được dùng để reset các shield
- AREF: không được sử dụng trên Galileo. Trên Arduino, chân này cung cấp một điện áp tham chiếu ngoài cho các chân đọc tín hiệu analog.
- Galileo không thể điều chỉnh điện áp đỉnh (upper end) của độ rộng tín hiệu analog đi vào bằng chân AREF hay hàm analogReference().
Hãy xem qua Audio Sample Sequencer của dự án mà Arduino Verkstad đã mua tại Maker Faire Roma của gian hàng Intel Galileo.
Chi tiết về các tính năng hỗ trợ Intel Architecture
Các bộ xử lí của Intel và các tương thích I/O của SoC đi kèm cung cấp hầu như tất cả các tính năng cần thiết cho cộng đồng người dùng cũng như tầng lớp học sinh sinh viên. Điều này cũng cực kì hữu ích cho các nhà nghiên cứu chuyên nghiệp - những người luôn có những khát khao từ các môi trường lập trình giá rẻ và hiệu quả đến những thiết kế vi xử lí Intel Atom hay những thết kế dựa trên Intel Core-processor như Galileo:
- Bộ xử lí 400Mhz Intel Pentium 32bit tương thích với kiến trúc tập lệnh ISA (ISA-compatible).
- 16KB bộ nhớ đệm L1.
- 512KB bộ nhớ SRAM on-die embedded.
- Dễ dàng lập trình: đơn luồng, đơn nhân, xung nhịp cố định (single thread, single core, constant speed).
- Mạch thời gian thực tích hợp (RTC intergrated) với 1 pin nút áo 3V.
- Cổng kết nối 10/100 Ethernet.
- Cổng PCI Express mini-card với chuẩn PICe 2.0.
- Có thể hoạt động với card mini-PCIe half-sized với tùy chọn chuyển đổi.
- Cung cấp cổng USB 2.0 Host tương đương ở cổng mini-PCIe.
- Cổng kết nối USB 2.0 Host.
- Hỗ trợ tới 128 thiết bị USB đầu cuối.
- Cổng kết nối USB Client dùng để lập trình.
- Ngoài chức năng là một cổng lập trình, nó cũng có thể đóng vai trò như một USB Host chuẩn 2.0.
- 10 chân header chuẩn JTAG hỗ trợ việc dò lỗi hệ thống.
- Nút Reboot dùng để reboot vi xử lí trung tâm.
- Nút reset dùng để reset chương trình Arduino đang chạy hay bất kì shield nào đang kết nối.
- Tùy chọn lưu trữ:
- 8MB Legacy SPI Flash dùng để lưu trữ firmware hay bootloader cũng như chương trình Arduino. Khoảng 256KB đến 512KB được tách ra từ 8MB này để lưu trữ chương trình Arduino cuối cùng được tải lên. Các chương trình Arduino được tải lên từ máy tính được xử lí một cách tự động, bạn không cần phải thao tác gì trừ khi có một sự thay đổi nào đó được thêm vào firmware.
- 512KB bộ nhớ SRAM nhúng được mở mặc định bởi firmware.
- 256MB DRAM được mở mặc định bởi firmware.
- Tùy chọn thẻ nhớ ngoài SD có thể cung cấp lên tới 32GB dung lượng lưu trữ.
- Lưu trữ USB có thể làm việc với bất kì ổ đĩa USB 2.0 nào tương thích.
- 11KB EEPROM có thể được lập trình qua thư viện EEPROM.
Sơ đồ nguyên lí, Thiết kế tham khảo và Sơ đồ chân
Sơ đồ nguyên lí: Galileo Intel Quark X1000
File Cadence Allegro: Galileo Reference Design
Năng lượng
Được cung cấp bởi bộ chuyển đổi AC-to-DC adaper, kết nối với Galileo qua jack cắm 2.1mm (cực dương ở giữa). Điện áp sử dụng là 5V và cường độ dòng điện có thể đạt đến 3A.
Tóm tắt các thông số về điện
Thông số | Giá trị |
Điện áp đưa vào (khuyên dùng) | 5V |
Điện áp đưa vào (giới hạn) | 5V |
Số chân Digital I/O |
14 (6 chân PWM) |
Số chân Analog | 6 |
Dòng tối đa ở tất cả các chân I/O | 80mA |
Dòng tối đa ở chân 3.3V | 800mA |
Dòng tối đa ở chân 5V | 800mA |
Giao tiếp
Galieo có thể dễ dàng kết nối với máy tính, mạch Arduino hay các vi điều khiển khác bằng nhiều phương thức:
- Galieo cung cấp giao tiếp UART TTL Serial ở cả 2 mức 3.3V và 5V ở 2 chân 0 (RX) và 1 (TX). Thêm vào đó, 1 cổng UART khác hỗ trợ RS-232 có thể được sử dụng qua jack cắm 3.5mm.
- Cổng USB Client cho phép giao tiếp Serial (CDC-ACM) qua USB. Nó cung cấp cho bạn kết nối Serial đến Serial Monitor (một chức năng trong IDE) hoặc các ứng dụng khác trong máy tính của bạn. Bạn cũng có thể tải chương trình Arduino lên Galieo qua cổng này.
- Cổng USB Host cho phép Galieo kết nối tới các thiết bị khác như chuột, bàn phím, điện thoại thông minh,... với vai trò là một USB Host.
- Galieo là mạch Arduino đầu tiên cung cấp một cổng mini PCI Express (mPCIe). Cổng này cho phép kết nối các module mPCIe full-size lẫn half-sized (với adapter) cũng như cung cấp thêm một cổng USB Host khác. Một module chuẩn mPCIe có thể kết nối và cung cấp cho Galieo nhiều ứng dụng như WiFi, Bluetooth hay kết nối mạng di động. Bước đầu, cổng mPCIe sẽ hỗ trợ thư viện WiFi. Xem Intel Galieo Getting Started Guide để biết thêm thông tin.
- Cổng kết nối Ethernet RJ45 cho phép Galieo kết nối đến các mạng có dây. Giap tiếp Ethernet được hỗ trợ đầy đủ trên Galieo, do đó bạn không cần phải sử dụng giao tiếp SPI như trên Arduino shield.
- Đầu đọc thẻ nhớ microSD tích hợp trên mạch có thể được truy cập thông qua thư viện SD. Giao tiếp giữa Galieo và thẻ nhớ microSD được hỗ trợ bởi một trình điều khiển SD tích hợp, do đó bạn không cần phải sử dụng giao tiếp SPI như trên mạch Arduino. Giao tiếp SD có thể chạy với tần số đến 50Mhz phụ thuộc vào Class của thẻ nhớ. Thẻ nhớ có 2 loại Class thông dụng là Class 4 và Class 10.
- Phần mềm như trên Arduino bao gồm thư viện Wire giúp bạn dễ dàng sử dụng bus I2C/TWI.
- Với giao tiếp SPI, hãy sử dụng thư viện SPI.
Lập trình
Galieo có thể được lập trình với IDE của Arduino. Khi đã sẵn sàng để tải chương trình của mình lên, hãy kết nối máy tính của bạn với Galieo qua cổng USB Client (gần cổng Ethernet nhất) trên mạch, trong IDE hãy chọn Boards là "Intel Galieo".
Thay vì phải bấm nút reset trên mạch để tải chương trình lên, Galieo được thiết kế để có thể reset bởi software chạy trên máy tính đang lập trình nó. Khi Galieo khởi động, sẽ có 2 kịch bản xảy ra:
- Nếu đã có 1 chương trình trong bộ nhớ, nó sẽ được khởi chạy. Trường hợp này chỉ xảy ra khi bạn đã gắn thẻ microSD vào Galileo.
- Nếu không có chương trình nào trong bộ nhớ, Galieo sẽ đợi lệnh tải chương trình lêntừ IDE.
- Nếu không có thẻ microSD, chương trình của bạn sẽ bị mất khi Galileo khởi động lại (reboot).
Khi một chương trình đang chạy trên Galieo, bạn có thể tải một chương trình khác lên mà không cần nhấn nút reset trên mạch: chương trình đang chạy sẽ bị ngừng, Galileo sẽ đợi đến khi chương trình mới được tải lên và khởi chạy nó.
Bằng việc bấm nút reset trên mạch, bạn sẽ khởi động lại chương trình đang chạy, đồng thời cũng reset bất cứ shield nào đang cắm vào Galieo.
Thuộc tính các chân hoạt động ở chế độ OUTPUT
Các chân được đặt chế độ OUTPUT bằng hàm pinMode() sẽ có trạng thái trở kháng thấp. Trên Galieo, khi một chân ở chế độ OUTPUT, các hàm chức năng sẽ được cung cấp qua phần mở rộng I2C-based Cypress I/O. Các chân Digital từ 0 đến 13 và các chân Analog từ A0 đến A5 có thể được thiết đặt chế độ OUTPUT trên Galieo.
Các phần mở rộng của những chân I/O, khi được thiết lập chế độ OUTPUT, có thể hoạt động với cường độ dòng điện đến 10mA và có thể đạt đỉnh 25mA. Trên tất cả các chân OUTPUT, dòng giới hạn là 80mA và dòng đỉnh là 200mA. Bảng sau sẽ cung cấp cho bạn cái nhìn tổng quan về các chân trên Galieo.
Dòng điện hoạt động (mA) |
Dòng điện đỉnh (mA) |
|
Mỗi chân I/O | 10 | 25 |
Các chân Digital 3, 5, 9, 10 ,12, 13 | 40 | 100 |
Các chân Digital 0, 1, 2, 4, 6, 7, 8, 11 và các chân Analog A0 ,A1, A2, A3, A4, A5 cộng lại | 40 | 100 |
Các chân Digital từ 0 đến 13 và Analog từ A0 đến A5 cộng lại | 80 | 200 |
Thiết đặt các jumper trên Galileo
Có 3 jumper trên Gailieo được sử dụng cho nhiều mục đích khác nhau.
IOREF jumper
Để Galileo có thể chạy được các shield ở cả 2 mức 3.3V và 5V, điện áp ở các chân giao tiếp bên ngoài được điều chỉnh bởi các jumper. Khi jumper nối vào mức 5V, Galileo có thể hoạt động với các shield chạy ở 5V và điện áp ở chân IOREF khi đó sẽ là 5V. Khi jumper nối vào mức 3.3V, Galileo có thể hoạt động với các shield chạy ở 3.3V và điện áp ở chân IOREF khi đó sẽ là 3.3V.
Phạm vi điện áp đọc bởi các chân analog cũng được kiểm soát với IOREF jumper và không được vượt quá điện áp hoạt động. Tuy nhiên, hàm analogRead() vẫn giữ độ phân giải 10bit (mặc định, có thể chỉnh lên 12bit) ở mức 5V với 1024 đơn vị hay 0.0049V (4.9mV) mỗi đơn vị bất chấp các cài đặt IOREF jumper của người dùng.
Cảnh báo
IOREF jumper phải được cài đặt đúng với điện áp sử dụng trên Galileo và shield. Các cài đặt không chính xác có thể dẫn tới những hư hại cho Galileo hoặc shield.
I2C Address Jumper
Để ngăn chặn sự trùng lặp địa chỉ giữa các thiết bị I2C Slave của các I/O Expander trên Galileo hay EEPROM với các thiết bị I2C Slave ngoại vi, jumper J2 được sử dụng để thiết đặt nhiều địa chỉ I2C khác nhau cho các thiết bị trên Galileo.
- Khi J2 kết nối với chân số 1 (đánh dấu bởi hình tam giác màu trắng), 7bit địa chỉ của I/O Expander là 0100001 và 7bit địa chỉ của EEPROM là 1010001.
- Đổi vị trí của jumpper, 7bit địa chỉ của I/O Expander sẽ là 0100000 còn của EEPROM là 1010000.
VIN jumper
Trên Galileo, chân VIN được sử dụng để cấp nguồn ngoài 5V, nó cũng được nối với jack nguồn cũng như có thể cấp nguồn cho các shield hay thiết bị khác. Nếu bạn muốn cấp nguồn cho mạch ở mức điện áp lớn hơn 5V cho các shield lấy nguồn từ chân VIN, bạn phải tháo VIN jumper ra để ngắt kết nối chân VIN với nguồn 5V trên Galileo.
Cảnh báo
Nếu VIN jumper chưa được tháo ra, và bạn sử dụng một mức điện áp cao hơn 5V ở chân VIN, Galileo có thể bị hư hại hay gặp phải hoạt động bất thường.
Vị trí các jumper trên Intel Galileo
Reset tự động (Software)
Thay vì phải bấm nút reset trên mạch trước khi tải chương trình lên, Galileo được thiết kế để có thể reset bởi phần mềm chạy trên máy tính đang kết nối với nó. Tín hiệu điều khiển USB CDC-ACM được sử dụng để chuyển Galileo từ chế độ run-time sang chế độ bootloader. Phần mềm Arduino sử dụng khả năng này để cho phép bạn tải chương trình lên chỉ bằng cách nhấn nút Upload trên Arduino IDE.
Để biết thêm chi tiết, hay xem qua Intel Galileo Getting Started Guide.
Đặc điểm vật lí
Galileo có chiều dài 10.67cm và rộng 7.11cm với các cổng USB, jack UART, cổng Ethernet và jack nguồn mở rộng ra ngoài kích thước bo mạch.
4 lỗ bắt vít cho phép mạch có thể được gắn lên các bề mặt hoặc hộp đựng.
Chú ý rằng khoảng cách giữa chân Digital số 7 và số 8 là 4.06mm, trong khi khoảng cách giữa các chân khác là 2.54mm.
Bài viết này có tham khảo từ các nguồn tài liệu tiếng Anh:
- Intel Galileo datasheet do Intel cung cấp tại Intel Galileo Development Board Documents.
- Lời giới thiệu từ đội ngũ phát triển Arduino cho Intel Galileo tại Arduino Certified program.