Achievements weekly

Aug 21, 2012 20:33

Кажецо, доделал новый ультракрутой контроллер BLDC.
Теперь вся логика работы реализована в ПЛИС, а пришитый сбоку микроконтроллер выполняет мелкие сервисные функции типа поддержки невероятно дружественного к пользователю интерфейса командной строки (ага, мотор с консолью), CAN, 1-Wire и прочая лабуда.

Готов основной функционал. Завтра-послезавтра подключу реальный моторчик и посмотрю, как оно ваще.

Больше всего дров наломано в области приделывания таблицы синуса: в BlockRAM хранится четвертинка периода, отдельный процесс подсчитывает индекс (это угол) внутри таблицы, другой процесс подхватывает выходные данные (это уже синус угла) и запихивает их в синхронный умножитель. И вот тут оказалось, что на выходе умножителя результат появляется вовсе не через один такт. Пока сие осознавал и забарывал, пришлось попотеть.

При тактовой частоте в 100 МГц весь дивайс (не только ПЛИС, а плата целиком) потребляет 1.4Вт. Это немало (основной потребитель, ессно, сама ПЛИС и гальванически развязанные интерфейсы), но на фоне предполагаемых 4000 Вт в моторе - тьфу.

приключения Электроника

Previous post Next post
Up