Vi điều khiển nào có thể kết nối trực tiếp với cổng USB?


9

Về cơ bản, tôi chỉ cần gửi một số dữ liệu tới vi điều khiển qua USB, sau đó bộ vi xử lý sẽ giải mã dữ liệu và điều khiển một dải đèn LED chạy ở 5V. Tôi đang gặp khó khăn trong việc tìm kiếm vi điều khiển phù hợp cho công việc.

Bộ vi điều khiển chỉ cần có 2 cổng nối tiếp để giao tiếp USB, hai cổng ra nối tiếp để giao tiếp với dải đèn LED và có thể hoạt động ở mức 5V. Dường như không cần thiết phải có IC chuyên dụng để liên lạc với USB khi tất cả những gì tôi cần là một cổng COM nối tiếp được thiết lập.

Ví dụ, đây là đoạn mã Arduino ghi một byte vào dải LPD8806:

void write8(uint8_t d) {
  for (uint8_t i=0; i<8; i++) {
    if (d & _BV(7-i))
      digitalWrite(dataPin, HIGH);
    else
      digitalWrite(dataPin, LOW);
   digitalWrite(clockPin, HIGH);
   digitalWrite(clockPin, LOW); 
  }
}

Để chốt dữ liệu bạn gửi số không vào dải.


Tôi nghĩ bạn có nghĩa là một kết nối USB (chúng là hai chiều) và một kết nối nối tiếp (cũng là hai cách). Nếu bạn thích pic, gia đình 18f4550 sẽ thực hiện công việc.
Scott Seidman

1
Giao thức cho dải đèn LED là gì? Bạn có thể thêm một liên kết đến biểu dữ liệu hoặc trang web của dải không?
Rocketmagnet

@Rocketmagnet Đây là dải LED này . Bảng dữ liệu bằng tiếng Trung Quốc, tuy nhiên đơn giản chỉ có một chuỗi nối tiếp và đồng hồ trong, và bạn chốt bằng cách gửi các số không xuống dòng.
Steve Barna

Câu trả lời:


7

Tôi đoán rằng bằng "hai cổng nối tiếp", bạn có nghĩa là một UART (vì bạn cũng mô tả USB là 2 cổng). Rocketmagmet chỉ ra rằng nhiều / hầu hết các chuỗi LED sử dụng SPI, nhưng điều đó sẽ cần ít nhất 3 dây. Bạn có thể chỉ định giao thức nào bạn cần?

Nói chung, Microchip có bộ vi điều khiển có chi phí thấp nhất, cũng lần này. Microchip cũng có nhiều bộ vi điều khiển trong gói DIL, trong khi nhiều người khác đã bỏ qua điều đó. Có thể quan trọng đối với DIY. các PIC18F13K50

  • tồn tại trong cả gói DIL-20 và SMT
  • hoạt động ở mức 5 V (để giao tiếp với dải đèn LED)
  • là chi phí thấp tại $ 2.5 (OK, đó là tương đối, nhưng bộ điều khiển có thể USB một chút đắt hơn so với các loại cơ bản hơn)
  • đã tăng cường USART cho giao diện UART
  • có giao diện SPI trong trường hợp bạn muốn nói
  • có 25 mA nguồn và I / O chìm, vì vậy bạn có thể lái trực tiếp một vài đèn LED chỉ báo nếu cần

Đọc thêm
Chức năng chung USB trên thiết bị nhúng , Ứng dụng vi mạch Lưu ý AN1166


Anh ta đề cập đến các dải đèn LED, vì vậy tôi cho rằng đó là một giao thức đồng bộ (về cơ bản là SPI không có pin trả về dữ liệu). PIC đó chỉ có 1 cổng SPI, vì vậy sẽ không phù hợp. Mặc dù anh ta có thể cắn giao thức.
Rocketmagnet

@Rocket - Anh ấy nói nó là SPI ở đâu? Và anh ta sẽ không cần hai xe buýt SPI: SPI là đa nô lệ. Và như Scott đã nhận xét và tôi cũng đã nói khi bắt đầu câu trả lời của mình, tôi nghĩ bởi hai cổng anh ấy có nghĩa là hai chân, đó là lý do tại sao tôi nghĩ về UART trước tiên.
stevenvh

Có lẽ PIC18F24J50? Nhưng đó là một phần 3.3v, vì vậy tôi không biết liệu nó có giao diện với dải đèn LED không.
Rocketmagnet

1
Anh ấy không nói đó là SPI, nhưng tôi đã sử dụng dải đèn LED trước đó và chúng luôn đồng bộ. Tôi có thể sai. Anh ta có thể có nghĩa là một loại dải LED khác mà tôi chưa từng thấy trước đây. Tôi nghĩ rằng anh ấy có nghĩa là hai chân cho đồng hồ và dữ liệu.
Rocketmagnet

Thật ra, tôi đã đọc sai câu hỏi và nghĩ rằng anh ấy nói hai dải đèn LED! Ông thực sự đã nói hai chân cho một dải LED. Vì vậy, er, như bạn đã được với đề nghị ban đầu.
Rocketmagnet

4

Dải LED của bạn có một giao diện nối tiếp đơn giản. Nếu bạn chỉ đang cố gắng điều khiển nó bằng máy tính, bạn có thể sử dụng chip FTDI để vẫy các chân: http://www.ftdichip.com/ Products / ICs /FT232R.htmlm

Sau đó, sự phức tạp nằm ở phía PC sử dụng các thư viện libftdi hoặc D2XX . Nhưng nó không quá tệ, phức tạp tương tự như ví dụ Arduino của bạn.

Nếu bạn không thích làm phần cứng, bạn có thể mua cáp có sẵn chip chip FTDI từ các nhà phân phối FTDI như Mouser hoặc từ Sparkfun, v.v. Cáp có sẵn trong các cấu hình điện áp khác nhau, vì vậy hãy đặt hàng cẩn thận.

Tất nhiên, nếu bạn muốn dự án là độc lập hoặc tự chủ bằng cách nào đó, bạn sẽ muốn một giải pháp vi điều khiển đầy đủ.


Tôi nên xem xét việc gửi dữ liệu SPI thô tới dải LED thông qua Bộ điều khiển USB. Microchip tạo ra USB-SPI để tự thiết lập như một thiết bị HID, trong khi các chip FTDI là VCOM hoặc D2XX và tôi không chắc chắn loại nào phù hợp nhất để chạy dải sáng từ chương trình c ++.
Steve Barna

Tôi không biết về cầu nối USB <-> SPI hiển thị dưới dạng cổng nối tiếp ảo giống như các chip cầu nối USB <-> UART. Thay vào đó, bạn sẽ phải viết mã bit-banging, điều này dễ dàng cho SPI.
đánh dấu

3

Cân nhắc sử dụng PSoC3 .

PSoc3

Chúng có sẵn với USB và hầu hết mọi thiết bị ngoại vi bạn muốn. (Chúng được cấu hình trong phần mềm) Bạn chắc chắn sẽ có hai cổng nối tiếp cho dải đèn LED. Bạn có thể sẽ có 20 nếu bạn muốn.

Môi trường phát triển cũng là một niềm vui để sử dụng.

Người tạo PSoC


3
Chà điều đó có vẻ hơi quá mức. Nhưng tôi sẽ xem xét nó.
Steve Barna

8
@Rocket - Tôi thấy trên Digikey rằng một PSOC có giá cao hơn gấp đôi PIC tôi đã đề cập. Tôi không nghi ngờ rằng chúng đáng giá vàng của chúng (như một lời nói), nếu bạn cần tất cả các thiết bị ngoại vi có thể định cấu hình đó, cho các giải pháp bạn sẽ không tìm thấy trên bất kỳ vi điều khiển nào khác, như 16 UART hoặc hơn thế. Nhưng OP dường như chỉ cần một cổng USB và một cổng nối tiếp (UART, SPI hoặc I2C), thì sẽ rẻ hơn nhiều khi chọn một bộ điều khiển tương đối cấp thấp có điều đó.
stevenvh

@stevenvh - Tôi đồng ý, các PSoC có thể rất đắt. Chúng chỉ thực sự đáng giá cho sản xuất khi bạn có thể tận dụng nhiều chức năng của chúng. Nhưng để tạo mẫu, chúng hoàn toàn xứng đáng. Bạn không bao giờ phải đi săn tìm PIC đặc biệt chỉ có sự kết hợp đúng của các thiết bị ngoại vi và bạn có thể thực hiện các thay đổi phần cứng chỉ bằng một nút bấm!
Rocketmagnet

@Rocket - "thực hiện thay đổi phần cứng chỉ với một nút bấm". Vâng, đó là những gì các anh chàng Cypress nói với tôi. Tôi không hiểu điều đó (tôi đã thảo luận nhiều về vấn đề này với các đồng nghiệp của mình và họ cũng không) bởi vì tôi muốn làm một cái gì đó khác biệt với phần cứng. Tôi làm đánh giá cao những công cụ cấu hình, như trong ảnh chụp màn hình của bạn, và tôi đã năn nỉ Motorola (trước khi họ trở thành Freescale) một lần rhousand để thêm một FPGA nhỏ để điều khiển HC05 của họ, nhưng đó không phải là ...
stevenvh

@Rocket - (tiếp tục) ... để cấu hình lại trong ứng dụng, đó là để có bộ điều khiển linh hoạt hơn trong quá trình phát triển . Chúng tôi là một khách hàng lớn của Motorola vào thời điểm đó và họ đã tham khảo ý kiến ​​của chúng tôi về ý tưởng làm thế nào để dọn dẹp mớ hỗn độn HC05; Có hàng trăm loại khác nhau, một số thành công hơn những loại khác. Vì vậy, tôi đã đề xuất 1) FPGA và / hoặc 2) một mảng chuyển đổi điểm chéo để cho phép bạn kết nối các thiết bị ngoại vi được chọn với I / O (giới hạn); phần cứng đã chết Không có gì xảy ra, và Motorola không tạo ra bộ điều khiển nữa ...
stevenvh

0

Nó không thể đơn giản hơn thế này: ATmega8U2 .

Để tắt nó, bạn thậm chí có thể sử dụng nó với bộ tải khởi động Arduino ...

Bảng dữ liệu: http://www.atmel.com/Images/doc7799.pdf

(xin lỗi vì hơi súc tích, tôi đang gõ từ điện thoại)


2
Khi bạn quay lại phía sau PC của bạn (không nên "ở phía trước"?) Bạn có thể giải thích: đây là giải pháp đơn giản nhất như thế nào? Nó phải là một câu chuyện hay :-), vì ATmega8U2 đắt hơn 50% so với PIC.
stevenvh

1
Tôi thích dòng AVR (đặc biệt là ATmega) vì người ta có thể sử dụng môi trường Arduino để tạo mẫu nhanh (poster đã quen với điều đó!) Và cho phép các chu kỳ sửa lỗi thử nghiệm nhanh. Sau đó, tôi tối ưu hóa mã theo cách thủ công hoặc thậm chí sử dụng một uC AVR nhỏ hơn, như Tiny2313 (BTW, có các lib USB mềm cho các AVR). Tôi muốn thích PIC, nhưng khi tôi nhìn vào chúng (ngay trước khi Arduino tắt), tôi đã chọn các máy AVR: Tôi thấy tài liệu của chúng tốt hơn và cộng đồng mạnh hơn - mặc dù ở Hungary, PIC được hỗ trợ nhiều hơn trong lịch sử. Tôi sẽ chọn một dev. Motorcycle ngắn hơn để giảm chi phí trong sản xuất khối lượng thấp.
ppeterka

1
Chính xác tại sao các downvote? Quan tâm để giải thích?
ppeterka
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.