Cách thực hiện: Tiện ích logic lập trình (CPLD)

Các tiện ích logic lập trình phức tạp (CPLD) chứa các khối xây dựng cho nhiều IC LOGIC 7400-MERRIES. Tổng số mạch có thể được thiết kế trên PC cũng như sau đó tải lên CPLD để thực hiện ngay lập tức. Một bộ vi điều khiển được liên kết với CPLD giống như một bộ vi điều khiển được ghép nối với một thẻ mạch được lập trình lại cũng như một cửa hàng điện tử hoàn toàn dự trữ.

Đầu tiên, chúng tôi không chắc chắn về sự quyến rũ rộng lớn cũng như áp dụng CPLD trong các dự án có sở thích, tuy nhiên chúng tôi đã bị thuyết phục. Một tiện ích logic tùy chỉnh có thể thoát khỏi những ngày đọc DataSheets, khám phá sự kết hợp IC logic hoàn hảo, cũng như sau đó chờ đợi trên chip đến. Bảng mạch dễ dàng hơn với CPLD vì một chip duy nhất với vị trí pin có thể lập trình có thể thay thế 100 IC logic riêng tư. Lỗi mạch có thể được sửa chữa bằng cách tải lên một thiết kế mới, thay vì khắc cũng như nhồi một bảng mạch mới. CPLD rất nhanh, với thời gian phản ứng bắt đầu từ 100 MHz. Mặc dù tính linh hoạt cực độ của họ, CPLD là một sự đổi mới trưởng thành với các chip bắt đầu từ $ 1.

Chúng tôi đã có một bảng thăng tiến về nhà, được tự lập trình để giúp bạn bắt đầu. Đừng lo lắng, bảng này có giao diện cổng nối tiếp để làm việc với CPLD, cũng như không cần một lập trình viên JTAG Cổng riêng (thường là song song).

Giới thiệu CPLD.

Khi sử dụng CPLD

Cân nhắc sử dụng CPLD khi một kiểu yêu cầu nhiều hơn một IC Logic 7400 Series. CPLD sẽ rẻ hơn, nhanh hơn, cũng như có thể được lập trình với cấu hình pin hoàn hảo cho các PCB dễ dàng hơn.

Sử dụng CPLD trong các kiểu Tricky có thể cần một số lần lặp. Thật dễ dàng để tạo kiểu một mạch mới trong ứng dụng phần mềm cũng như tải nó lên CPLD so với thiết kế, etch, cũng như nội dung một bảng mạch mới.

Đối với tốc độ tối đa cũng như phản hồi ngay lập tức, hãy chọn CPLD. Sự khác biệt về tốc độ là tuyệt vời; CPLD bắt đầu ở 100 MHz, trong khi các bộ vi điều khiển phản ứng với các ngắt ở một vài MHz. Các mạch loại CPLD Kiểu phản ứng với kích thích bên ngoài, các phản ứng xảy ra gần như ngay lập tức. Một bộ vi điều khiển thực thi mã để phản ứng với các sự kiện, thậm chí các thói quen ngắt có độ trễ tương đối cao.

Cpld vs fpga.

FPGA được hiểu rõ hơn nhiều so với CPLD, tuy nhiên họ chia sẻ nhiều đặc điểm. Tuy nhiên, sự tương tự này không hoàn hảo, tuy nhiên chúng tôi thích: Trường hợp FPGA là một lõi bộ xử lý lập trình lại, CPLD là thẻ mạch hoặc bảng mạch có thể lập trình lại. FPGAS Thay thế vi điều khiển, bộ nhớ, cũng như các thành phần khác. CPLDs tham gia logic IC, cũng như hoạt động tốt với vi điều khiển.

Nhà sản xuất của

Altera cũng như Xilinx, các nhà sản xuất CPLD lớn nhất, được hiểu rõ hơn về FPGA của họ. Sữa bán dẫn mạng là một nhà sản xuất CPLD lớn hơn với ít khu phố theo dõi. Atmel làm cho các phiên bản tương thích mã PIN của CPLD tiêu chuẩn ngành cũ.

Nếu bạn có kế hoạch làm việc tại 5Volts, sự lựa chọn của bạn bị hạn chế. Xilinx XC9500 CPLD vẫn được cung cấp dưới dạng cổ phiếu cũ mới, tuy nhiên chi phí gấp bốn lần so với các tương đương 3.3Volt mới hơn. Sê-ri ATF1502 của Atmel hoạt động tại 5Volts, tuy nhiên họ không cung cấp một môi trường tiến bộ miễn phí.

