суббота, 3 сентября 2016 г.

Arduino Nano/Due и китайский CAN модуль



Заказал на Aliexpress MCP2515 CAN Bus Module TJA1050 Receiver SPI Module for Arduino...

Фото того, что пришло:
Выглядит годно, стоит дешевле чем компоненты по отдельности...
Попробовал с Arduino Nano (5 В) и библиотекой для устройства Seeduino CAN Shield (по сути то, что заказал в Китае это его копия) - не работает. Посмотрел внимательно, обнаружил, что кварц на 8 МГц (см. 1 на рисунке выше), а должен быть 16 МГц исходя из схемы девайса от Seeduino.
После замены кварца на 16 МГц все заработало...

Перейдем к теме работы с Arduino Due. Эта плата с процессором SAM3, работающем от напряжения 3.3В. SAM3 может работать с CAN и без MCP2515, нужно только подключить трансивер и использовать соответствующую библиотеку.
Моя идея была использовать тот же шилд с MCP2515 и библиотеку для него. Нужно было перенести на Due небольшой проект, без изменения скетча под другую библиотеку.  Китайский модуль (как и шилд от Seeduino) расчитаны на 5 В. В частности, сам драйвер MCP2515 может работать на 3.3 В без проблем, а трансивер TJA1050 (или MCP2551 в случае шилда от Seeduino) (см. 2 на фото платы) расчитан на 5 В. После гугления на эту тему нашел подходящий 3.3 В трансивер от Texas Instruments VP230, на счастье он был в местном магазине. По выходам он аналогичен TJA1050 поэтому просто выпаял то, что там стояло и заменил на VP230 (см. 2 на фото ниже).

Подключил - работает.

По деталям подключения к Arduino см. по ссылке в таблице раздел Connection.

Для Nano/Uno/Due выглядит так (D - цифровые входы):

Shield
Nano / Uno
Due
INT
D02
D02
SCK
D13
3-SCK
SI
D11
4-MOSI
SO
D12
1-MISO
CS
D10
D10
GND
GND
GND
VCC
VCC(5)
VCC(3.3)

Nano/Uno можно также подключить через колодку SPI, на Due, судя по информации на сайте, только через колодку. Распиновка колодки SPI:


В скетче нужно указать соответствующий CS пин:


Пока на этом все...

Комментариев нет:

Отправить комментарий