Hiển thị các bài đăng có nhãn Điện tử. Hiển thị tất cả bài đăng
Hiển thị các bài đăng có nhãn Điện tử. Hiển thị tất cả bài đăng

Thứ Năm, 4 tháng 2, 2010

Parallel Port - Kiến trúc & Hoạt động

Giới thiệu

Ða số các máy vi tính đều trao đổi thông tin thông qua các ngã sau đây: Parallel port, Serial port, USB và Network card. Parallel port là một phần không thể thiếu trong việc sử dụng computer để giao tiếp với các thiết bị điện tử khác. Bài nầy chủ yếu dùng cho sinh viên hardware nhưng việc hiểu biết của nó cũng không thừa đối với các bạn học software.

Cấu trúc của Parallel port nhìn trên phương diện hardware Parallel port bao gồm 25 pins (chân) được bố trí theo sơ đồ dưới đây, đa số giao diện đầu cắm của Parallel port đều ở dạng female:

  • 8 pins dùng để gởi và nhận data (từ pin số 2 đến số 9) gọi là DATA Port (dân software cũng gọi như thế). Dữ liệu trao đổi qua 8 pin này được gói gọn trong 1 byte.
  • 5 pins dùng để hiển thị tình trạng hoạt động của parallel port: đang bận, đang gởi/nhận thông tin...(các pin số 10-13 và pin số 15) gọi là STATUS Port. Dữ liệu trao đổi qua 8 pin này dùng 5 bit cao của byte.
  • 4 pins dùng để điều khiển gọi là CONTROL Port, là các pin số 1, 14, 16 và 17. Dữ trao đổi qua pnin này dùng 4 bit thấp của byte.
  • 8 pins còn lại được dùng tùy theo ý người sử dụng. Nếu không được sử dụng thì chúng sẽ được grounded (nối đất-thuật ngữ ngành điện?).

Ðây là cấu hình được thống nhất trong công nghệ vi tính và được công nhận bởi IEEE (vốn là một tổ chức lớn nhất về qui định hardware quốc tế). Bạn có thể kiểm tra lại các số pin và đánh dấu bằng cách nhìn rõ hơn vào các dây parallel port cũng như parallel port phía sau máy vi tính của bạn.

Vài ví dụ cho hoạt động của parallel port DATA port là nơi thông tin sẽ được trao đổi từ computer đến các thiết bị khác (hai chiều). Khi lập trình ắt hẳn cũng có khi bạn nghe nói đến chuyện viết 1 program/driver cho các hardware (nếu bạn làm cho một số hãng máy in, viễn thông...). Ở đây driver cho parallel port chính là chương trình quản lý và điều khiển quá trình trao đổi thông tin này. DATA port có 8 pins tức là 1 bytes. Bạn có lẽ từng nghe kỹ thuật tải thông tin qua ngã parallel port là nhanh nhất (trong quá khứ) nhưng kỳ thực nó cũng chỉ dùng có 1byte = 8 bit = 8 cái pins nầy mà thôi! Tôi sẽ trỡ lại sau trong việc bàn thảo thế nào là một sợi dây parallel tốt.

STATUS port là nơi hiển thị các quá trình vận hành của parallel port. Một ví dụ đơn giản là giả sử bạn muốn in một bài viết ra printer (dĩ nhiên là qua ngã parallel port) nhưng khi nhấn nút "print" thì lại thấy máy vi tính hiển thị một thông báo hết giấy! Trên thực tế phía sau những hàng động nầy là một chuổi phối hợp giửa software và hardware. Khi bạn click "print" tức là bạn kích hoạt một trong những pins của CONTROL port bằng software để bảo cái printer in bài ra. Nhưng trước khi thực hiện việc in printer cũng tự biết nó hết giấy và tự kích hoạt một trong số những pins của STATUS port để báo cho computer biết là hết giấy. Kết quả là software điều khiển quá trình in kiểm tra (trước khi in) thấy được cho nên nó hiện thông báo hết giấy cho bạn. Nhiều hoạt động tương tự như printer chưa on, printer hết mực, printer bị kẹt giấy...cũng do phối hợp giửa những cái pins nầy mà ra. Tôi sẽ bàn kỹ hơn ở mức độ cấu trúc điện sau này.

Cấu trúc của parallel port nhìn trên phương diện software Thực ra thì với dân software, họ cũng không cần biết phía parallel port sau lưng máy tính có bao nhiên pin và mỗi pin cần bao nhiêu điện, cấu trúc như thế nào...Mấy cái nầy hơi thừa cho dân software! Tất cả những gì mà một người lập trình cần biết là address của các pin trên parallel port là đủ! 25 pins kia sẽ được chia làm 3 phần với tên gọi là DATA port (hay là DATA register), STATUS port (hay là STATUS register), và CONTROL port (hay là CONTROL register). Mỗi port là 8 bits với address hẵn hòi. Như mô tả từ đầu, DATA port sẽ là 8 bits, STATUS port có 5 pins cho nên sẽ cộng thêm 3 bit trống để tạo một byte, tương tự như thế cho CONTROL port. Riêng phần địa chỉ cho các port nầy cũng khá là phức tạp, vì nó liên quan đến BIOS. Nếu bạn đã hiểu cách phân bố memory của máy tính thì đơn giản hơn, còn không thì hy vọng là lối giải thích của tôi sẽ làm bạn hiểu phần nào. Ðại khái là khi máy tính bật lên (turn on) thì BIOS sẽ làm việc trước, nó sẽ tìm kiếm và định địa chỉ cho cái port trong máy của bạn. Vì BIOS không cái nào giống cái nào cho nên lối qui định địa chỉ của nó cũng khác, tuy nhiên dưới đây là một ví dụ điển hình (bạn thường thấy) trong các máy vi tính ngày nay. Những địa chỉ nầy bạn có thể thấy khi khởi động máy trong các thông số BIOS hiện ra.

Port Address
Ghi chú
3BCh - 3BFh
dùng cho prallel port vốn dính vào Video Card (cách cũ)
378h - 37Fh
khu vực memory thường dùng cho LPT 1
278h - 27Fh
khu vực memory thường dùng cho LPT 2 ....

