Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Максимально безпроблемный комплект CAN для AVR
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > Controller Area Network (CAN)
пай-мальчик
Добрый день!

Сразу скажу, все темы в этом разделе прочитал, их тут немного. Что-то уже обсуждалось, но лет 3-8 назад sm.gif Может ситуация изменилась к 2014-му году, тогда прошу подсказать!

Задумал кое-какую домашнюю автоматизацию на CAN сделать. Устройств порядка 20-30. Опыта в схемотехнике почти нет, только по готовой схеме платы рисовал и ЛУТил.
Паять буду паяльником, так что ARM-ы и 32битные AVR, увы, отпадают. Очень хочется использовать atmega в DIP-корпусе, чтобы была возможность устройства перепрошивать уже установленные (вытаскивая аврку из панельки ). Так что ATMEGA16M1 и AT90CAN32 очень нежелательный вариант.

Про Микрочиповские MCP2551 и MCP2515 тут все категорически пишут, что с кучей багов чипы. Не уверен, что осилю качественно обойти все грабли. Может это уже неактуально в 2014-м? Или они ничего не меняли?

Так же неясно по связке SJA1000T + TJA1041. Там errata есть, но меньше или прямо совсем всё шикарно? И сколько примерно кода занимает библиотека работы с SJA1000T, если не секрет? Цена у китайцев очень радует $0.5 за контроллер и $0.5 за драйвер. Для меня это пока фаворит.

AT90CAN32-16AU или ATMEGA16M1-AU тоже рассматриваю. Я так понимаю, с ними лучше использовать ATA6660. А там с глючностью хорошо или тоже есть, но поменьше, чем у MCP?

Про младшие АРМы, кстати, тоже в какой-то ветке писали что у LPC именно реализация плохая с кучей багов.
А к STM32F105R8 это относится? LQFP64 с горем пополам всё-таки можно будет припаять. Хотя, программатор и плата выйдет подороже и платформу менять таки не очень хочется.

Может появились ещё какие-то варианты?

p.s. Ещё важный момент - логистика. В нашей деревне ничего не купишь, а если купишь, ни в жизнь не продашь. Поэтому все варианты с "взять всего понемногу" и посмотреть, будут стоить необоснованно дорого и растянутся на полгода. Планирую определиться с платформой и заказать через алибабу сразу 30 комплектов. Это и то растянется на 1.5-2 месяца. Почта РФ, блин sm.gif
ZASADA
Цитата(пай-мальчик @ Nov 19 2013, 19:10) *
Про Микрочиповские MCP2551 и MCP2515 тут все категорически пишут, что с кучей багов чипы. Не уверен, что осилю качественно обойти все грабли. Может это уже неактуально в 2014-м? Или они ничего не меняли?

а можно подробнее, чё за куча багов? как то я пока ни одного не встретил, может не там искал?
пай-мальчик
Уж не знаю, все это или только часть.

Как минимум 6 аппаратных багов. http://ww1.microchip.com/downloads/en/DeviceDoc/80179g.pdf

Хотя, документ 2007-го года. Может быть сейчас если сделать заказ, придёт какая-нибудь В10 ревизия, уже вылизанная? А SJA и TJA например наоборот, стали глючными. Я поэтому и задал вопрос, что хочу узнать что с годами поменялось?
ZASADA
Цитата(пай-мальчик @ Nov 20 2013, 07:27) *
Уж не знаю, все это или только часть.

Как минимум 6 аппаратных багов. http://ww1.microchip.com/downloads/en/DeviceDoc/80179g.pdf
Хотя, документ 2007-го года.

начнем с того, что их там не 6, а 5. Из них 3 были исправлены еще до 2007г, столкнуться с двумя оставшимися практически не реально, причем приведены простые шаги, как их избежать совсем. Это полный список багов, про которые все массово категорически пишут?
Цитата(пай-мальчик)
Про Микрочиповские MCP2551 и MCP2515 тут все категорически пишут, что с кучей багов чипы.


yes
у Renesas-а полно CAN-ов в QFP корпусах
есть и в soic
http://www.renesas.eu/products/mpumcu/78k/...50AMC-5A4-A.jsp
http://www.renesas.eu/products/mpumcu/r8c/...R5F21226DFP.jsp
Volldemar
AVR - это так, для ознакомления, последнее время стоимость авров практически равна стм32, а у последних намного выше функционал. И ещё минус к атмелю, баснословно дорогие программирующе-отладочные устройства (программатор и отладчики по жетагу). Для стм32 есть куча свободных клонов, можно и самому повторить, а если напряг то и купить, стоит очень демократично. У стм32 встроенный КАН контроллер, это минус один корпус, да и по цене приятно. Запаять QFP64 - не проблема, если использовать тоненькое жало и паять под увеличительным стеклом (я так делаю, так как зрение не 100%), и всё паяется и работает, так что "не так страшен чёрт, как его малюют" sm.gif
Vasily_
Цитата(Volldemar @ Nov 22 2013, 09:46) *
И ещё минус к атмелю, баснословно дорогие программирующе-отладочные устройства (программатор и отладчики по жетагу).

