Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ATmega AVR
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.61/452: Рейтинг темы: голосов - 452, средняя оценка - 4.61
0 / 0 / 0
Регистрация: 26.11.2011
Сообщений: 816

CAN интерфейс

21.05.2012, 18:41. Показов 89849. Ответов 121
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Люди, подскажите что такое CAN интерфейс. Ну то что это интерфейс я не сомневаюсь, то что в AT90CAN128 бывает я тоже знаю. А вот что то по конкретнее. Желательно с примерами.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.05.2012, 18:41
Ответы с готовыми решениями:

Интерфейс Comparable, Интерфейс Comparator, Интерфейс List
Добрый день, прошу подсказать с решением задачи. Или натолкнуть в какую сторону нужно думать. Не могу освоить второй пункт задачи. 1....

Описать интерфейс ILogWriter с методами. Создать классы реализующие этот интерфейс.
Описать интерфейс ILogWriter с методами void LogInfo(string message) void LogWarning(string message) void LogError(string message) ...

Создать интерфейс и 2 класса которые реализуют этот интерфейс: Лиса и Волк
Создать интерфейс, 2 класса которые реализуют этот интерфейс, создать метод цвет, 1 класс лиса, 2 класс волк. Необходимо вывести при выборе...

121
0 / 0 / 0
Регистрация: 26.11.2011
Сообщений: 816
22.08.2012, 14:56
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от itysiy
https://www.google.ru/webhp?sourceid=chrome-instant&ie=UTF-8&ion=1#hl=ru&newwindow=1&sclient=psy-ab&q=at90can128+can+library&oq=at90can12 8+can+&gs_l=hp.3.1.0l2j0i30l2.15698.1569 8.3.19104.1.1.0.0.0.0.161.161.0j1.1.0... 0.0...1c.-oG5Y5Q2ftw&pbx=1&bav=on.2,or.r_gc.r_pw.r _cp.r_qf.&fp=1e345e0d6a1abae&ion=1&biw=1 846&bih=1019

https://www.google.ru/webhp?sourceid=ch ... 6&bih=1019

http://www.atmel.com/Images/doc7616.pdf
Да, безусловно полезная и нужная информация, но я надеился на чтото более конкретное. Спасибо.
0
0 / 0 / 0
Регистрация: 26.11.2011
Сообщений: 816
22.08.2012, 14:58
Цитата Сообщение от sbum
Цитата Сообщение от Komoptj2010
Люди добрые. Я не могу разьобратся с регистрами CAN, может кто нибут подскажет как с ними быть.
посмотри это: ftp://ftp.efo.ru/pub/efo-ftp/T... aining.pdf

вот Atmel-овская либа: http://www.atmel.com/dyn/resou... IB_3_2.zip

прикрепил еще одну либу (от нЕмца)

Ну это, я думаю, стоит внимания. Я на кануне попробую, спасибо.
0
0 / 0 / 0
Регистрация: 26.11.2011
Сообщений: 816
29.08.2012, 22:43
Народ, это сново я вас беспокою. Я написал программу, обозвал регистры и прошил AT90CAN128. Беру осилограф и замеряю сигнал на выводе TXCAN, сигнал логического уровня и дёргается по времени. Я считаю что AVR-ка всётаки даёт сигнал на CAN интерфейс со своим определённым кодом в кадре. Но вот в чём проблема, после AVR-ки стоит микросхема приёмопередатчика PCA82C250 (data sheet я преложил) с которого никакого сигнала я не уловил. Я думал что микросхема не пашет или чтото в этом роде, но она новая, я менял её на другую такуюже новую и тоже самое. В итоге я перепробывал три PCA82C250 и не какая не пикнула. Может быть я чтото не правильно делаю, подскажите. Заранее спасибо.


