Bảng 2. 12: Chức năng các chân ESP8266.
Thứ tự
Tên tín
hiệu I/O Mô tả
1 VDDA Ngu
ồn Điện áp tương tự từ 2.5 V– 3.6V
2 LNA I/O Cổng giao tiếp RF.
Trở kháng đầu ra chip z=39 + j6 Ω
3 VDD3P3 Ngu
ồn Điện áp khuếch đại 2.5 V– 3.6V
4 VDD3P3 Ngu
ồn Điện áp khuếch đại 2.5 V– 3.6V
5 VDD_RTC Ngu
ồn NC (1.1V)
6 TOUT I Chân ADC. Chân này được sử dụng để kiểm
tra điện áp cung cấp điện của VDD3P3 và điện áp đầu vào của TOUT.
Mức cao: bật, chip hoạt động bình thường. Mức thấp: tắt, dòng điện nhỏ tiêu thụ
8 XPD_DCD
C I/O GPIO16
9 MTMS I/O GPIO16; HSPI_CLK
10 MTDI I/O GPIO12; HSPI_MISO
11 VDDPST Ngu
ồn Điện áp cũng cấp IO và điện áp số (1.8V – 3.6V)
12 MTCK I/O GPIO13; HSPI_MOSI; UART0_CTS
13 MTDO I/O GPIO15; HSPI_CS; UART0_RTS
14 GPIO2 I/O UART Tx trong quá trình lập trình
Flash; GPIO2
15 GPIO0 I/O GPIO0; SPI_CS2
16 GPIO4 I/O GPIO4
17 VDDPST Ngu ồn Điện áp cũng cấp IO và điện áp số (1.8V – 3.6V) 18 SDIO_DA T A_2
I/O Kết nối với chân SD_D2; SPIHD; HSPIHD; GPIO9
19 SDIO_DA
T A_3
I/O Kết nối với chân SD_D3; HSPIWP; GPIO10
20 SDIO_CM
D I/O Kết nối với chân SD_CMD; SPI_CS0;GPIO11
21 SDIO_CL
K I/O Kết nối với chân SD_CLK; SPI_CLK; GPIO6
22 SDIO_DA
T A_0
I/O Kết nối với chân SD_D0; SPI_MISO; GPIO7
23 SDIO_DA
T A_1
I/O Kết nối với chân SD_D1; SPI_MOSI; GPIO8
25 U0RXD I/O UART Rx trong quá trình Flash; GPIO3
26 U0TXD I/O UART Tx trong quá trình Flash;
GPIO1; SPI_CS1
27 XTAL_OU
T I/O Kết nối với đầu ra thạch anh, có thể sử dụng để cung cấp BT đầu vào xung clock.
28 XTAL_IN I/O Kết nối với ngõ vào thạch anh
29 VDDD Ngu
ồn Điện áp tương tự 2.5V – 3.6V
30 VDDA Ngu
ồn Điện áp tương tự 2.5V – 3.6V
31 RES12K I Kết nối với điện trở 12 KΩ và kết nối với đất
32 EXT_RST
B I Tín hiệu đặt lại bên ngồi (hoạt động ở mức thấp)
2.2.7. Module Sim900A
Những dự án xây dựng các hệ thống điều khiển từ xa, gửi nhận dữ liệu thu thập từ các cảm biến... ở những nơi khơng có internet thì sử dụng sóng điện thoại là giải pháp duy nhất vì chi phí rẻ, bất chấp khoảng cách và độ ổn định cao. Với Module sim 900a kết hợp với mạch xử lý arduino uno hoặc mega các bạn có thể làm được nhiều hệ thống tương đối tốt có thể ứng dụng vào thực tế như bộ định vị, các hệ thống điều khiển thiết bị từ xa qua điện thoại, sms makerting,...
Hình 2.14: Module Sim 900A.
25
CHƯƠNG 2. CƠ SỞ LÝ THUYẾT
Hỗ trợ:
o Nghe gọi.
o Gửi - nhận tin nhắn SMS.
o Với mức điện áp hoạt động 5VDC - Chuẩn điện áp thông dụng nhất với các loại vi điều khiển và cả giao tiếp máy tính, cùng với tính ổn định cao và đơn giản về sử dụng, module SIM900A n ày rất thích hợp cho các ứng dụng thực tế liên quan đến nghe gọi, SMS, DTMF…
Thông tin kĩ thuật:
o Điện áp hoạt động: 4.5 - 5 VDC - Dòng khuyến nghị: > 2A. o Giao diện: TTL.
o Sơ đồ chân:
• VCC: Nguồn vào 5V.
• TXD: Chân truyền Uart TX. • RXD: Chân nhận Uart RX. • Headphone: Chân phát âm thanh.
• Microphone: Chân nhận âm thanh (phải gắn thêm Micro từ GND vào chân này thì mới thu được tiếng).
• GND: Chân Mass, cấp 0V.
Kết nối với Arduino
Hình 2. 15: Kết nối Module Sim 900A với arduino.
CHƯƠNG 2. CƠ SỞ LÝ THUYẾT
43
Modul sim900a mini hàn thêm diot vào chân vcc và tụ 2200uF/10V để sử dụng được nguồn 5v từ mạch arduino.
5V nối với chân 5V của board Arduino. GND nối với chân GND của board Arduino.
TX nối với chân 51/2 của board Arduino MEGA/UNO. RX nối với chân 50/3 của board Arduino MEGA/UNO. PWR: Đây là chân bật tắt modul sim900a.
SPK: Chân này cần kết nối nếu bạn muốn xuất âm thanh ra loa thoại. MIC: Chân này cần kết nối nếu bạn muốn tạo mic để đàm thoại.
2.2.8. Đồng hồ thời gian thực DS1307
IC DS1307 là chip đồng hồ thời gian thực (RTC: Real-time clock), khái niệm thời gian thực ở đây được dùng với ý nghĩa thời gian tuyệt đối mà con người đang sử dụng, tính bằng giây, phút, giờ. DS1307 là một sản phẩm của Dallas Semiconductor. Chip này có 7 thanh ghi 8 bit chứa thời gian là: giây, phút, giờ, thứ, ngày, tháng, năm. Ngoài ra DS1307 cịn có 1 thanh ghi điều khiển ngõ ra phụ và 56 thanh ghi trống có thể dùng như RAM. DS1307 được đọc và ghi thông qua giao diện nối tiếp I2C (TWI của AVR) nên cấu tạo bên ngoài rất đơn giản. DS1307 xuất hiện ở 2 gói SOIC và DIP có 8 chân như trong hình sau.
Hình 2. 16: Hai gói cấu tạo chip DS1307.
Các chân của DS1307 được mô tả như sau:
• X1 và X2: là 2 ngõ kết nối với 1 thạch anh 32.768KHz làm nguồn tạo dao động cho chip.
• VBAT: cực dương của nguồn pin 3.3V ni chip.
• Vcc: nguồn cho giao diện I2C, thường là 5V và dùng chung với vi điều khiển. Nếu Vcc khơng được cấp nhưng vẫn cịn VBAT thì DS1307 vẫn đang
hoạt động.
• SQW/OUT: một ngõ phụ tạo xung vng (Square Wave / Output Driver), tần số của xung được tạo có thể được lập trình. Như vậy chân này hầu như không liên quan đến chức năng của DS1307 là đồng hồ thời gian thực, chúng ta sẽ bỏ trống chân này khi nối mạch.
• SCL và SDA: đường xung nhịp và đường dữ liệu của chuẩn I2C, khi kết nối với vi điều khiển ta phải nối thêm điện trở kéo lên vì ngõ ra vi điều khiển là dạng cực máng hở.
Hình 2. 17: Mạch đồng hồ thời gian thực DS1307.
Do mạch này được sử dụng rất nhiều trong thực tế nên nhà sản xuất đã làm ra module thời gian thực DS1307 đi kèm với IC nhớ AT24C32. Dưới đây là hình ảnh thực tế về module :
2.2.9. IC EEPROM 24LC512
Hình 2. 19: IC Eeprom 24LC512.
IC 24LC512 là một loại Eeprom có khả năng hoạt động ở điện áp từ 2,5V- 5,5V và có bộ nhớ 512Kb. Có khả năng ghi tới 64 KBytes dữ liệu và khả năng đọc tuần tự và ngẫu nhiên.
Các thông số cơ bản:
Bảng 2. 13: Các thông số của Eeprom 24LC512.
Thông số Giá trị Bộ nhớ 512kbits Điện áp hoạt động 2,5 V- 5,5 V Kích thước trang 128 byte Độ bền 1.000.0000 ghi/đọc/xóa Nhiệt độ làm việc -40°C đến 125°C Tần số 400kHz
2.3.10. IC nguồn LM2576
LM2576 là một IC nguồn tích hợp của mạch nguồn xung theo nguyên lý nguồn Buck.Với dòng điện định mức đầu ra tải là 3A và có các đầu điện áp đầu ra cố định 3.3V, 5V, 12V, 15V và điện áp biến đổi tùy từng loại Serial của LM2576. Đây là loại IC nguồn cung cấp điện áp đầu ra ổn định, hoạt động ổn định với đầu tản nhiệt tốt giúp IC hoạt động tốt trong nhiệt độ cho phép.
Hình 2. 20: IC ổn áp LM2576.
Một số tính năng chính của LM2576:
• Điện áp đầu ra của các Serial là 3.3V, 5V, 12V, 15V và điện áp điều chỉnh.
• Điện áp điều chỉnh được từ 1.25V đến 37V. Với điện áp đầu vào là lớn nhất.
• Dịng đầu ra định mức là 3A.
• Điện áp đầu vào định mức là 40V có thể lớn 60V tùy từng dịng Serial.
• Chỉ giao tiếp với 5 chân đầu vào ra.
• Tần số đóng cắt chuẩn 52Khz[separator].
• Hiệu suất cao.
Sơ đồ cấu tạo của LM2576:
Hình 2. 21: Cấu tạo của LM2576.
Ở trên là sơ đồ cấu tạo bên trong của LM2576. Nguyên tắc dựa theo nguồn xung (Nguồn Buck). Điện áp đầu ra được điều chỉnh liên tục để đảm bảo cho điện áp đầu ra luôn giữa ở một giá trị cố định. Trong sơ đồ cấu tạo thì LM2576 gồm khối: So sánh, tạo dao động, cơng suất, q dịng...
• Chân 1 (Vin): Chân nguồn đầu vào.
• Chân 2 (Vout): Chân điện áp đầu ra. Tùy thuộc dịng LM2576 mà chân này có điện áp ra ổn định khác nhau.
• Chân 3 (GND): Chân nguồn chung.
• Chân 4 (Feedback): Chân đưa tín hiệu phản hồi từ đầu ra về đầu vào. Đưa vào bộ so sánh để điều chỉnh ổn định điện áp.
• Chân 5 (On/Off): Chân đóng mở. Thường để GND.
Thơng số chính của LM2576:
• Điện áp đầu vào: + LM2576: 45V. + LM2576HV: 60V.
• Dịng điện đầu ra: 3A.
31
CHƯƠNG 2. CƠ SỞ LÝ THUYẾT
• Giải nhiệt độ hoạt động là: −65˚C to +150˚C.
• Điện áp ổn định đầu ra: + LM2576HVS-3.3: 3.3V. + LM2576HVS-5.0: 5V. + LM2576HVS-12: 12V. + LM2576HVS-15: 15V.
+ LM2576HVS-ADJ: ADJ (1.25V ~ 37V).
2.3 CÁC CHUẨN GIAO TIẾP.2.3.1. Chuẩn giao tiếp UART. 2.3.1. Chuẩn giao tiếp UART.
Chuẩn giao tiếp UART là chuẩn giao tiếp được sử dụng để giao tiếp giữa vi điều khiển và máy tính. Ngày nay rất nhiều vi điều kiển được tích hợp mạch giao tiếp UART.
Hình 2. 22: Mơ tả giao tiếp UART.
Khi tiến hành giao tiếp giữa 2 vi điều khiển theo chuẩn giao tiếp UART thì các vi điều khiển tự động xử dụng xung của chính mình tạo ra
Hình 2. 23: Cấu trúc một khung dữ kiệu trong chuẩn giao tiếp UART.
CHƯƠNG 2. CƠ SỞ LÝ THUYẾT
49
Một gói dữ liệu theo chuẩn UART có thể bao gồm các bit Start, gói dữ liệu, bit kiểm tra parity (bit kiểm tra CRC) và bit Stop.
Khi bit Start kéo từ mức cao xuống mức thấp báo hiệu quá trình truyền dữ liệu đã sẵn sàng. Tiếp đó là việc truyền 8 bit dữ liệu. Sau khi tiến hành truyền hết dữ liệu thì bit kiểm tra thực hiện kiểm tra dữ liệu. Cuối cùng bit Stop lên mức cao báo hiệu đã kết thúc một quá trình truyền dữ liệu.
Các thơng số cơ bản trong truyền nhận UART:
Baud rate (tốc độ baud): khoảng thời gian một bit được truyền nên phải được đồng bộ giữa bên gửi và nhận.
Frame (khung truyền): qui định số bit dữ liệu được truyền.
Bit Start: là bit bắt buộc, bắt đầu của một khung dữ liệu báo hiệu rằng sắp có một gói dữ liệu được truyền tới.
Data: Gói dữ liệu cần truyền, các bit có trọng số thấp (LSB) được truyền trước xong đó tới các bit có trọng số cao (MSB).
Bit Parity: kiểm tra dữ liệu truyền có đúng khơng. Bit Stop: Là bit cảnh báo rằng các bit đã được gửi xong.
2.3.2. Chuẩn giao tiếp I2C
I2C là viết tắt của từ Inter-Integrated Circuit là một chuẩn truyền thông do hãng điện tử Philips Semiconductor sáng lập và xây dựng thành chuẩn năm 1990. Phiên bản mới nhất của I2C là V3.0 phát hành năm 2007.
I2C: Là một truyền thông nối tiếp đa chip chủ (tạm dịch của cụm từ multi-master serial computer bus). Khái niệm “multi-master” được hiểu là trên cùng một bus có thể có nhiều hơn một thiết bị làm Master, đồng thời một Slave có thể trở thành một Master nếu nó có khả năng. I2C được thực hiện trên 2 đường SDA (Serial DATA) và SCL (Serial Clock) trong đó SDA là đường truyền/nhận dữ liệu và SCL là đường xung nhịp. Căn cứ theo chuẩn I2C, các đường SDA và SCL trên các thiết bị có cấu hình “cực góp mở” nghĩa là cần có các “điện trở kéo lên” (pull-up resistor) cho các đường này. Ở trạng thái nghỉ (Idle), 2 chân SDA và SCL ở mức cao. Hình 2.13 mơ tả một mơ hình mạng I2C cơ bản.
Vcc Vcc R1 R2 SDA SCL Thiết bị n Thiết bị 3 Thiết bị 2 Thiết bị 1
Hình 2.24: Mạng I2C với nhiều thiết bị và 2 điện trở kéo lên cho SDA, SCL.
Master: Là chip khởi động quá trình truyền nhận, phát đi địa chỉ của thiết bị cần giao tiếp và tạo xung giữ nhịp trên đường SCL.
Slave: Là chip có một địa chỉ cố định, được gọi bởi Master và phục vụ yêu cầu từ Master.
SDA – Serial Data: Là đường dữ liệu nối tiếp, tất cả các thông tin về địa chỉ hay dữ liệu đều được truyền trên đường này theo thứ tự từng bit một. Chú ý là trong chuẩn I2C, bit có trọng số lớn nhất (MSB) được truyền trước nhất, đặc điểm này ngược lại với chuẩn UART.
SCL – Serial Clock: Là đường giữ nhịp nối tiếp. I2C là chuẩn truyền thông nối tiếp đồng bộ, cần có 1 đường tạo xung giữ nhịp cho quá trình truyền/nhận, cứ mỗi xung trên đường giữ nhịp SCL, một bit dữ liệu trên đường SDA sẽ được lấy mẫu (sample). Dữ liệu nối tiếp trên đường SDA được lấy mẫu khi đường SCL ở mức cao trong một chu kỳ giữ nhịp, vì thế đường SDA khơng được đổi trạng thái khi SCL ở mức cao (trừ START và STOP condition). Chân SDA có thể được đổi trạng thái khi SCL ở mức thấp.
Hình 2.25: Giản đồ xung của SCL và SDA.
START Condition – điều kiện bắt đầu: từ trạng thái nghỉ, khi cả SDA và SCL ở mức cao nếu Master muốn thực hiện một “cuộc gọi”, Master sẽ kéo chân SDA xuống thấp trong khi SCL vẫn cao. Trạng thái này gọi là START Condition (chúng ta gọi tắt là S).
STOP Condition – điều kiện kết thúc: sau khi thực hiện truyền/nhận dữ liệu, nếu Master muốn kết thúc q trình nó sẽ tạo ra một STOP condition. STOP condition được Master thực hiện bằng cách kéo chân SDA lên cao khi đường SCL đang ở mức cao. STOP condition chỉ được tạo ra sau khi địa chỉ hoặc dữ liệu đã được truyền/nhận.
REPEAT START: Bắt đầu lặp lại, khoảng giữa START và STOP condition là khoảng bận của đường truyền, các Master khác không tác động được vào đường truyền trong khoảng này. Trường hợp sau khi kết thúc truyền/nhận mà Master không gởi STOP condition lại gởi thêm 1 START condition gọi là REPEAT START. Khả năng này thường được dùng khi Master muốn lấy dữ liệu liên tiếp từ các Slaves. Hình bên dưới mơ tả các Master tạo ra START, STOP và REPEAT START.
Hình 2.26: Giản đồ xung khi có REPEAT START.
Address Packet Format: Định dạng gói địa chỉ, trên mạng I2C, tất cả các thiết bị (chip) đều có thể là Master hay Slave. Mỗi thiết bị có một địa chỉ cố định gọi là Device
address. Khi một Master muốn giao tiếp với một Slave nào đó, nó trước hết tạo ra một START condition và tiếp theo là gởi địa chỉ Device address của Slave cần giao tiếp trên đường truyền, vì thế xuất hiện khái niệm “gói địa chỉ” (Address Packet). Gói địa chỉ trong I2C có định dạng 9 bits trong đó 7 bit đầu (gọi là SLA, được gởi liền sau
START condition) chứa địa chỉ Slave, một bit READ/WRITE và một bit ACK- Ackknowledge (xác nhận). Do bit địa chỉ có độ dài 7 bits nên về mặt lý thuyết, trên 1 mạng I2C có thể tồn tại tối đa 2^7=128 thiết bị có địa chỉ riêng biệt. Tuy nhiên, có một số địa chỉ khơng được sử dụng như các địa chỉ có định dạng 1111xxx (tức các địa chỉ lớn hơn hoặc bằng 120 không được dùng).
Riêng địa chỉ 0 được dùng cho “cuộc gọi chung” (General call). Bit READ/WRITE (R/W) được truyền tiếp sau 7 bit địa chỉ là bit báo cho Slave biết Master muốn “đọc” hay “ghi” vào Slave. Nếu bit này bằng 0 (gọi là W) thì quá trình “Ghi” dữ liệu từ Master đến Slave được yêu cầu, nếu bit này bằng 1 (gọi là R) thì Master muốn “đọc” dữ liệu từ Slave về. Tám bits trên (SLA+R/W) được Master phát ra sau khi phát START condition, nếu một Slave trên mạng nhận ra rằng địa chỉ mà Master yêu cầu trùng khớp với Device address của chính nó sẽ “đáp trả” lại Master bằng cách phát ra 1 tín hiệu “xác nhận” ACK bằng cách kéo chân SDA xuống thấp trong xung thứ 9.
Ngược lại, nếu khơng có Slave đáp ứng lại, chân SDA vẫn ở mức cao trong xung giữ nhịp thứ 9 thì gọi là tín hiệu “khơng xác nhận” – NOT ACK, lúc này Master cần có