Дракоша ну очень дорогой, аж целых 44евро. biggrin.gif
Volldemar
Цитата(Vasily_ @ Nov 22 2013, 13:37) *
Дракоша ну очень дорогой, аж целых 44евро. biggrin.gif

Не знаю, как на счёт вышеприведённой суммы, но вот более дорого:
цена_драгон
ZASADA
ну если хотите, я могу и за 10к $ продать. а так первая ссылка в гугле выдает 44 евро в розницу.
Vasily_
Цитата(ZASADA @ Nov 22 2013, 16:22) *
первая ссылка в гугле[/url] выдает 44 евро в розницу.

И не только там, я брал даже за 39, а продавать действительно можно за сколько угодно. biggrin.gif
пай-мальчик
У меня под AVR уже есть usbasp за $3 и в шкафу jtag ice 1 валяется за $7, не пригождался ещё.

У ARM для данной задачи есть фатальный минус - ATMEGA будет в DIP-панельках. Захотел поменять функционал, выключил питание, вытащил чип и перепрошил на рабочем месте. А не со стремянки с ноутбуком под потолком в сортире sm.gif

Кстати, тут другой нюанс вылез. На алибабе написал где-то 50 продаванам и они разделились на два лагеря. У одних цена за SJA1000 $0.5-0.7 и столько же за tja1041, другие тельняшку на груди рвут, что не может быть таких цен и это всё китайские подделки и меньше 1.5 баксов за чип - это фантастика. Пока как-то вторым не верю, но может зря? Но где гарантии, что мне за 1.5 бакса не продадут те же самые, что у первых по $0.6 продаются? wacko.gif
gerber
Цитата(пай-мальчик @ Nov 23 2013, 07:16) *
У ARM для данной задачи есть фатальный минус - ATMEGA будет в DIP-панельках. Захотел поменять функционал, выключил питание, вытащил чип и перепрошил на рабочем месте. А не со стремянки с ноутбуком под потолком в сортире sm.gif

Сделайте обновление прошивки прямо по CAN интерфейсу, тогда не придётся лезть со стремянкой в сортир даже для вытаскивания Atmeg-и из DIP-панельки.
ZASADA
Цитата(gerber @ Nov 23 2013, 09:15) *
Сделайте обновление прошивки прямо по CAN интерфейсу, тогда не придётся лезть со стремянкой в сортир даже для вытаскивания Atmeg-и из DIP-панельки.

вы способны с первой попытки написать программу, позволяющую самообновляться по CAN интерфейсу? или для начала придется 100500 раз программатором прошивку перезаливать и отлаживать?
iosifk
Цитата(ZASADA @ Nov 23 2013, 21:44) *
вы способны с первой попытки написать программу, позволяющую самообновляться по CAN интерфейсу? или для начала придется 100500 раз программатором прошивку перезаливать и отлаживать?

Я вот читаю и вижу обычное дело.
Для разработки берется не тот микроконтроллер, для которого есть дешевые стартовые наборы именно с CAN и библиотеки для CAN, а тот, на котором что-то делалось "вчера" и который на пол-копейки дешевле...
А то, что при таком подходе сил будет затрачено немеряно, так это будет потом...
Ведь AVR никогда не предназначался ни для станков, ни для автомобилей...
А вот НЕК-Реннесас делался именно для автомобилей с их CAN-интерфейсами... А значит там и примеры и библиотеки и все прочее должно быть...
Methane
Цитата(пай-мальчик @ Nov 19 2013, 18:10) *
Задумал кое-какую домашнюю автоматизацию на CAN сделать. Устройств порядка 20-30.