Ở mức 3,3Volts, có nhiều tùy chọn hơn, tuy nhiên CPLDS mới dần dần có một lõi chạy ở tốc độ 2,5volts, 1.8volts hoặc thấp hơn. Altera Maxii cũng như dòng Xilinx XC9500XL rất có thể là CPLD 3.3Volt nổi bật nhất. Xilinx cũng làm cho CoolRunnerII CPLD, tuy nhiên nó chỉ có sẵn trong một gói TQFP cũng như cần một nguồn cung cấp 1.8Volt riêng biệt cho lõi.

Gói hàng

Hầu hết các nhà sản xuất cung cấp một hoặc hai CPLD trong một gói PLCC 44 thân thiện với sở thích, mặc dù điều này đang bắt đầu biến mất. PLCC là một chip cài đặt bề mặt có kích thước đơn với các chân trên cả bốn phía. Các ổ cắm PLCC44 thường được cung cấp trong các phiên bản thông qua lỗ cũng như SMD. Thật không may, các hộ gia đình CPLD mới hơn đang bắt đầu thoát khỏi Gói PLCC cũng như cung cấp 44 mã PIN cũng như các chip TQFP lớn hơn, chẳng hạn như CoolRunnerII của Xilinx.

Môi trường phát triển

Hầu hết các nhà sản xuất cung cấp một bầu không khí thăng tiến miễn phí hỗ trợ nhập cảnh theo phong cách sử dụng sơ đồ đơn giản, ngoài Verilog hoặc VHDL. Nhiều người sẽ không hỗ trợ các FPGA mới nhất trong phiên bản miễn phí, tuy nhiên chúng tôi chỉ yêu cầu các bộ phận CPLD. Altera có Quartus, Xilinx có Ise, cũng như mạng Lattice có Isplever. Atmel có Prochip Designer cho dòng ATF15XX, tuy nhiên họ chỉ cung cấp giấy phép dùng thử thứ 6 tháng – mà họ sẽ không thực sự cung cấp cho chúng tôi.

Lập trình viên

Ban tiến bộ chúng tôi trình bày không yêu cầu lập trình viên JTAG riêng biệt vì vi điều khiển PIC đã trình chương trình CPLD. Nếu bạn muốn lập trình viên bên ngoài, rẻ nhất là các lập trình viên cổng song song: Cáp song song III cho Xilinx cũng như Bysyblaster cho Altera. Bản sao giá cả phải chăng, cũng như sơ đồ, được cung cấp tại Sparkfun. OpenOCD là một lập trình viên USB JTAG chung sẽ hoạt động với nhiều CPLD, FPGAS, cũng như vũ khí.

Sự lựa chọn của chúng tôi

Cuối cùng chúng tôi đã định cư trên loạt Xilinx XC9500XL kể từ khi nó had Một bộ tiến bộ rẻ tiền, chúng tôi có thể sử dụng để kiểm tra lập trình viên JTAG của chúng tôi trước khi triển khai toàn bộ thiết kế.

