Данный проект предназначен для изготовления простого устройства для мониторинга шины 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 | Микросхема | NUC140LC1CN | 1 | Поиск в магазине Отрон | ||
IC2 | Микросхема | TJA1051T | 1 | Поиск в магазине Отрон | ||
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 Кб)
Комментарии (2) | Я собрал (0) | Подписаться
Для добавления Вашей сборки необходима регистрация
-дешевле,
-доступнее,
-на борту аппаратный USART-загрузчик (актуально для повторения устройства, один раз прошил через шнурок, и забыл)
Я загрузил прошивку в микроконтроллер NUC140VE3CN. Соединил с программой CanHacker, но красный светодиод D3 показывает ошибку интерфейса CAN. На выходе CAN-H и CAN-L осциллограф показывает отсутствие какой-либо активности.