./styles/iosyitistromyss/imageset/icon_topys_attach.gif" width="14" height="18
[103.3 Кб]
0
omx
29.08.2012, 23:42
Схему включения в студию.
0 / 0 / 0
Регистрация: 26.11.2011
Сообщений: 816
30.08.2012, 00:17
Цитата Сообщение от omx
Схему включения в студию.
Да, вот она:

0
omx
30.08.2012, 00:52
Терминатор включён? Засинхронизируйтесь на одном канале по сигналу на входе драйвера (TXD1 на вашей схеме) а второй канал подключите к CANH или COMT и посмотрите.
0 / 0 / 0
Регистрация: 26.11.2011
Сообщений: 816
30.08.2012, 11:06
Цитата Сообщение от omx
Терминатор включён? Засинхронизируйтесь на одном канале по сигналу на входе драйвера (TXD1 на вашей схеме) а второй канал подключите к CANH или COMT и посмотрите.
Тоесть экран шупа осилографа к TXD1, а жилку к CANH ИЛИ COMT и посмотреть сигнал? Зделать это можно, но почему не от обшего GND, а хотя сигнал на выходе должен быть диференциальным так же, тогда мерять надо между CANH и COMT правильно?
0
omx
30.08.2012, 11:15
Цитата Сообщение от Komoptj2010
Цитата Сообщение от omx
Терминатор включён? Засинхронизируйтесь на одном канале по сигналу на входе драйвера (TXD1 на вашей схеме) а второй канал подключите к CANH или COMT и посмотрите.
Тоесть экран шупа осилографа к TXD1, а жилку к CANH ИЛИ COMT и посмотреть сигнал? Зделать это можно, но почему не от обшего GND, а хотя сигнал на выходе должен быть диференциальным так же, тогда мерять надо между CANH и COMT правильно?
Нет, экраны на землю, на первый канал TXD1 на второй CANH. Ну и про резистор 120 Ом вы не ответили, без него ничего работать не будет.
0 / 0 / 0
Регистрация: 26.11.2011
Сообщений: 816
30.08.2012, 17:22
Блин вот с ризистором лажа. Я предусмотрел для него место но запускал без него. А по поводу осилографа у меня однониточный и здесь есть проблема.
0
omx
30.08.2012, 17:56
Как попробуете с резистором - расскажете. На странице 3 даташита на микросхему есть рисунок внутренностей. Так вот, микросхема умеет тянуть линии в разные стороны H - к питанию, а L - к земле, а когда не тянет - обе линии уравниваются этим резистором у половины питания.
0 / 0 / 0
Регистрация: 26.11.2011
Сообщений: 816
30.08.2012, 23:57
Цитата Сообщение от omx
Как попробуете с резистором - расскажете. На странице 3 даташита на микросхему есть рисунок внутренностей. Так вот, микросхема умеет тянуть линии в разные стороны H - к питанию, а L - к земле, а когда не тянет - обе линии уравниваются этим резистором у половины питания.
Я попробывал с ризистером, значит так, информация на вход TXCAN подаётся но ни CANH ни COMT не меняет своего положения на протяжении многих попыток передачи.
0
0 / 0 / 0
Регистрация: 26.11.2011
Сообщений: 816
31.08.2012, 00:42
Так, народ, появился результат. CAN заговорил, посылки пошли, кадр тыжеловато расглядеть но всёже видно что сдвинулись с мёртвой точки. Вид с осилографа прилогаю.



