Данный проект предназначен для изготовления простого устройства для мониторинга шины CAN. Я выбрал микропроцессор NUC140LC1CN 32K Cortex-M0 по одной главной причине – он имеет периферийные блоки USB и CAN.
Характеристики проекта
- Простота разработки
- Совместимость с протоколом LAWICEL CANUSB
- Мониторинговое устройство отображается как USB FTDI устройство
- Поддержка 11-битных CAN 2.0A и 29-битных CAN 2.0B кадров
- Наличие внутреннего буфера сообщений FIFO CAN
- Питание от USB порта
- Загрузчик, хранимый в памяти USB запоминающего устройства, для обновлений микропрограммы
- Микропрограмма, которая доступна для загрузки
Схемное решение
Для разрешения периферийному блоку NUC140 CAN соединяться с шиной CAN необходимо наличие приемопередатчика CAN. Для этой цели наиболее пригодна микросхема TJA1051T от компании NXP. Блок NUC140 может работать от источника питания напряжением 5В. Потому нет необходимости для применения дополнительного стабилизатора напряжение на 3.3В. Это позволяет значительно упростить задачу реализации интерфейса шины CAN. В схеме предусмотрено три светодиодных индикатора состояния:
- D1 – индикатор состояния USB соединения с хостом
- D2 отображает активность шины CAN
- D3 отображает ошибки интерфейса CAN
NUC140 не имеет встроенного загрузчика и единственным способом его запрограммировать — использовать интерфейс ARM Serial Wire Debug (SWD) (J2 коннектор) и программатор Nuvoton ICP. Ну и естественно, если загрузчик уже заранее запрограммирован, то его можно активировать. Для этой цели необходимо использовать джампер JP1. Использование джампера JP1 перед подачей питания на интерфейс приведет к запуску загрузчика.
Загрузчик
Флэш-память NUC140LC1 разделена на две секции. Одна из них предназначена для выполнения кода пользовательской программы (APROM) размером 32K, а другая для загрузчика (LDROM). Размер LDROM лишь 4K, что делает проблематичным создание полностью функционального USB загрузчика. Я использовал загрузчик, размещенный на запоминающемся устройстве (MSD), предоставленный Nuvoton. Установка джампера JP1 запускает выполнение загрузчика. В результате съемный диск будет отображаться в файловой системе хоста размером 32 кБ. Просто скопируйте и вставьте или перетащите и опустите обновление микропрограммы CAN-USB на диск загрузчика. Отсоедините USB кабель, снимите джампер и подсоедините кабель снова. Теперь должна выполняться обновленная микропрограмма.
Программирование интерфейса CAN-USB и NuTiny-SDK-140
Для программирования процессора NUC140 потребуется программатор Nu-Link от Nuvoton и программное приложение Nuvoton ICP. Но вместо него я решил использовать демонстрационную плату NUC140 (NuTiny-SDK-140), доступную от Digi-Key. Она имеет две части, часть с микросхемой NUC140 и собственно программатор Nu-Link. Плата равномерно перфорирована, что позволяет отсоединить часть Nu-Link. На самом деле вы может изготовить данное устройство исключительно на демонстрационной плате NuTiny-SDK-140, добавив лишь дополнительную микросхему приемопередатчика CAN.
При подсоединении Nu-Link процесс программирования NUC140 становится несложным. Ключевым вопросом является выбор загрузки из LDROM вместо APROM (в Config настройках) для обеспечения функционирования USB загрузчика.
Программное обеспечение
Интерфейс CAN-USB совместим с протоколом LAWICEL CANUSB и будет работать с приложениями, предназначенными для данного протокола. Я протестировал два приложения с интерфейсом CAN-USB:
CANHacker V2.00.02
Это бесплатное приложение CANHacker. Я не смог найти руководство пользователя для этого приложения. Но оно достаточно простое и интуитивное при использовании.
CAN Monitor Pro V2.2
Данное приложение разработано wgsoft.de. Заметьте, что данный сайт разработчика в основном на немецком языке.
Дизайн печатной платы
Список радиоэлементовОбозначение
Тип
Номинал
Количество
ПримечаниеМагазинМой блокнот
IC1
МикросхемаNUC140LC1CN1
IC2
МикросхемаTJA1051T1
D1
СветодиодЗеленый1
D2
СветодиодЖелтый1
D3
СветодиодКрасный1
С1, С6
Конденсатор10 мкФ2
С2, С3, С7, С8
Конденсатор0.1 мкФ4
С4, С5
Конденсатор20 пФ2
R1, R2
Резистор100 Ом2
R3
Резистор10 кОм1
R4-R6
Резистор330 Ом3
Х1
Кварцевый резонатор12 МГц1
J1
USB-разьем1
J2
Разьем5-выводов1
J3
Разьем3-вывода1
JP1
Разьем2-вывода1
Добавить все
Скачать список элементов (PDF)
Прикрепленные файлы:
- can_monitor_firmware.zip (12 Кб)
- can-monitor_Eagle_files.zip (62 Кб)
- can-monitor_Gerber_files.zip (29 Кб)