(nên nhớ là mỗi khoản là 8 bits, tính theo hệ hexadecimal) Một điều tôi muốn nhắc các bạn là những thông tin đưa ra trên đây thường là thay đổi tùy theo từng máy tính, một máy có thể có nhiều LPT, thông thường thì BIOS sẽ dò xem trong máy có bao nhiêu port và sẽ qui định địa chỉ cho từng port. Theo tôi thường thấy thì nếu máy bạn có hai cái parallel port (nếu bạn mua motherboard có hai parallel port) thì LPT1 sẽ được gán vào điạ chỉ 378h-37Fh (8 bits). Nếu có LPT2 thì sẽ được gán vào địa chỉ 278h-27Fh. Riêng phần 3BCh-3BFh trong quá khứ thường được dùng khi parallel port cài sẵn trong video card. Những loại nầy đã củ rồi, cho nên nhiều BIOS sẽ gán vào LPT1 cũng không chừng. Ðiều tốt nhất là bạn vào BIOS kiểm tra là biết ngay (life was not meant to be easy!).

Cũng lưu ý các bạn các điạ chỉ trên là port address qui định trên BIOS, khi BIOS qui định những địa chỉ trên (tắt máy vẫn còn) nó sẽ qui định kèm theo điạ chỉ lưu thông tin (tắt máy sẽ mất) cho từng port. Những địa chỉ dưới đây sẽ được dùng đa số bởi các bạn lập trình để kiểm tra xự hiện diện của parallel port trên máy bạn.

Start Address
Function
Software Identify
0000:0408h

LPT1's Base Address

Base
0000:040Ah

LPT2's Base Address

Base + 1
0000:040Ch

LPT3's Base Address

Base + 2
0000:040Eh

LPT4's Base Address (note 1)

Base + 3

Hãy lấy một ví dụ đơn giản về một chương trình kiểm tra vị trí parallel port trên máy bạn để minh hoạ cho lập trình điều khiển parallel port dưới đây:

#include #include void main(void) { /* Pointer to location of Port Addresses */ unsigned int far *ptraddr; /* Address of Port */ unsigned int address; int a; ptraddr = (unsigned int far *)0x00000408; for (a = 0; a < 3; a++) { address = *ptraddr; if (address == 0) printf("No port found for LPT%d \n", a+1); else printf("Address assigned to LPT%d is %Xh\n", a+1, address); *ptraddr++; } } Chương trình C đơn giản này là tìm đến điạ chỉ 0000:0408h và dò tìm xem có port nào tồn tại hay không. Nó sẽ dò từ 0000:0408h đến 0000:040Dh để kiểm tra LPT1, LPT2, và LPT3. Bạn nên nhớ mổi base address sẽ có 2 bytes (sizeof(unsigned int) = 2 bytes!). Như tôi mô tả phía trên, Base+1, Base+2...chẳng qua là lối gọi phổ thông trong cách lập trình. Chẳng hạn bạn kiểm tra nhà số 10, 11, 12. Bạn có thể kiểm tra nhà số 10 sau đó nhà số 10 +1 = 11 vân vân...

Ứng dụng của việc điều khiển parallel port Việc hiểu hoạt động và biết điều khiển parallel port là tối cần thiết cho các bạn đi chuyện sâu trong các kỹ nghệ hardware. Hầu hết các dụng cụ tân tiến thời nay điều liên quan đến việc dùng software để vận hành hardware, ví dụ như bạn có thể gỡi một lệnh từ máy vi tính làm cho tên lửa phóng đi, shutdown computer...điều thuộc dạng software điều khiển hardware. Và với trách nhiệm một người điều khiển nó, bạn phải thấu hiểu tất cả. Một ví dụ đơn giản khác trong điều khiển học như điều khiển robot, nếu bạn dùng software từ máy vi tính kích hoạt một pin nào đó của cổng parallel và gỡi tới robot như mệnh lệnh, chẳng hạn đi tới phía trước, quay qua bên trái....

Cấu trúc đào sâu bên trong của Parallel port Dưới đây là liệt kê 25 chân của parallel port với tên gọi (hardware và software) và thứ tự của từng chân.

Chân

tên signal (dùng cho hardware)

Direction/type (nhìn từ PC)

Tên signal và thứ tự của bit (dùng cho software)

Normal signal line function
1 -STROBE OC/Pullup Control register bit 0 kích hoạt thông báo gỡi hoặc nhận data, 0 là đọc, 1 là viết
2 D0 hai chiều Data register bit 0 bit 0 chứa data
3 D1 hai chiều Data register bit 1 bit 1 chứa data
4 D2 hai chiều Data register bit 2 bit 2 chứa data
5 D3 hai chiều Data register bit 3 bit 3 chứa data
6 D4 hai chiều Data register bit 4 bit 4 chứa data
7 D5 hai chiều Data register bit 5 bit 5 chứa data
8 D6 hai chiều Data register bit 6 bit 6 chứa data
9 D7 hai chiều Data register bit 7 bit 7 chứa data
10 -ACK Input Status register bit 6 Pulsed low by printer to acknowledge data byte Rising (usually) edge causes IRQ if enabled
11 BUSY Input Status register bit 7 kích hoạt khi printer đang bận (busy)
12 NOPAPER Input Status register bit 5 kích hoạt khi printer hết giấy
13 SELECTED Input Status register bit 4 kích hoạt khi printer đang hoạt động
14 -AUTOFEED OC/Pullup Control register bit 1 kích hoạt thông báo data đã sẵn sàng để đọc hoặc viết
15 -ERROR Input Status register bit 3 kích hoạt khi printer bị lổi (vì nhiều lý do)
16 -INITIALIZE OC/Pullup Control register bit 2 kích hoạt để printer reset lại vị trí ban đầu
17 -SELECT OC/Pullup Control register bit 3 kích hoạt để đánh dấu printer nhận được valid address
18 Ground
... Ground chân (18-25) bỏ trống, dùng tùy ý
25 Ground

Thêm một hình minh hoạ tổng thể hoạt động của parallel port.

Làm sao để truyền dữ liệu tới parallel port bằng software đây? Chắc các bạn học lập trình không xa lạ gì với lệnh outport() inport() của C. Nếu bạn viết outportb(0x378,0xff); trong một chương trình C thì nó sẽ gởi giá trị 0xff (hệ hexa) = 128 (hệ decimal) = 11111111 (hệ binary) ra data register của parallel port (LTP1). Theo giá trị vừa tính thì "11111111" nghĩa là 8 chân của data register trên parallel port sẽ có dòng điện 5volts hiện hữu. Nếu bạn là dân hardware, bạn có thể đo dòng điện tại các chân của parallel port (nên nhớ là với high frequency). Riêng với các bạn software, một khi đã hiểu sự hoạt động của cổng parallel port, bạn có thể hiểu rõ hơn cách hoạt động của các driver software.

Thứ Sáu, 5 tháng 12, 2008