0
0 / 0 / 0
Регистрация: 26.11.2011
Сообщений: 816
31.08.2012, 17:16
Так ешё проблема. Передатчик передаёт, а вот приёмник не принемает. Я написал примитивную прогу для теста для передатчика и такуюже для приёмника. Вто не задача, осилографом кадры видно (смотри выше), но приёмник их не читает, может быть это чтото с фильтром кадров?
0
1 / 1 / 0
Регистрация: 18.01.2012
Сообщений: 1,418
31.08.2012, 22:10
Цитата Сообщение от Komoptj2010
Так ешё проблема. Передатчик передаёт, а вот приёмник не принемает. Я написал примитивную прогу для теста для передатчика и такуюже для приёмника. Вто не задача, осилографом кадры видно (смотри выше), но приёмник их не читает, может быть это чтото с фильтром кадров?
может фильтр, может скорости не совпадают. Кто приемник?
0
0 / 0 / 0
Регистрация: 26.11.2011
Сообщений: 816
03.09.2012, 22:23
Цитата Сообщение от itysiy
может фильтр, может скорости не совпадают. Кто приемник?
Может и фильтр, но я ставил свё по нулям, если вас не затруднит посмотрите пожалуста.

#include <avr/interrupt.h>
#include <util/delay.h>
#include <stdlib.h>
#include <math.h>
#include <avr/io.h>
#include <util/can128.h>
#include <util/delay.h>
#define F_CPU 4000000UL
int main (void){
while (1){
DDRD = 0xFF;
DDRF = 0xFF;

CAMKSTA |= (1<<ENFG) ;
CANGCON |= (1<<1);
CANGIE |= (1<<ENRX) | (1<<ENTX);
CANIE2=0xFF;
CANIE1=0x00;
CANHPMOB=0x00;

CANBT1=0x02;
CANBT2=0x0E;
CANBT3=0x4B;

CANPAGE=0x00;
CANIDT1=0x00;
CANIDT2=0x00;
CANIDT3=0;
CANIDT4 |= (1<<RTRTAG) ;
CANIDM1=0x00;
CANIDM2=0x00;
CANIDM3=0x00;
CANIDM4 |= (1<<RTRMSK) ;
CANCDMOB = 0;
CANCDMOB|= (1<<DLC0)|(1<<CONMOB1)|(1<<RPLV)|(1<<IDE );

CANPAGE =0x20;
CANIDT1 =0x02;
CANIDT2 =0x00;
CANIDT3 =0x00;
CANIDT4 =0x00;
//CANCDMOB =0x00;
CANMSG =0xFF;
CANCDMOB|=(1<<CONMOB0); //Пуск

_delay_ms(10);
CANPAGE=0x10;
if (CANMSG==0xFF){PORTF|=(1<<PORTF2);}
}
}

Это на первом, а на втором почти тоже самое но с изменением.

#include <avr/interrupt.h>
#include <util/delay.h>
#include <stdlib.h>
#include <math.h>
#include <avr/io.h>
#include <util/can128.h>
#include <util/delay.h>
#define F_CPU 4000000UL
int main (void){
while (1){
DDRD = 0xFF;
DDRF = 0xFF;

CAMKSTA |= (1<<ENFG) ;
CANGCON |= (1<<1);
CANGIE |= (1<<ENRX) | (1<<ENTX);
CANIE2=0xFF;
CANIE1=0x00;
CANHPMOB=0x00;

CANBT1=0x02;
CANBT2=0x0E;
CANBT3=0x4B;

CANPAGE = 0x00;
CANIDT1 = 0x00;
CANIDT2 = 0x00;
CANIDT3 = 0;
CANIDT4 |= (1<<RTRTAG) ;
CANIDM1 = 0x00;
CANIDM2 = 0x00;
CANIDM3 = 0x00;
CANIDM4 |= (1<<RTRMSK) ;
CANCDMOB = 0;
CANCDMOB|= (1<<DLC0)|(1<<CONMOB1)|(1<<RPLV)|(1<<IDE );

CANPAGE =0x10;
CANIDT1 =0x01;
CANIDT2 =0x00;
CANIDT3 =0x00;
CANIDT4 =0x00;
//CANCDMOB =0x00;
CANMSG =0xFF;
CANCDMOB|=(1<<CONMOB0); //Пуск

_delay_ms(10);
CANPAGE=0x20;
if (CANMSG==0xFF){PORTF|=(1<<PORTF2);}
}
}
0
0 / 0 / 0
Регистрация: 26.11.2011
Сообщений: 816
04.09.2012, 22:59
Ну, ниужели никто не подскажет?
0
0 / 0 / 0
Регистрация: 26.11.2011
Сообщений: 816
22.09.2012, 18:17
Люди а вот ещё вопрос. У AT90CAN128 имеется выводы TXCAN и RXCAN, и на микросхеме PCA82C250 также имеются эти выводы. Протокол CAN работает по аналогии с UASORT, а там TX и RX меняются местами от мастера к приёмнику. Вопрос, надо менять местами выводы TXCAN и RXCAN от AT90CAN128 к PCA82C250?
0
1 / 1 / 0
Регистрация: 01.02.2010
Сообщений: 2,010
22.09.2012, 19:10
Цитата Сообщение от Komoptj2010
TX и RX меняются местами от мастера к приёмнику.
Ну по логике - да (а мож и нет.....)