Почему такой странный выбор? Сейчас куча RF чипов, с минимумом обвеса, сразу готовая цифра. Можно монтировать сразу в розетки, выключатели. Проводов дополнительных тянуть не нужно.
Xenia
Предлагаю взглянуть на ATtiny87/167 (корпус SOIC-20), у которой, хоть и нету CAN, зато есть LIN. У вас же оно для-дома-для-семьи и расстояния короткие. Зачем вам с CAN связываться, когда в нем черт ногу сломит? А LIN уже давно конкурирует с CAN и, на мой взгляд, вполне успешно. Опять же Тинька дешевая, а если 20-30 штук покупать, то этот аспект весьма существенен. И программирование там предельно примитивное, а с АРМами и Ренесасами вам полгода книжки читать, чтобы только светодиодиком поморгать, а не то что CAN программировать sm.gif.

В корпусе DIP она не бывает (ныне в DIP-корпусе редко какой МК встретишь), но SOIC-20 тоже хороший вариант - паяльником легко паяется, всего по 10 ножек с каждой стороны. JTAG тиньки не поддерживают, но ваш usbasp для них вполне годится. Только надо штырьки под ISP прямо на плате распаять, чтобы при програмировании не отпаивать. Впрочем, корпус SOIC-20 можно поверх панельки DIP-20 припаять, а потом втыкать в другую панельку, как DIP.
Methane
Цитата(Xenia @ Nov 23 2013, 21:48) *
SOIC-20 тоже очень хорошее решение - паяльником легко паяется,

На кардачах, тут
http://wikimapia.org/#lang=en&lat=50.4...mp;z=19&m=b
покупается платка, в нее запаивается soiс, и дальше уже проводами. Только надо кондер по питанию припаять прямо на эту платку, хотя бы электролит на пару мелкофарад.

Но, в свете последних событий, я бы подумал, а стоит ли заниматься электроникой? Может начать с воровства шапок? В перспективе можно спереть и продать целую страну!
KRS
Цитата(Xenia @ Nov 23 2013, 23:48) *
А LIN уже давно конкурирует с CAN и, на мой взгляд, вполне успешно.

Это где конкурирует? LIN дополняет! К тому же у LIN сильное ограничение на длину шины.
Кроме того LIN вроде кроме как в автомобилях и не используют нигде.

Цитата(Xenia @ Nov 23 2013, 23:48) *
Зачем вам с CAN связываться, когда в нем черт ногу сломит?

CAN не такой сложный, как кажется. И сделано там все достаточно логично и удобно. (что нельзя сказать о протоколах верхнего уровня, но их использовать не обязательно)


Автору - посмотрите серию LPC11C00 там даже со встроенным PHY есть.
пай-мальчик
Цитата(KRS @ Nov 24 2013, 05:24) *
Автору - посмотрите серию LPC11C00 там даже со встроенным PHY есть.


Спасибо, на них натыкался раньше, но смутило какое-то C_CAN, причём так и не удалось нагуглить чем это отличается от просто CAN.
Если не трудно, подскажите, насколько оно будет совместимым с CAN на SJA1000. И трансиверы встроенные на 32 узла sad.gif
Вдруг в итоге понадобится не 20-30 устройств, а 34. Лучше буду изначально закладывать 128.

У NXP отметил LPC1751FBD80, но там уже LQFP80, с которым очень не хочется связываться. Цена за чип, с учетом характеристик, просто разрывает atmega, что греха таить... crying.gif

p.s. А LIN это вообще не та опера. Медленно и master-slave. Мультимастерность это условие обязательное и необсуждаемое. sm.gif
ARV
имел опыт работы с AT90CAN128 - проблем никаких, скачал фирменную библиотечку и использовал ее. на уровне обмена пакетами за 1,5 часа все сделал, даже не вникая при этом в устройство самого встроенного CAN-контроллера.
пробовал MCP2551 в связке с ATMEGA8 - найденные в сети либы не пошли (точнее, мне не понравилось то, как они написаны), пришлось тупо по даташиту писать низкоуровневый обмен по SPI, после чего обмен сообщениями так же за 1,5 часа сделал.
багов не встречал, но при написании своих программ опирался на даташиты и ерраты.

если все-таки в основу брать AVR, то я бы советовал остановиться на AT90CAN32 - по всем параметрам нормальный МК, и паяется вполне нормально 40-ваттным паяльником sm.gif в качестве драйвера физического уровня подойдет любой, не обязательно атмеловский.
Xenia
Цитата(пай-мальчик @ Nov 24 2013, 16:40) *
А LIN это вообще не та опера. Медленно и master-slave. Мультимастерность это условие обязательное и необсуждаемое.


А вам что, гигабайты качать? sm.gif

Еще дешевое предложение - соединить АВРки по каналу ... I2C sm.gif, благо, что он имеется и у тех, кто в DIP-корпусе.
Methane
Цитата(Xenia @ Nov 25 2013, 07:43) *
А вам что, гигабайты качать? sm.gif

