Я создаю проект Persistence of Vision со 120 светодиодами RGB (всего = 360 строк для управления). Мы остановились на TLC5940 для управления светодиодами (и могли бы изменить это), однако теперь у нас есть проблема с достаточно быстрой передачей данных на микросхемы драйверов светодиодов. В настоящее время мы используем чипы класса ATmega328/ATmega128, максимальная частота которых составляет 20 МГц, и мы не можем достаточно быстро обрабатывать данные, загружаемые в TLC5940. Должны ли мы рассмотреть другой UC? Желательны:
Этот вопрос может быть интеллектуальным бедным родственником этого вопроса , однако я думаю, что наши требования несколько отличаются.
В идеальном мире мы должны иметь возможность загружать данные для всех светодиодов менее чем за 746 мкс (это требования проекта), и опять же, теоретически, если мы будем работать со скоростью 2 тактовых импульса/бит, мы сможем сделать это за 108 мкс при 20 МГц. , тем не менее, весь сдвиг битов, чтобы решить, какую интенсивность посылать каждому светодиоду прямо сейчас, дает нам время загрузки 1536 мкс. Это с avr-gcc OPTLEVEL=2
или OPTLEVEL=3
, всевозможные циклы, развернутые вручную, параллельная загрузка всех контроллеров светодиодов и все способы экономии времени, которые только можно придумать.
Я бы перешел на дешевый ARM. Вы можете получить Freedom Board , который представляет собой Cortex-M0 +, который может работать на частоте до 48 МГц. Кроме того, будучи рукой, вы получите 32-битные регистры, чтобы вы могли делать больше для каждого кода операции. Кроме того, он имеет механизм прямого доступа к памяти, поэтому вы можете разгрузить загрузку светодиодов в DMA, пока процессор обновляет память. Вы можете получить их от Digikey , а также других обычных подозреваемых.
Из средств разработки есть CooCox , mbed и CodeWarrior .
Линия Atmel XMEGA рассчитана на частоту до 32 МГц, довольно дешева и поставляется в корпусах до 100 контактов.
У Sparkfun есть готовый макет для xmega128A1 для прототипирования: https://www.sparkfun.com/products/9546 — есть также куча наборов для разработки, включая плату Atmel XPLAIN.
Я бы, наверное, посмотрел на платформу mbed . Возможно, вы сможете использовать один из их DIP-модулей в качестве «uC DIP», хотя он также будет содержать необходимые окружающие периферийные устройства (кристалл, питание и т. д.). Хотя это будет значительно дороже, чем покупка голых чипов микроконтроллера, похоже, что вы не производите их массово, так что это не должно быть большой проблемой.
Существует большое сообщество разработчиков, и аппаратное обеспечение определенно может удовлетворить ваши требования к вводу-выводу и скорости. Благодаря легкодоступным средствам разработки у этих довольно сложных микроконтроллеров почти не будет времени на запуск.
PIC24EP256GP204 — это 16-разрядная машина, которая может работать со скоростью 70 MIPS и имеет 35 линий ввода-вывода . К сожалению, это недоступно в DIP.
Он не нуждается во внешнем генераторе и представляет собой устройство с напряжением 3,3 В. Его можно запрограммировать внутри схемы с помощью недорогих программаторов, таких как PICkit3 (около 70 долларов США), он имеет бесплатный неоптимизирующий C-компилятор (XC16 — лицензирование дает вам оптимизацию) и две бесплатные IDE с симуляторами (MPLAB 8 и MPLAB X). .
По моему опыту, работа на ассемблере в этой части не так уж и плоха — я использую бесплатную версию компилятора и при необходимости оптимизирую сборку вручную.
Коннор Вульф
ангелбольшой
Коннор Вульф
ангелбольшой
ДжиммиБи
ДжиммиБи
ангелбольшой