Ты хоть расскажи, получилось ли законнектить устройства, ато создается впечатление что вопросы появляются все новые, а ответов на них нет.... ни на новые, ни на старые.....
Видимо CAN это очень специфичная область, мало кто с ним работал, потому и никто помоч не может. Для чего хоть именно CAN нужен?
Если все на начальном этапе застопорилось, мож есть смысл другой интерфейс попробовать, CAN же очень специфичен, в большинстве случаев он не нужен.....
Ну а если уже довольно продвинулся (организовал обмен между устройствами), изложи хоть детали, до чего дошел - интересно тоже..... (хотя судя по вопросу..... все очень печально.....)
0
omx
22.09.2012, 19:37
Цитата Сообщение от Komoptj2010
Вопрос, надо менять местами выводы TXCAN и RXCAN от AT90CAN128 к PCA82C250?
Нет, не надо. Названия сигналов хоть и похожи, а вот логика работы отличается.
0 / 0 / 0
Регистрация: 26.11.2011
Сообщений: 816
23.09.2012, 11:33
Цитата Сообщение от ShodS
Ну по логике - да (а мож и нет.....)
Да, сдвиги есть. Передатчик передаёт кадр, а вот приёмник не принимает. И главное не понятно когда передатчик передаёт то в передающем устройства на выводе TXD и RXD имётся один и тотже сигнал, а на приёмнике только на выводе TXD. На приёмнике этот TXD подключён как по съеме AVR-CAN к такому же выводу TXD микросхемы AT90CAN128. Как я понимаю TXD это трансмиттер правильно? А по поводу почему именни CAN, я не знаю, преподу так захотелось, я бы был бы рад применит UASORT но нельзя.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.09.2012, 11:33

Как на диаграмме классов (UML) обозначить интерфейс, вложенный в интерфейс
Есть интерфейс public interface LoginInteractor { interface OnLoginFinishedListener { void onUsernameError(); ...

Определить и использовать интерфейс IFigure (Фигура). В интерфейс включить методы вычисления площади
Реализовать иерархию классов из индивидуального задания. Определить и использовать интерфейс IFigure (Фигура). В интерфейс включить методы...

Iptables, правила, перенаправляющие на интерфейс eth1 все пакеты, приходящие на интерфейс eth0
Добрый день, подскажите, пожалуйста, как Iptables написать правила, перенаправляющие на интерфейс eth1 все пакеты, приходящие на интерфейс...

Можно ли создать интерфейс, в котором один из методов будет возвращать класс, который реализует интерфейс
Можно ли создать интерфейс, в котором один из методов будет возвращать класс, который реализует интерфейс. Т.е. что-то вроде этого: ...

База данных "учебный план специальности". GUI. Графический интерфейс. Пользовательский интерфейс
Всем привет. Свалилась на меня, значит, курсовая по прологу. Все бы ничего, да реализовать ее надо через графический интерфейс. На турбо...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
80
Ответ Создать тему
Новые блоги и статьи
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru