Какой микроконтроллер можно подключить напрямую к USB-порту?

9

По сути, мне просто нужно отправить некоторые данные в микроконтроллер через USB, затем микропроцессор декодирует данные и запускает светодиодную ленту, которая работает при 5В. У меня проблемы с поиском подходящего микроконтроллера для работы.

Микроконтроллер просто должен иметь 2 последовательных порта для связи USB, два последовательных порта для связи со светодиодной полосой и иметь возможность работать при напряжении 5 В. Кажется ненужным иметь специальную микросхему для связи USB, когда все, что мне нужно, это настроить последовательный COM-порт.

Например, вот фрагмент кода Arduino, который записывает байт в полосу 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); 
  }
}

Для фиксации данных вы отправляете нули на полосу.

Стив Барна
источник
Я думаю, что вы имеете в виду одно USB-соединение (они двухсторонние) и одно последовательное соединение (также двухстороннее). Если вам нравится рис, семья 18f4550 сделает эту работу.
Скотт Сейдман
1
Какой протокол для светодиодной ленты? Можете ли вы добавить ссылку на таблицу или веб-сайт полосы?
Ракетный магнит
@Rocketmagnet Его этот светодиод Газа . Таблица данных на китайском языке, однако есть просто последовательный вход и часы, и вы фиксируете, отправляя нули вниз по линии.
Стив Барна

Ответы:

7

Я предполагаю, что под «двумя последовательными выходными портами» вы подразумеваете один UART (поскольку вы также описываете USB как 2 порта). Rocketmagmet указывает, что многие / большинство светодиодных цепочек используют SPI, но для этого потребуется как минимум 3 провода. Можете ли вы указать, какой протокол вам нужен?

В общем, у Microchip самые дешевые микроконтроллеры, на этот раз тоже. И у Microchip есть много микроконтроллеров в пакете DIL, в то время как многие другие отказались от этого. Может быть важно для DIY. PIC18F13K50

  • существует в пакетах DIL-20 и SMT
  • работает при 5 В (для сопряжения со светодиодной лентой)
  • низкая стоимость на $ 2,5 (OK, это относительное, но USB , способные контроллеры являются немного дороже , чем более основных типов)
  • расширен интерфейс USART для UART
  • имеет интерфейс SPI на случай, если вы
  • имеет источник ввода-вывода 25 мА, поэтому при необходимости вы можете напрямую подключить пару светодиодных индикаторов

Дальнейшее чтение
Общей функции USB на встроенном устройстве , примечание по применению микрочипа AN1166

stevenvh
источник
Он упоминает о светодиодных лентах, поэтому я предполагаю, что это синхронный протокол (в основном SPI без вывода данных). Этот PIC имеет только 1 SPI-порт, поэтому не подойдет. Хотя он мог немного поразить протокол.
Ракетный магнит
@Rocket - где он говорит, что это SPI? И ему не понадобятся две шины SPI: SPI является мульти-ведомым. И, как прокомментировал Скотт, и я также сказал в начале моего ответа, я думаю, что под двумя портами он подразумевает два контакта, поэтому я сначала подумал о UART.
Стивенвх
Возможно, PIC18F24J50? Но это часть 3,3 В, поэтому я не знаю, будет ли она взаимодействовать со светодиодной лентой.
Ракетный магнит
1
Он не говорит, что это SPI, но я раньше использовал светодиодные ленты, и они всегда были синхронными. Я могу ошибаться. Он может иметь в виду другой вид светодиодной ленты, которую я никогда раньше не видел. Я думаю, что он имеет в виду два контакта для часов и данных.
Ракетный магнит
На самом деле, я неправильно прочитал вопрос и подумал, что он сказал две светодиодные полосы! На самом деле он сказал, что два контакта для одной светодиодной ленты. Итак, как вы были с оригинальным предложением.
Ракетный магнит
4

Ваша светодиодная лента имеет простой последовательный интерфейс. Если вы просто пытаетесь управлять им с помощью компьютера, вы можете использовать микросхему FTDI для покачивания контактов: http://www.ftdichip.com/Products/ICs/FT232R.htm

Тогда сложность на стороне ПК с использованием библиотек libftdi или D2XX . Но это не так уж плохо, сложность похожа на ваш пример Arduino.

Если вам не хочется создавать аппаратное обеспечение, вы можете приобрести готовые кабели с микросхемой FTDI у дистрибьюторов FTDI, таких как Mouser, Sparkfun и т. Д. Кабели доступны в различных конфигурациях напряжения, поэтому заказывайте их осторожно.

Конечно, если вы хотите, чтобы проект был автономным или автономным, вам понадобится полноценное микроконтроллерное решение.