Еще дешевое предложение - соединить АВРки по каналу ... I2C sm.gif, благо, что он имеется и у тех, кто в DIP-корпусе.

Еще "токовую петлю" можно. Очень легко гальваноразвязка и мультимастер получается.
KRS
Цитата(пай-мальчик @ Nov 24 2013, 16:40) *
но смутило какое-то C_CAN, причём так и не удалось нагуглить чем это отличается от просто CAN.
Если не трудно, подскажите, насколько оно будет совместимым с CAN на SJA1000. И трансиверы встроенные на 32 узла sad.gif

да там просто есть библиотека во флеше, где есть реализация каких то частоей CAN_OPEN или еще чего то... (я с ней не разбирался), поэтому вроде и назвали С_CAN
а так можно использовать как обычный CAN, естественно данные на SJA1000 будут передаваться (у нас без проблем в сети работают и SJA100 и CAN128 и STM32 и LPC11C14)
да еще по железу модуль не совсем обычный - он 16 битный (что не очень удобно) и доступ к Message Object через два интерфейса. Но это всего лишь можно считать "другим" описанием регистров.

Со встроенным трансивером мы не используем, внешний драйвер действительно лучше! Но в серии LPC11 есть и такие и такие. Кроме того это все таки ARM, возможностей больше чем у CAN128 да и дешевле они, и ног меньше!
пай-мальчик
Большое спасибо за советы.
Надо брать и AT90CAN32 и ARM. AVR на первое время, а дальше разобраться с ARMами таки.
syoma
Имхо во первых нет смысла сейчас заморачиваться с двумя корпусами - МК + CAN контрольер - отлаживать интерфейс между ними - то еще дело. Надо настраиваться на встроенные вещи.
Второе - брать АРМ. Я, например для нового проекта в прошлом году перешел на STM32F103. Хоть и не панельные, но паяются микроволной легко и JTAG шнурок решает все. Также в случае с обновлениями легче заменить саму платку, чем контроллер - в домашней автоматизации они будут врядли больше пары пачек сигарет
А внутрисхемная отладка - большой плюс.
Такж большой плюс армов с огромной флешой - можно подключать почти все библиотеки не заботясь о том, что не хватит памяти
пай-мальчик
Цитата(syoma @ Dec 4 2013, 23:25) *
Второе - брать АРМ. Я, например для нового проекта в прошлом году перешел на STM32F103. Хоть и не панельные, но паяются микроволной легко и JTAG шнурок решает все. Также в случае с обновлениями легче заменить саму платку, чем контроллер - в домашней автоматизации они будут врядли больше пары пачек сигарет


К сожалению, заказал уже десяток AT90CAN32 и 20 MCP2515-I/SO через алибабу. smile3046.gif

После этого начал по АРМам вентилировать и увидел, что на банальном ебее STM32F103RBT6 стоят всего на полдоллара дороже, со всеми их плюсами. И TJA1041 при покупке 50 штук продаются по $0.75. И дебаггеры по 8-11 баксов. epic fail crying.gif ARM тоже заказал. Надо сейчас искать любителей AVR и сливать им это добро. sm.gif
ARV
Цитата(пай-мальчик @ Dec 4 2013, 20:05) *
Надо сейчас искать любителей AVR и сливать им это добро. sm.gif


когда 3,3-вольтовый ARM со своими слаботочными выводами обрастет кучей транзисторов и т.п. обвеса, окажется, что при своей дороговизне AVR не так уж и плох, особенно для простых задач sm.gif


mantech
Цитата(ARV @ Dec 4 2013, 20:20) *
когда 3,3-вольтовый ARM со своими слаботочными выводами обрастет кучей транзисторов и т.п. обвеса, окажется, что при своей дороговизне AVR не так уж и плох, особенно для простых задач sm.gif


Кто вам это сказал??
The GPIOs (general purpose input/outputs) can sink or source up to ±8 mA, and sink or
source up to ±20 mA (with a relaxed VOL/VOH) except PC13, PC14 and PC15 which can
sink or source up to ±3mA.

Стандартные характеристики, как для аврки, за исключением нескольких пинов и питания 3.3В!

PS. Я не знаю, почему автор не остановился на RS-485, который ничуть не хуже кана, при этом уарты есть в любом мк, и ненадо писать сложные протоколы...
A. Fig Lee
Кстати, сейчас и паять мелкие микроконтроллеры не надо.
полно разных "стампс" на ибее и везде. Уже запаянных, со тсандартнып 0.1 inches шагом
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.