LED dotmatrix sign ATtiny2313

On this page you will find a scrolling LED sign based on the ATtiny2313 AVR microcontroller, which you can build yourself (when finished) Other names for this device can be: Moving message sign, Message crawler, Scrolling message, message display, etc. The idea is to let a text scroll over the LED dot-matrix displays. A dot-matrix display is a display which contains 5x7 dots (LEDs) in one case, the LEDs are connected like a matrix, there are two types CC and CA, the LEDs are simply put the other way around, here the drawings (inside and front): If you put 1.8 Volt e.g. at the lines 4 and 10, that LED (dot) will lit, the trick of multiplexing is to scan the columns (5) and set the data on the rows (7) (or visa-versa), the multiplex-frequency must be greater than approx. 40Hz else you will see the flickering of the LEDs to much (take about 5 msec per column, thats about 25 msec for one frame) The scanning goes as follows, first set the rows data on the 7 rows e.g. 1010010, then activate (0 or 1 -> depends on which type CA = common cathode, or CC = common anode) the first column, now these LEDs (dots) will lit, wait 5 msec, then switch the column off, now load the next rows data, and set the second column on, wait 5 msecs again, and switch it off again, if you repeat this sequence very fast, you will see the data (character data) appear on the display (refresh frequency 40 - 70Hz is ok, don't take twice or half the artificial light-frequency of 50/60 Hz) The rows data comes e.g. from the EEPROM or flash memory of the AVR, you can also take an external EEPROM/flash IC, the ATtiny2313 has 128 bytes EEPROM and 2k of flash memory, what you can do is put the character data (ASCII) into the flash memory (read below for more details) Next the test-diagram: The 74HC595 is an 8-bit shift-register IC, with this IC you can shift 8 bits to the outputs with only 3 wires, that are Data (Ds), and 2 shift inputs (SHcp, STcp), connect like the diagram. How does the 74HC595 works? First shift the 8 bits into the stages with SHcp, then shift the stages to the outputs with STcp, this causes the outputs to switch in one go, with e.g. a 74HCT164 you can only shift the bits into the outputs, the advantage of the 74HC595 is the storage register. Don't forget that multiplexing causes the LEDs only lit up for a fraction, so if you want the same intensity you must put more current through them, this diagram is for practice and programming, wants you have it working you can put transistors and resistors on. Here I put the letter R on the display as you can see, using a little breadboard: (next: How the scrolling is done...) How to scroll a character accross the display ? The trick is to build one character on the display by scanning the columns very fast, and let say each 20 times (20 frames) scroll it one position to the left, this will give the effect of a walking text accross the dot-matrix display. So first build one frame, repeat this 20 times, and after that, read the data one address later, if you do this 5 times (5 columns) the character scroll from right to left from the display. (the refresh goes so fast that your brain can't keep up, and what you see is the R scrolling over the display) Btw, I will take five 74HC595's shiftregisters IC's, that are 5 x 8 bit = 40 bits / 5 columns = 8 dot-matrix displays, making it a nice tiny message sign. What I am going to do is putting ASCII data (thats 128 x 5 bytes = 640 bytes) into the 2k flash memory of the ATtiny2313, then I have 704 words left for my program, that can really be a huge program!, because I used only 69 lines (69 instructions) of program so far, and that scrolls characters fluently accross the dot-matrix display. I made the program so that you can set the scroll-speed, from 0 - 255, so 256 speeds, 25 fps (frames/second) is a nice speed. On one of my pages (this page) I am using a 2-bit Gray code rotary encoder, with this encoder I will make an edit function in the software, so you can edit messages, without a keyboard, this save space, this type of rotary encoder has a push-function in the shaft, so e.g. after you select a character you can store that in memory

Thứ Tư, 24 tháng 10, 2007

Lập trình cho PLC bằng phần mềm Syswin

SYSWIN là một phần mềm lập trình cho PLC của OMRON với khả năng linh hoạt, trực quan và dễ sử dụng. Có hai cách lập trình : lập trình bằng ngôn ngữ bậc thang (Ladder diagram) và lập trình bằng dòng lệnh (Statement List) cộng với nhiều tính năng và các công cụ hỗ trợ

Để cài đặt và chạy phần mềm này cần bảo đảm máy tính phải có cấu hình tối thiểu như sau:

Windows 3.1 / 3.11, Window 95 hoặc Window 98. CPU 486 DX50 trở lên. Tối thiểu 8MB trong bộ nhớ. Có 10 MB đĩa cứng trống. Có cổng COM còn trống.

Cài đặt Syswin

Để cài đặt SYSWIN, cần bảo đảm đã có hệ điều hành Windows .

Từ menu Start của hệ điều hành, chọn Run

Đưa đĩa cài đặt SYSWIN số 1 vào ổ A: và gõ dòng sau ở ô trống Open của mục Run : a:\setup.exe rồi bấm Enter hoặc dùng chuột click nút OK.

Đưa các đĩa cài đặt thích hợp vào ổ A: theo hướng dẫn của chương trình khi cài đặt. Sau khi cài đặt xong, chương trình cài đặt sẽ tạo ra một nhóm chương trình của SYSWIN ở menu Programs như trên hình.

Để khởi động SYSWIN, bấm Start, Program, chọn mục SYSWIN và bấm vào mục SYSWIN trong folder này

Lập trình với Syswin

Từ menu File, chọn New project để tạo chương trình mới.

Trên màn hình sẽ hiện ra một cửa sổ “ New project setup” để thiết lập cấu hình hệ thống với các mục như sau: PLC Type, CPU, Series, Editor, Interface, Bridge Option, Modem Option, Coding Option

Sau khi chọn cấu hình thích hợp, bấm enter hoặc dùng chuột bấm (click) nút OK trên màn hình để kết thúc việc thiết lập cấu hình cơ bản của hệ thống và bắt đầu lập trình.

Chương trình sẽ có 2 Network

Network 1: là phần thân chương trình

Network 2 : là lệnh END

Tiếp theo ta sẽ nhập vào các tiếp điểm và cuộn dây của chương trình. Bấm vào biểu tượng tiếp điểm thường hở trên thanh Drawing Tool . Con trỏ chuột bây giờ được đổi thành biểu tượng tiếp điểm. Định vị trí tiếp điểm trên sơ đồ bậc thang bằng cách di chuyển con trỏ chuột đến vị trí mong muốn và nhấn phím trái chuột. Trên màn hình sẽ hiện ra hộp thoại “contact” yêu cầu nhập vào địa chỉ dùng với tiếp điểm này.

Nhập vào địa chỉ của tiếp điểm là 000.00 ở ô Address, bấm OK để hoàn tất.

Sau khi nhập xong, trên màn hình làm việc sẽ có hiển thị một tiếp điểm với địa chỉ đi kèm, sau đó ô chọn màu đen dịch sang phải để ta có thể nhập lệnh tiếp theo.

Tiếp theo nhập vào chương trình một tiếp điểm thường đóng (NC) bằng cách dùng chuột chọn biểu tượng tiếp điểm thường đóng như trên hình, định vị tiếp điểm này nối tiếp với tiếp điểm đã nhập ở bước trước. Gõ vào địa chỉ 00001 cho tiếp điểm này.

Sau khi nhập địa chỉ 00001 xong và bấm Enter, màn hình sẽ hiện ra như hình dưới:

Tiếp theo, từ thanh công cụ chọn lệnh Output rồi di chuyển chuột đến vị trí cần đặt lệnh và nhấn nút trái chuột.

Đánh vào ô Address địa chỉ 010.00 rồi nhấn OK

Nhập lệnh OR bằng cách tạo ra một tiếp điểm nối song song với tiếp điểm đầu tiên trên Network. Trên thanh công cụ chọn tiếp điểm contact và đặt nó phía dưới tiếp điểm đầu tiên là 000.00

Gõ vào ô Address địa chỉ 010.00 và nhấn OK. Tiếp theo nối tiếp điểmvừa tạo với tiếp điểm nằm trên bằng cách chọn công cụ rồi nhấn chuột vào vị trí nằm giữa 2 dòng hoặc nhấn

Để xóa tiếp điểm CH000.01, nhấn con trỏ chuột ở tiếp điểm này (hoặc dùng bàn phím di chuyển ô chọn đến tiếp điểm), nhấn DEL (hoặc từ menu Edit chọn Delete). Nếu muốn phục hồi lại lệnh vừa bị xóa, chọn Undo từ menu này

Hiện ta đã nhập xong một Network của chương trình. Để thêm Network mới vào, bấm vào nút Insert Network

Từ hộp thoại hiện ra, chọn vị trí nơi sẽ chèn Network mới. Ơû đây ta sẽ chèn Network mới vào phía dưới Network hiện hành nên ta sẽ chọn “BELOW Current Network” và nhấn OK.

Khi đó một dòng trống sẽ được tạo ra bên dưới Network hiện hành như hình dưới

Network mới này là lệnh END (01). Đặt con trỏ vào vị trí ô đầu tiên của Network, sau đó bấm phím F8 để chèn lệnh Function vào ô trống đó. Để chọn lệnh cần thiết, có thể đánh mã lệnh (ở đây là 01), đánh tên lệnh hoặc lựa Function từ 1 danh sách có sẵn bằng cách nhấp vào nút Select. Ngoài ra có thể tham khảothêm về lệnh bằng cách nhấp đúp vào nút Reference.

Gõ END vào ô Function rồi nhấn OK để kết thúc

Chương trình hoàn chỉnh ta vừa nhập có dạng dưới đây:

Đặt tên ký hiệu mô tả ( symbol) cho các địa chỉ

Để đặt tên ký hiệu mô tả cho các địa chỉ, trước tiên di chuyển ô chọn đến địa chỉ cần đặt tên, ô Adr ở cuối màn hình sẽ hiển thị địa chỉ hiện hành. Sau đó bấm vào ô Sym và đánh vào một tên cho địa chỉ này. Phần mô tả địa chỉ có thể đánh vào ô Com. Lưu tên vừa đặt bằng cách bấm nút Store.

SYSWIN là một phần mềm lập trình cho PLC của OMRON với khả năng linh hoạt, trực quan và dễ sử dụng chạy PLC và các lệnh Timer và Counter

Nạp chương trình vào PLC (download program to PLC)

Nối máy tính PC với PLC qua bộ chuyển đổi và cáp RS232C. Đầu cắm của bộ chuyển đổi sẽ nối vào cổng Peripheral Port của PLC

Từ menu Online, chọn Connect để kết nối với PLC.

Sau khi máy tính đã được kết nối với PLC, đèn COMM trên PLC sẽ nhấp nháy và các mục khác trên menu này trở thành màu đen (được phép lựa).

Cũng từ menu Online, chọn Download rogram, một hộp thoại sau đây hiện ra hỏi ta có muốn xóa bộ nhớ chương trình trong PLC không (Clear Program Memory) trước khi nạp. Nên lựa tùy chọn này để tránh các vấn đề có thể xảy ra. Bấm OK để nạp chương trình vào PLC.

Khi việc nạp hoàn tất, bấm nút OK ở hộp thoại sau để tiếp tục:

Chú ý :Không thực hiện việc Download vào PLC nếu PLC đang ở chế độ RUN

Chạy chương trình ( Run)

Chuyển PLC sang chế độ RUN hoặc MONITOR bằng nút PLC Mode

Chuyển từ STOP/PRG Mode sang Monitor Mode rồi bấm OK

PLC sẽ chuyển sang chế độ Monitor Mode.

Chú ý: Trong khi chương trình đang chạy có thể theo dõi cách hoạt động của chương trình bằng cách bấm vào nút Monitoring

Bổ sung các lệnh Timer và Counter

Trước hết chuyển chế độ của PLC sang Program Mode. Máy tính sẽ hỏi thao tác này làm thay đổi chế độ PLC, có tiếp tục hay không, ta chọn YES. Sau đó, bổ sung các lệnh Timer và Counter vào chương trình:

+ Bổ sung 1 Network mới vào chương trình bằng cách chọn Insert Network

+ Trong Network mới thêm tiếp điểm thường hở có địa chỉ (Address) là 00003.

+ Bổ sung Timer vào bằng cách chọn TIM và đặt nó sau tiếp điểm trên. Trong hộp thoại Timer mở ra nhập vào 000 là số thứ tự của Timer, trong ô Value nhập vào ô Timer giá trị #1000 (tức 100 giây) (chú ý phải có dấu #)

Tiếp theo ta sẽ bổ sung một Counter (CNT) vào chương trình:

1-Định vị hộp chọn ở Network 2, chọn lệnh Insert Network rồi chọn Below Current Network, sau đó nhấn OK để thêm Network mới dưới Network hiện hành. 2-Thêm một tiếp điểm thường hở vào đầu Network mới dùng nút tiếp điểm thường hở, nhập địa chỉ 00004 cho tiếp điểm này. 3-Nhập lệnh Counter nối tiếp sau tiếp điểm trên bằng cách chọn nút: CNT

Trong hộp thoại mở ra, nhập số của Counter (CNT) là 001 vào ô Counter còn SV là địa chỉ DM 0000 vào ô Value sau đó nhấn OK để định vị Counter.

4- Tiếp theo ta phải nhập đầu vào Input thứ 2 (Reset) cho Counter . Đầu vào này sẽ là tiếp điểm có địa chỉ 00005. Thực hiện tương tự để thêm tiếp điểm thường mở này. Nếu chương trình dài quá và màn hình không đủ để hiển thị toàn bộ, ta có thể dùng thanh cuộn (Scroll bar) để cuộn lên xuống.

5-Nạp chương trình mới bổ sung bằng lệnh Download Program.

6-Chuyển chế độ của PLC từ Monitor mode hoặc Program mode sang RUN mode để chạy chương trình.

7-Chuyển sang chế độ Monitor để theo dõi hoặc thay đổi giá trị trong PLC.

Theo dõi và đặt giá trị trong PLC

Theo dõi( Monitor) các địa chỉ trong PLC: Ta có thể theo dõi trạng thái và ghi đè giá trị mới lên bất cứ địa chỉ nào ( có thuộc tính cho phép ghi) trong PLC bằng thanh Data Set Bar. Để chuyển đến thanh này, bấm phím Tab, sau đó nhấn Enter hoặc nhấp đúp chuột trái vào một ô trống trong thanh này.

Một hộp thoại mở ra sẽ hỏi địa chỉ cần theo dõi. Nhập 00000 vào ô Address và nấn vào nút Read để đọc trạng thái bit 00000 từ PLC.

Để theo dõi một word, nhấp đúp chuột vào ô trống bên cạnh trong thanh Data Set Bar rồi nhập địa chỉ DM0000 vào ô Address rồi nhấn nút OK để đọc giá trị của word DM0000 từ PLC .

Nhập CNT001 để theo dõi giá trị hiện hành của Counter số 001.

Giá trị đặt (SV) của Counter 001 được chứa trong thanh ghi DM0000 mà từ trước tới giờ, giá trị của nó chưa được xác định rõ ràng. Để đặt giá trị cho DM0000, nhấp đúp chuột vào ô có địa chỉ DM0000 và nhập vào giá trị 10 vào ô Value rồi bấm vào nút Write để ghi giá trị 10 vào DM0000.

Lưu chươngtrình (save program)

Để tiện cho việc truy cập, chỉnh sửa, tham khảo sau này, chương trình ta vừa lập có thể được lưu vào đĩa cứng hoặc đĩa mềm máy tính.

1-Từ menu File, chọn Save project as:

2-Chọn ổ đĩa và thư mục nơi sẽ lưu chương trình, nhập tên file chương trình (ở đây giả sử ta đặt tên là TAM) vào ô File name sau đó nhấn OK để lưu.

Đọc chương trình từ PLC lên máy tính (Upload):

Chương trình trong PLC có thể được đọc ngược lại lên máy tính (Upload); Giả sử ta có một chương trình trong PLC và muốn lưu nó vào một file trên đĩa cứng. Ta sẽ làm như sau:

1-Từ menu file chọn New để tạo một Project mới cho chương trình sẽ được tải.

2-Khai báo các thông số có cấu hình khớp với loại PLC đang dùng và nhấn OK.

3-Từ Menu Online chọn Upload program from PLC.

Hộp thoại Upload sẽ hỏi về các lựa chọn khi Upload.

Nhấn nút OK dể thực hiện việc đọc chương trình lên máy tính

Khi việc đọc chương trình đã thực hiện xong, nhấn OK để kết thúc.

Sơ lược về Vòng khoá pha (Phase-locked loop)

PLL ( Phase-locked loop ) là một hệ thống hồi tiếp gồm có một dò pha (Phase detector ), bộ lọc thông thấp ( LPF: Low-pass filter), bộ khuếch đại và mạch dao động thế kiểm ( VCO: Voltage-controlled oscillator ) trong một số mạch PLL thì bộ VCO có thể được thay thế bằng bộ CCO (Current-controlled oscillator).

Sơ đồ khối

Mạch dò pha (Phase detector):

Bộ này có nhiệm vụ cho ra một tín hiệu phụ thuộc vào hiệu pha ( hiệu tần số) của hai tín hiệu vào, thường là tín hiệu hình Sin hoặc dãy xung chữ nhật hay nói cách khác là so sánh fin và fout của VCO để cho ra điện thế DC tỉ lệ thuận với độ sai pha giữa hai tần số. Có hai loại dò pha:

+ Dò pha tuyến tính: thường được thực hiện bởi mạch nhân tương tự. Tín hiệu ra tỷ lệ với biên độ tín hiệu vào. + Dò pha phi tuyến (dò pha số ): được thực hiện bởi các mạch số (AND,OR,XOR,EXOR… ). Tín hiệu vào của nó là dãy xung chữ nhật. Tín hiệu ra không phụ thuộc vào biên độ tín hiệu vào.

- Mạch lọc thông thấp: dùng để lấy tín hiệu tần số thấp, lấy ra điện thế DC. Trong hệ thống PLL, người ta thường dùng các bộ lọc thấp qua bậc một để bảo đảm tính ổn định cho hệ thống. - Mạch khuếch đại: Để khuếch đại tín hiệu trên đường truyền. - Mạch VCO: Để phát ra tần số tỷ lệ với điện thế ngỏ vào. Đây là một khối quan trọng nhất trong PLL vì nó quyết định độ ổn định tần số, các đặc trưng giải điều chế tín hiệu, điều tần (FM).

Các khái niệm cơ bản trong PLL

* Dải bắt (capture range) : Là dải tần số mà tín hiệu vào ban đầu phải lọt vào để PLL có thể thiết lập chế độ đồng bộ (khoá). Nói cách khác đó là dải tần số mà PLL có thể đạt được sự khoá pha khi việc khoá pha chưa thực hiện. * Dải khoá (the lock range) : Là khoảng tần số lân cận fN của VCO mà PLL đồng nhất được tần số fO với tần số fi. Dải này còn được gọi là dải đồng chỉnh (Tracking range).

Dải bắt và dải khóa

Nguyên lý hoạt động của PLL

Thực chất PLL hoạt động theo nguyên tắc vòng điều khiển mà đại lượng vào và ra là tần số và chúng được so sánh với nhau về pha. Vòng điều khiển pha có nhiệm vụ phát hiện và điều chỉnh những sai sót về tần số giữa tín hiệu vào và tín hiệu ra, nghĩa là PLL là cho tần số ra fO của tín hiệu so sánh bám theo tần số vào fi của tín hiệu vào.

Khi không có tín hiệu lối vào Vi, điện áp lối ra bộ khuếch đại Vout = 0, bộ dao động VCO hoạt động ở tần số tự nhiên fN (được cài đặt bởi điện trở và tụ điện bên ngoài ).

Dò pha số bằng cổng EXOR

Việc sử dụng cổng EXOR so pha có hai điểm lợi là độ lợi toàn giai cao so với các cổng khác và xung ngõ ra có tần số gấp đôi bất chấp tần số ngõ vào.

Dạng sóng của bộ so pha bằng cổng EXOR như sau:

Khi thực hiện so pha bằng cổng EXOR ta có điện thế ngõ ra trung bình của bộ so pha phụ thuộc vào độ sai biệt pha như sau:

Mạch đếm xung dùng vi điều khiển PIC

Ngày nay các bộ đếm đã trở nên thông dụng và có thể tìm thấy ở nhiều nơi trong thế giới xung quanh ta như: bộ đếm người đến thăm bảo tàng hoặc nhà hát, bộ đếm trong thi đấu thể thao. Trong công nghiệp, cũng có rất nhiều dây chuyền sản xuất cần đến các bộ đếm. Thực tế cho thấy không chỉ có các đại lượng vật lý được đo đếm mà đôi khi là cả xung tín hiệu hoặc lượng thông tin.

Một bộ đếm xung có thể được chia ra thành ba phần hoặc ba khối. Khối thứ nhất là nguồn xung. Khối thứ hai là một linh kiện đếm, thực hiện chức năng đếm, lưu trữ trạng thái và đưa ra kết quả. Cuối cùng, khối thứ ba đóng vai trò biến đổi các trạng thái điện thành trạng thái có thể quan sát được, mà thường là các bộ hiển thị quang học.

Cho đến nay thì những bộ đếm 7490 đã bị loại trừ khỏi các ứng dụng vì các bộ đếm dùng vi điều khiển có nhiều ưu điểm hơn hẳn. Dưới đây xin giới thiệu với các bạn đọc quan tâm đến vi điều khiển một bộ đếm dùng vi điều khiển PIC của công ty Microchip (Hoa Kỳ).

Xung đưa đến lối vào bộ đếm là các xung có mức lôgic TTL (0V, +5V). Tỷ số giữa thời gian có xung và thời gian trống xung không có vai trò quan trọng, nhưng điều quan trọng là độ trống hoặc độ rộng của xung không được nhỏ hơn 50 s.

Dãy các xung được đưa đến lối vào của vi điều khiển, còn bên trong là bộ nhớ cùng với chương trình điều khiển LED 7 thanh được viết (xem chương trình dưới đây) và nạp vào vi điều khiển PIC 16F84 (của Microchip).

Sườn tăng của xung lối vào sẽ kích hoạt ngắt trong khi một bộ đếm hàng “một” ở bên trong vi điều khiển đếm tăng thêm 1. Đồng thời, bộ xử lý kiểm tra xem giá trị trên thanh ghi “một” đã đạt giá trị 10 chưa. Nếu rồi thì lập tức thanh ghi “một” bị reset (chuyển về giá trị bằng 0) và thanh ghi hàng “mười” sẽ tăng thêm 1. Nếu giá trị trên thanh ghi “mười” đạt đến giá trị 10 thì lại bị reset và bộ đếm lại bắt đầu đến từ đầu (thủ tục kế tiếp).

Khi chạy chương trình chính dưới đây, các giá trị từ 0 đến 9 được hiển thị trên một bộ hiển thị dùng LED 7 thanh với catốt chung. Hai số này được quét động theo cách là PORTB được dùng để đưa dữ liệu về số (ma 7 thanh) cần hiển thị còn PORTA được sử dụng để cho LED nào sáng.

Các LED hiển thị 7 thanh được nối song song với nhau theo cách các catốt đều được nối với nhau, hay như thường nói là catốt chung. Mười catốt (C1) được nối qua một tranzito đến chân số 18 và catốt C2 được nối với chân 17. Trong một khoảng thời gian ngắn vi điều khiển PIC cho phép một LED sáng trong khi lại làm tắt các LED kia. Quá trình đó cứ thay đổi lần lượt làm cho người dùng có cảm giác là các LED đã sáng đồng thời. Nếu giảm tần số quét động thì độ sáng sẽ giảm đi thậm chí có thể làm cho các LED bị sáng bập bùng.

Xung đồng hồ để giữ nhịp cho hoạt động của vi điều khiển PIC được lấy từ bộ dao động thạch anh có tần số tương đối cao (1 MHz). Trong một số trường hợp ta có thể sử dụng bộ dao động RC, nhưng tần số sẽ giảm đi nhiều.

Các tranzito cần được lựa chọn để đưa vào mạch vì mỗi lối ra của vi điều khiển PIC chỉ có thể chịu được dòng điện đến 25 mA, trong khi các thanh của LED có thể tiêu thụ dòng điện đến 30 mA (hoặc hơn thế nữa tuỳ theo kích thước) và trong trường hợp xấu nhất, khi mà cả 7 thanh đều sáng, dòng điện tiêu thụ có thể đến 210 mA. Cường độ dòng trong trường hợp này sẽ làm hỏng lập tức lối ra của vi điều khiển PIC. Tranzito được sử dụng như một tầng đệm và được điều khiển bởi dòng lối ra từ vi điều khiển PIC, đồng thời cho phép nhận được cường độ dòng điện lớn hơn để cung cấp cho bộ hiển thị, những loại thường được dùng là tranzito BC182 hoặc 2N2222.

Để reset (đặt lại) ta chỉ việc nối chân số 4 của vi điều khiển PIC với đất. Khi đó chương trình sẽ khởi động từ địa chỉ 0 (org 0). Giải pháp này cho phép ta reset bộ đếm ngay cả trong trường hợp sử dụng bộ hiển thị với nhiều LED hơn, chẳng hạn bốn LED.

Để làm dừng bộ đếm ta chỉ việc “ngắt” đường dẫn lối vào cấp xung cho vi điều khiển PIC. Việc sử dụng một chân riêng biệt để làm dừng bộ đếm sẽ làm mạch điện phức tạp thêm. Sau đây là một thí dụ về một chương trình được viết ra và nạp vào vi điều khiển PIC.

Bên cạnh các số 0 - 9 ta cũng có thể sửa đổi hoặc bổ sung số dòng lệnh vào chương trình để làm cho LED hiển thị một số chữ cái như: A, C, E, F, H, J, L, N, P và U.

Cấu trúc linh kiện CPLD họ FLEX10K

FLEX10K là họ linh kiện CPLD (complex programmable logic devices) với 10,000 đến 250,000 cổng. Linh kiện FLEX được cấu hình bởi chương trình nạp sẵn trong SRAM. Khi sử dụng SRAM, cấu hình sẽ không bị mất bất cứ khi nào tắt nguồn

Đặc tính

Cấu trúc

Cấu trúc của FLEX10K gồm có: + Embedded Array Blocks (EABs) + Logic Array Blocks (LABs) + I/O Element (IOE)

Embedded Array Block (EAB)

FLEX10K bao gồm các EAB (Embedded Array Block). Mỗi EAB gồm có 2048 bit, có thể tạo RAM, FOM, FIFO hoặc các chức năng logic tổng quát. Mỗi EAB gồm 100-600 cổng, có thể dùng độc lập hoặc kết hợp lại với nhau. Các EAB khi là RAM có thể là 256x8, 512x4, 1024x2, 2048x1. Ứng dụng của các EAB là tạo bộ nhớ, các bộ vi xử lý, vi điều khiển, lọc số . . .

Logic Array Block (LAB)

Các mảng Logic gồm các LAB, mỗi LAB gồm 8 LE và một đường kết nối cục bộ.

Mỗi LE gồm 1 LUT (Look-up Table) 4 ngõ vào, 1 FlipFlop lập trình được và các đường để dành để ghép nối. Các Interconnection theo hàng và cột, nối các LAB với nhau.

Phần tử logic (LE: Logic Element) của FLEX10K

Cấu tạo bảng dò tìm (LUT)

I/O Element (IOE)

Các IOE (I/O Element) chứa các I/O pin. Mỗi IOE gồm 1 bộ đệm 2 chiều và 1 FlipFlop có thể là ngõ vào/ra 2 chiều hoặc thanh ghi vào/ra.

Chủ Nhật, 21 tháng 10, 2007

IC phát sóng MAX038

IC MAX038 là một sản phẩm của hãng Maxim. MAX038 phát ra chính xác các hàm sin, vuông, răng cưa và tam giác ở tần số cao bằng cách gắn vào các thành phần tối thiểu.

Tần số ngõ ra có thể kiểm soát trên một dải tần số từ 0.1Hz đến 20MHz. Ta có thể thực hiện được điều này bằng cách gắn một điện trở từ một điện thế chuẩn bên trong MAX038 đến chân IIN và một tụ điện đến chân COSC. Chu trình làm việc (duty cycle) có thể thay đổi trên một dải rộng bằng cách thay đổi điện thế điều khiển từ -2.3V đến +2.3V. Ta có thể sử dụng duty cycle để tạo ra một sóng răng cưa . Điều biến tần số và dịch chuyển tần số được thực hiện trong cùng một cách. Duty cycle thì độc lập với kiểm soát tần số.

Sóng sin, vuông hay tam giác ở ngõ ra có thể được chọn bằng cách thiết lập một mã thích hợp đến hai chân chọn mã tương thích TTL. Tín hiệu ngõ ra cho tất cả các dạng sóng là 2Vp-p đối xứng với ground. Trở kháng thấp ở ngõ ra có thể điều khiển dòng lên tới 20mA.

Ngõ ra SYNC tương thích TTL từ bộ dao động nội duy trì ở duty cycle là 50% bất chấp duty cycle của các dạng sóng khác. Ngõ ra SYNC dùng để đồng bộ với những thiết bị khác trong hệ thống. Dao động bên trong có thể được đồng bộ với xung clock bên ngoài tương thích TTL kết nối với PDI.

Ứng dụng

+ Phát ra những dạng sóng chính xác + Dao động thế kiểm (VCO:Volltage-Controlled Oscillators) + Điều biến tần số + Điều biến độ rộng xung + Vòng khoá pha(PLL:Phase Locked Loops) + Tổng hợp tần số + Phát tín hiệu FSK –sóng Sin và sóng vuông

Đặc tính

- Hoạt động trên dải tần số từ 0.1Hz đến 20MHz. - Phát ra các dạng sóng tam giác, răng cưa, sin, vuông và xung - Việc chỉnh tần số thì độc lập với duty-cycle. - Duty cycle có thể thay đổi từ 15% đến 85% - Trở kháng ngõ ra thấp:0.1ôm - Hệ số trôi nhiệt thấp 200ppm/độ C

Các loại MAX038

Mô tả các chân MAX038

Chân

Tên Chức năng
1 VREF Ngõ ra điện thế chuẩn 2.5V để hở
2.6.9.11.18 GND Ground
3 A0 Ngõ vào chọn dạng sóng, tương thích TTL/CMOS
4 A1 Ngõ vào chọn dạng sóng, tương thích TTL/CMOS
5 COSC Kết nối tụ bên ngoài
7 DADJ Ngõ vào chỉnh duty cycle
8 FADJ Ngõ vào chỉnh tần số
10 IIN Ngõ vào dòng điện kiểm soát dao động
12 PDO Ngõ ra so pha. Nối GND nếu không sử dụng
13 PDI Ngõ vào so pha. Nối GND nếu không sử dụng
14 SYNC Ngõ ra tương thích TTL/CMOS, mức thấp là DGND và mức cao là DV+. Được sử dụng để đồng bộ với tín hiệu bên ngoài. Để hở nếu không sử dụng.
15 DGND Ground số
16 DV+ Nguồn số +5V. Có thể để hở nếu SYNC không sử dụng.
17 V+ Nguồn +5V
19 OUT Ngõ ra sin, vuông hoặc tam giác
20 V- Nguồn -5V

Sơ đồ khối cấu trúc của MAX038

Mô tả chi tiết

MAX038 phát ra những hàm ở tần số cao và méo dạng thấp đối với sóng sin, tam giác, răng cưa hay sóng vuông ở tần số nhỏ hơn 1Hz đến 20MH bằng cách sử dụng những thành phần bên ngoài tối thiểu. Tần số và duty cycle có thể được điều khiển độc lập bằng cách thiết lập nguồn dòng, điện thế hoặc điện trở. Dạng sóng ngõ ra được kiểm soát bằng mức logic tương thích được thiết lập ở ngõ vào A0 và A1. Một ngõ ra đồng bộ và dò pha được thiết kế để đồng bộ với một nguồn tín hiệu bên ngoài.

MAX038 hoạt động ở điện thế cung cấp 5V sai số 5%. Một bộ dao động cơ bản là một loại dao động thư giãn. Bộ dao động hoạt động bằng cách nạp và xả một tụ điện CF với một nguồn dòng và đồng thời sinh ra một dạng sóng tam giác. Dòng cho quá trình nạp xả được điều khiển bởi dòng đi vào IIN và được điều khiển bởi điện thế cung cấp tới FADJ và DADJ. Nguồn dòng đi vào IIN có thể thay đổi từ 2 uA đến 750 uA. Cung cấp vào chân FADJ một điện thế từ -2.4V đến +2.4V làm thay đổi tần số trong một khoảng nhỏ và tối đa là 70%.

Duty cycle có thể thay đổi từ 15% đến 85% bằng cách cung cấp một điện thế từ -2.3V đến +2.3V . Điện thế thay đổi tỷ số dòng nạp xả của tụ CF trong khi vẫn giữ tần số không đổi.

Một điện thế chuẩn VREF ổn định ở 2.5V kết hợp với điện trở cố định có thể được sử dụng để sinh ra một dòng vào chân IIN. Điện thế này có thể được phân thế để điều khiển FADJ và DADJ ở duty cycle 50%.

Tần số ngõ ra tỉ lệ nghịch với tụ CF. Giá trị CF có thể được chọn để sinh ra một tần số lớn hơn 20MHz.

Một mạch nắn dạng sin chuyển dao động sóng tam giác sang sóng sin méo dạng thấp với biên độ ổn định. Sóng tam giác, sin, vuông là ngõ vào của bộ đa hợp . Hai đường địa chỉ A0 và A1 sẽ chọn một trong ba dạng sóng ở ngõ ra. Biên độ dạng sóng ngõ ra ổn định ở 2VP-P bất chấp tần số và dạng sóng.

Sóng tam giác còn được so sánh sinh ra một sóng vuông ở ngõ ra SYNC. Ngõ ra này có thể được sử dụng để đồng bộ với bộ dao động khác. Mạch SYNC được cung cấp một nguồn riêng và có thể bị vô hiệu hoá.

Hai bộ dao động sóng vuông vuông pha được phát ra từ bộ dao động cơ bản gởi tới bộ dò pha "cổng EXOR". Phần còn lại là ngõ vào của bộ dò pha (PDI) có thể kết nối với bộ dao động bên ngoài. Ngõ ra dò pha (PDO) là một nguồn dòng mà có thể được kết nối trực tiếp tới FADJ để đồng bộ MAX038 với bộ dao động ngoại.

Chọn dạng sóng

MAX038 có thể tạo ra các dạng sóng sin, vuông và tam giác. Các chân địa chỉ tương thích TTL/CMOS (A0 và A1) để thiết lập dạng sóng như sau:

A0 A1 Dạng sóng
X 1 Sóng Sin
0 0 Sóng vuông
1 0 Sóng tam giác

X: Bất chấp

Việc chuyển dạng sóng có thể thực hiện ở bất cứ thời điểm nào không ảnh hưởng đến pha của ngõ ra. Chuyển mạch có thể xảy ra trong 0.3us.

Tần số ngõ ra

Tần số ngõ ra được quyết định bằng nguồn dòng đưa vào chân IIN và tụ nối từ chân COSC (tới ground) và điện thế ở chân FADJ.

Ngõ vào FADJ

Tần số ngõ ra có thể được điều biến bởi FADJ. FADJ thường được sử dụng để chỉnh cho một tần số chính xác và vòng khoá pha. Thông thường, tần số cơ bản (FO) được thiết lập bởi IIN khi VFADJ=0V. Tần số này có thể thay đổi từ 0.3 đến 1.7 lần khi VFADJ thay đổi từ -2.4V đến +2.4V (thay đổi FO 70%).

Duty cycle

Điện thế ở DADJ kiểm soát duty cycle ( được định nghĩa tỉ số của dạng sóng ngõ ra dương ). Thông thường VDADJ=0 và duty cycle là 50%. Điện thế thay đổi từ -2.3V đến +2.3V làm thay đổi duty cycle từ 15% đến 85%. Điện thế ngoài khoảng 2.3V có thể là nguyên nhân làm dịch chuyển và không ổn định tần số ở ngõ ra. DADJ có thể được sử dụng để sinh ra méo dạng sóng sin. Khi không chỉnh duty cycle (VADJ=0V) thì duty cycle là 50% sai số 2%. Để giảm méo dạng ta có thể cung cấp một điện thế nhỏ (thường thì nhỏ hơn 100mV ) để chỉnh duty cycle.

Ngõ ra

Biên độ ngõ ra cố định ở 2VP-P đối xứng với ground đối với tất cả các dạng sóng. Ngõ ra có một điện trở ra nhỏ hơn 0.1 ôm và có thể điều khiển dòng lên đến 20mA với một tụ 50pF. Cách ly ngõ ra với điện dung ngõ ra bằng một điện trở (thường là 50 Ôm ) hoặc là một mạch đệm điện thế.

Điện thế chuẩn

REF ổn định ở 2.5V và dòng là 4mA. Được sử dụng chủ yếu để cung cấp dòng cho IIN hoặc để thay đổi FADJ và DADJ.Điện thế này có thể được sử dụng cho những ứng dụng khác bên ngoài MAX038. Thường nối điện thế này với một tụ điện 100nF để giảm nhiễu.

Ngõ ra đồng bộ

SYNC là ngõ ra tương thích TTL/CMOS mà có thể được sử dụng để đồng bộ tín hiệu bên ngoài. Khi ngõ ra là sóng vuông thì tín hiệu SYNC sớm pha hơn 90 độ. Duty cycle của SYNC thì ổn định ở 50% và không phụ thuộc vào việc điều khiển DADJ.

Dò pha nội

MAX038 chứa một bộ dò pha tương thích TTL/CMOS mà có thể được sử dụng trong vòng khoá pha để đồng bộ ngõ ra với một tín hiệu bên ngoài. Nguồn tín hiệu bên ngoài được kết nối với ngõ vào dò pha (PDI) và ngõ ra so pha được lấy từ PDO. PDO là ngõ ra của cổng EXOR. PDO thường nối với FADJ bởi một điện trở RPD và tụ điện CPD. RPD để thiết lập độ lợi dò pha còn tụ điện là một bộ phận làm yếu thành phần tần số cao và là một cực trong bộ lọc thông thấp.