markrages
источник
Я должен рассмотреть отправку необработанных данных SPI на светодиодную ленту через контроллер USB. Microchip создает USB-to-SPI, который настраивается как HID-устройство, в то время как FTDI-чипы VCOM или D2XX, и я не уверен, что лучше всего подойдет для запуска легкой полосы из программы на c ++.
Стив Барна
Я не знаю о мосте USB <-> SPI, который отображается как виртуальный последовательный порт, как это делают чипы моста USB <-> UART. Вместо этого вам придется писать код с битами, что легко для SPI.
Маркрагес
3

Подумайте об использовании PSoC3 .

PSoc3

Они доступны с USB, и почти любая периферия, которую вы хотите. (Они настроены программно). У вас наверняка будет два последовательных порта для светодиодных лент. Вы, вероятно, сможете иметь 20, если хотите.

Среда разработки также радует в использовании.

PSoC Creator

Rocketmagnet
источник
3
Ну, это кажется немного излишним. Но я посмотрю на это.
Стив Барна
8
@Rocket - Я вижу на Digikey, что PSOC стоит более чем в два раза больше PIC, который я упомянул. Я не сомневаюсь, что они на вес золота (как фигура речи), если вам нужны все эти настраиваемые периферийные устройства, для решений, которые вы не найдете ни на одном другом микроконтроллере, например 16 UART или около того. Но OP, кажется, нужен только USB-порт и последовательный порт (UART, SPI или I2C), тогда гораздо дешевле выбрать относительно недорогой контроллер, который имеет именно это.
Стивенвх
@stevenvh - я согласен, PSoC могут быть болезненно дорогими. Они действительно того стоят только для производства, когда вы можете воспользоваться их многочисленными функциями. Но для создания прототипов, они полностью стоит. Вам никогда не придется охотиться за этим специальным PIC, который имеет только правильную комбинацию периферийных устройств, и вы можете вносить изменения в аппаратные средства одним нажатием кнопки!
Ракетный магнит
@Rocket - «вносить изменения в оборудование одним нажатием кнопки». Да, это то, что парни Кипариса продолжали говорить мне. Я не понимаю (я подробно обсуждал это с моими коллегами, и они тоже этого не делают): если мне нужен, например, таймер в моем приложении, есть вероятность, что он мне нужен постоянно, а не выбрасывать его на некоторое время потому что я хочу сделать что-то другое с оборудованием. Я очень ценю инструменты настройки, как на скриншоте, и я умолял Motorola (до того, как они стали Freescale) тысячу раз добавить небольшую FPGA к своим контроллерам HC05, но это не было ...
stevenvh
@Rocket - (продолжение) ... для перенастройки в приложении, чтобы во время разработки был более гибкий контроллер . В то время мы были крупным клиентом Motorola, и они посоветовались с нами, чтобы решить, как убрать беспорядок в HC05; Существовали сотни различных типов, некоторые из которых были более успешными, чем другие. Поэтому я предложил 1) ПЛИС и / или 2) массив коммутаторов перекрестных точек, чтобы позволить вам подключать выбранные периферийные устройства к (ограниченному) вводу / выводу; аппаратное обеспечение было на кристалле в любом случае.
Ничего подобного
0

Это не может быть проще, чем это: ATmega8U2 .

В довершение всего, вы даже можете использовать это с загрузчиком Arduino ...

Лист данных: http://www.atmel.com/Images/doc7799.pdf

(извините за то, что я немного лаконичен, я печатаю с телефона)

ppeterka
источник
2
Когда вы вернулись за свой компьютер (разве это не должно быть «перед»?), Вы можете уточнить: как это самое простое решение? Это должна быть хорошая история :-), поскольку ATmega8U2 на 50% дороже, чем PIC.
Стивенвх
1
Я предпочитаю линию AVR (особенно ATmega), потому что можно использовать среду Arduino для быстрого прототипирования (постер знаком с этим!) И позволяет проводить быстрые циклы тестирования-исправления. Затем я оптимизирую код вручную или даже использую меньший AVR uC, например Tiny2313 (кстати, для AVR есть софт-флешки). Я хотел любить PIC, но когда я посмотрел на них (как раз перед тем, как взлетел Arduino), я выбрал AVR: я обнаружил, что их документы лучше, а сообщество сильнее - несмотря на то, что здесь, в Венгрии, PIC исторически больше поддерживали. Я бы выбрал более короткий dev.cycle, чтобы снизить стоимость при низком объеме производства.
ppeterka
1
Точно, почему понизить? Хотите объяснить?
ppeterka