DO-CPLD-DK từ Digilent bao gồm XC9572XL, CoolRunnerII, cũng như lập trình viên cổng song song. Nu Horizons có một số thiết kế không RoHS cũ với giá 40 đô la, tuy nhiên do xử lý loại biến cẩu trong các tập lệnh xử lý thẻ lịch sử tín dụng của họ, chúng tôi không thể hoàn toàn một đơn hàng trực tuyến. Chúng tôi đã cố gắng để làm điều đó qua điện thoại, tuy nhiên họ đã từ chối lấy một đơn đặt hàng nhỏ như vậy trên điện thoại, ngay cả trong một vụ trục trặc trang web. Cuối cùng, nó rẻ hơn để trả toàn bộ chi phí tại Digikey (# 122-1512-ND) sau khi bao gồm các chi phí vận chuyển cắt cổ của Horizon mới. Chúng tôi thường không đề cập đến điều này, tuy nhiên chỉ với hai địa điểm để mua bảng, rất có thể đáng để lưu ý kinh nghiệm của chúng tôi.

Bảng thăng tiến CPLD

Nhấp vào ngay tại đây để xem hình ảnh sơ đồ kích thước đầy đủ (PNG). Mạch cũng như PCB được thiết kế sử dụng phiên bản phần mềm miễn phí của Cadsoft Eagle. Tất cả dữ liệu cho công việc này được bao gồm trong kho lưu trữ việc làm được liên kết ở cuối bài viết.

Mạch.

Vi điều khiển PIC 24FJ64GA002 (IC1) cung cấp giao diện cá nhân cũng như lập trình với CPLD. Chúng tôi sử dụng PIC $ 4 này trong rất nhiều công việc vì mã PIN ngoại vi chọn chức năng giúp định tuyến bảng thực sự dễ dàng. Kiểm tra phần giới thiệu của chúng tôi về PIC24F để biết thêm chi tiết. PIC cần tương tác với một cổng nối tiếp PC, vì vậy chúng tôi đã thêm bộ thu phát MAX3232 RS232 giá cả phải chăng. Giao diện nối tiếp phải hoạt động với bộ chuyển đổi nối tiếp USB->.

Tùy chọn CPLD (IC3) của chúng tôi, Xilinx XC9572XL (PDF), được liên kết giữa PIC cũng như một số thành phần khác. Chúng ta có thể tạo ra một phạm vi mạch vô tận giữa PIC cũng như các chip khác sử dụng logic lập trình lại bên trong CPLD. PIC sẽ lập trình CPLD với mã được gửi từ một cổng nối tiếp PC, tuy nhiên chúng tôi vẫn mang các chân JTAG vào tiêu đề để gỡ lỗi bên ngoài đơn giản.

Bộ tạo dao động lập trình kỹ thuật số DS1085 (IC4) tạo ra tần số xung nhịp giữa 8kHz cũng như 133 MHz, ở mức tăng 10kHz. Điều này cực kỳ giống với DS1077, chúng tôi đã bao gồm trước đó, tuy nhiên nó thậm chí còn có các bước giữa tất cả các tần số. DS1085 cần nguồn cung cấp 5Volt (VR2). Giao diện I2C cũng chạy ở tốc độ 5Volts, vì vậy chúng tôi đã liên kết nó với các chân pic dung sai 5volt. Thay vào đó, có thể sử dụng 3,3Volt 66 MHz 1085L, cũng như loại bỏ nguồn cung cấp 5Volt.

Chúng tôi sử dụng bộ điều chỉnh điện áp 3.3Volt SOT223 không tốn kém (VR1) để cung cấp năng lượng cho hầu hết các mạch. Có thể loại trừ nguồn cung cấp 5Volt (VR2) nếu bạn sử dụng bộ tạo dao động 1085L 3.3VOLT chậm hơn.

CPLD thường được sử dụng như bộ điều khiển bộ nhớ, vì vậy chúng tôi đã bao gồm 32k SRAM (IC5) trên bảng thăng tiến. Một chốt 3.3Volt với giao diện đầu vào dung sai 5Volt Đầu vào bộ nhớ cho nhiều loại điện áp ngoài (IC6). Đầu vào chốt được giữ thấp với mạng điện trở 1MOHM (RN1). Chúng ta sẽ thảo luận về phần này trong một bài viết sắp tới.

PCB.

Hội đồng quản trị là một thiết kế một mặt Quasi. Chúng tôi đã thực hiện một số sự thỏa hiệp để chúng tôi có thể tự tạo ra PCB cực kỳ thử nghiệm này. Chúng tôi trình bày hội đồng quản trị ‘như’ đối với những khó khăn khác có thể muốn khắc bảng này tại nhà. Nếu bạn gửi PCB đến một căn nhà, hãy cố gắng khắc phục những vấn đề này trước khi tạo ra một bảng hai mặt ‘thực’.

Một chốt năng lượng của CPLD đang thiếu một tụ điện tách rời hoàn toàn; Không có phương pháp nào để đặt một tụ điện trong khu vực đó. Một tụ tách tách CPLD, cũng như tụ tách tách SRAM, là các bộ phận thông qua lỗ. Sử dụng các bộ phận thông qua lỗ này thoát khỏi một vài dây nhảy.

Các dây nhảy ở mặt sau của bảng được tối ưu hóa cho sản xuất một mặt, thay vì thực hành phong cách tuyệt vời. Chúng tôi làm giả một bảng hai mặt bằng cách hàn xe buýt điện ở phía sau. Một phong cách bảng hai mặt chính hãng sẽ dẫn đường dẫn điện để ngăn chặn các đường dẫn tín hiệu chéo, cũng như bao gồm các tụ tách rời còn thiếu.

Chúng tôi sử dụng một ổ cắm PLCC cài đặt bề mặt, tuy nhiên phiên bản thông qua lỗ chắc chắn là một ý tưởng tốt hơn nhiều. Chúng tôi mặc dù phiên bản SMD sẽ đơn giản để hàn, tuy nhiên [hóa ra là] một cơn ác mộng. Chúng tôi thực sự mong muốn CPLD ở phía trước của bảng để trình bày thú vị nhất có thể. Một bảng hai mặt thích hợp với các lỗ thông qua có thể có ổ cắm thông qua phía trước, tuy nhiên điều này là không thể với bảng nguyên mẫu 1 mặt của chúng tôi.

Danh sách các bộ phận

Nhấp vào ngay tại đây để biết sơ đồ vị trí kích thước đầy đủ (PNG).

Phần
Giá trị

IC1.
Pic25fj64ga002 (SOIC)

IC2.
MAX3232CSE (SOIC-N)

IC3.
XC9572XL-10PCG44C (PLCC)


Ổ cắm PLCC44, SMD

IC4.
DS1085 hoặc DS1085L (SOIC)

IC5.
32kx8, 3.3V, SRAM (soj)

IC6.
74LVT573D (SOIC)

VR1.
Điều chỉnh 3.3V, LD1117S33 (SOT223)

VR2.
Bộ điều chỉnh 5V, LD1117S50 (SOT223)

C1-11,13-17.
Tụ tách 0,1UF (0805)

C12.
Tụ điện 0,01UF (0805)

C15,16.
Tụ tách 0,1uF (thông qua lỗ)

C18.
Tụ Tantalum 10UF (A)

R1,2.
Điện trở 390ohm (0805)

R3-5.
Điện trở 2000ohm (0805)

Rn1.
Mạng điện trở 1MOHM (9 pin)

LED1,2.
LED (08.05)

X1.
Đầu nối cổng nối tiếp DB9 * chưa được kiểm tra

J1.
Jack Power 2.1mm

ICSP, JTAG, SV1
Tiêu đề pin 0,1 “, Góc vuông

S1.
Công tắc Tactile (DTSM-6)

Firmware

Phần sụn được viết bằng C sử dụng phiên bản trình bày miễn phí của trình biên dịch PIC C30. Khám phá tất cả về việc làm việc với PIC này trong phần Giới thiệu của chúng tôi về sê-ri PIC 24F. Phần sụn được bao gồm trong kho lưu trữ công việc ở cuối bài viết.

Chúng tôi mong muốn một phương pháp siêu đơn giản để tương tác với phần cứng trên bảng mà không có chu trình kiểm tra chương trình biên dịch bất tận. Chúng tôi đã thực hiện một phiên bản tùy chỉnh của phần sụn Bus Pirate cung cấp giao diện thiết bị đầu cuối ASCII đơn giản cho chip đồng hồ DS1085 (I2C), giao diện lập trình CPLD (JTAG), cũng như giao diện 3 cáp (SPI) cho CPLD. Kiểm tra hướng dẫn của Pirate Bus cho nền trên cú pháp đơn giản được sử dụng với phần sụn.

Phần mềm cướp biển Bus ban đầu xử lý một số giao thức chia sẻ các chân chính xác. Đối với phiên bản CPLD, chúng tôi đã thay đổi các bài tập mã PIN để định hình các kết nối trên bảng thăng tiến. Chúng tôi cũng đã loại bỏ các mô-đun không sử dụng cũng như các tùy chọn.

Ví dụ Led Led của CPLD

Chúng tôi đã chuẩn bị một số kiểu dáng trong môi trường tiến bộ ISE của Xilinx. Các sơ đồ, tệp vị trí PIN, cũng như các kiểu được biên dịch (XSVF) được bao gồm trong kho lưu trữ công việc được liên kết ở cuối bài viết. Một lời giải thích đầy đủ về ISE vượt quá phạm vi của bài viết này; Chúng tôi phát hiện ra dữ liệu hỗ trợ đủ hữu ích để thực hiện các ví dụ này.

Phong cách đầu tiên chỉ thắp sáng đèn LED được liên kết với PIN 8 của CPLD.

Chuẩn bị tệp XSVF

XSVF là một định dạng lập trình JTAG nén, như được giải thích bởi Xilinx trong ghi chú ứng dụng này (PDF). XSVF không bị hạn chế để lập trình các thiết bị Xilinx, cũng như có thể sẵn sàng cho bất kỳ loại chip nào cung cấp tệp BSDL JTAG điển hình.

Mở công cụ lập trình hiệu ứng từ bảng điều khiển công việc Suite ISE trong cấu hình thiết bị đích-> Tác động.

Chọn lựa chọn để tạo tệp Quét giới hạn, cũng như đặt loại thành XSVF.

Cung cấp cho đầu ra XSVF một tên dữ liệu cũng như sau đó thêm một hình ảnh CPLD được biên dịch (EX1.JED) khi được nhắc thêm thiết bị.

Bạn sẽ thấy một chuỗi jtag có chứa một thiết bị duy nhất.

Nhấp vào tiện ích cũng như CHƯƠNG TRÌNH CHỌN; Hiệu ứng sẽ ghi lại trình tự lập trình vào tệp XSVF.

Với dữ liệu XSVF trong tay, đã đến lúc mở một thiết bị đầu cuối cũng như chương trình CPLD. Chúng tôi thích thuật ngữ Tera cũng như Hercules trên Windows. Bạn phải cho phép luồng Xon / Xoff quản lý trong máy khách để sử dụng giao diện JTAG. Cài đặt phía PC mặc định cho thiết bị đầu cuối bảng thăng tiến là 115200bps, 8N1.

HIZ> M <-Chọn chế độ 1. HIZ. 2. I2C. 3. JTAG. 4. Raw3wire. Chế độ> 3 <-JTAG Bộ 900 chế độ 602 jtag đã sẵn sàng Jtag> (2) <-probe jtag chuỗi macro chuỗi init xxx jtag xxx jtagsm: thiết lập lại xxx jtagsm: thiết lập lại-> nhàn rỗi
XXX JTAGSM: Idle-> Đăng ký lệnh (bị trì hoãn một bit cho TMS)
xxx jtagsm: ir-> nhàn rỗi
XXX JTAGSM: IDLE-> Đăng ký dữ liệu
xxx jtagsm: dr-> nhàn rỗi
xxx jtagsm: thiết lập lại
xxx jtagsm: thiết lập lại-> nhàn rỗi
XXX JTAGSM: IDLE-> Đăng ký dữ liệu
Báo cáo chuỗi XXX JTAG:
Thiết bị 0x01
# 0x01: 0xc9 0x02 0x06 0x9a <-xc9572xl Trả lời xxx jtagsm: dr-> nhàn rỗi
Jtag >.

Trong thiết bị đầu cuối, chúng ta đi vào menu Chế độ (M), cũng như chọn JTAG (3). Macro 2 thăm dò chuỗi JTAG, trong tình huống của chúng tôi đây chỉ là CPLD. Báo cáo chuỗi cho chúng ta biết rằng chip được liên kết cũng như phản hồi. Kiểm tra thêm về giao diện JTAG.

Bây giờ chúng ta có thể chạy lập trình viên XSVF, macro (3), cũng như tải lên dữ liệu XSVF từ thiết bị đầu cuối ở chế độ nhị phân. Ví dụ đầu tiên chỉ cần bật đèn LED trên pin 8. Nếu đèn LED, chúng ta có thể xác nhận rằng lập trình đã thành công. Nếu đèn LED của bạn không sáng, đừng tuyệt vọng; Đôi khi lập trình viên jtag cũng như macro reset (1) sẽ lấy chip.

Dẫn ở độ sáng đầy đủ.

74LS32 / 4071 hoặc cổng, nhấp nháy với giá một nửa (/ 2)

Một yếu tố chính của bảng Tiến bộ CPLD là bộ tổng hợp tần số 1085 (L) được liên kết với PIN 7 của CPLD. Ví dụ tiếp theo sử dụng logic hoặc cổng, giống như IC 74LS32 hoặc 4071, để nhấp nháy đèn LED bất cứ khi nào tín hiệu đồng hồ cao. Ngay cả tốc độ xung nhịp chậm nhất, nhấp nháy sẽ nhanh chóng để xem, tuy nhiên chúng ta sẽ có được tác động làm mờ PWM tốt đẹp so với ví dụ đầu tiên.

Chế độ JTAG> M <-Chọn chế độ 1. HIZ. 2. I2C. 3. JTAG. 4. Raw3wire. Chế độ> 2 <-I2C Giao diện đến DS1085 Bộ 900 chế độ 202 I2C sẵn sàng I2C> (1) <-Address Duyệt macro XXX Duyệt 7Bit không gian địa chỉ I2C. Tìm thấy tiện ích tại: 0xb0 0xb1 <-Found Địa chỉ DS1085 I2C >.

Chương trình CPLD như trước, cũng như sau đó chuyển sang chế độ I2C để có quyền truy cập vào đồng hồ DS1085. Chúng tôi có thể tra cứu địa chỉ tiện ích trong th

Back to top