zltigo 2 13 января, 2009 Опубликовано 13 января, 2009 · Жалоба Возьмите ARM с CAN'ом или, несмотря на мнение zltigo, AVR с CAN'ом на борту, в единичном экземпляре цена камня без разницы. Ну а смысл-то какой в AVR? За большие(ну или равные) деньги получить всего меньше. Ну и? Типа на немного знакомом ASM писать :(? Использовать ранее полученные сокровенные знания по работе GPIO от Atmel :)? Хотя лично я, если бы делал серийное устройство, не побрезговал бы и таким решением. Ну для периферийного устройства типа "кнопка на CAN" почему-бы и нет, а для "центрального" микроконтроллера зачем такие изыски... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Rst7 5 13 января, 2009 Опубликовано 13 января, 2009 · Жалоба Типа на немного знакомом ASM писать ? Да почему? На Си. Просто человек явно задумал некоммерческое устройство, пусть делает на чем хочет - ближе ему AVR, пусть будет AVR. Незнаком с ARM - не стоит и браться за него в таком проекте, вместо удовлетворения от реализации будет глюки ловить, происходящие от незнания предмета. С другой стороны, при желании факультативно изучить ARM, можно взять и его, главное, за лесом увидеть деревья ;) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vvvv 0 14 января, 2009 Опубликовано 14 января, 2009 (изменено) · Жалоба Видете-ли единственная поделка имеющая в своем названии "Меркурий 230" является электросчетчиком и работали Вы с ним по RS232/485 интерфейсу, который, естественно, никакого отношения к CAN не имеет. Или через "Адаптер" CAN содержащий, хоть это и осталось для Вас неведомым :( и микроконтроллер и CAN контроллер и "весь навороченный протокол". Нет я все понимаю, СуперМодератор, Гуру, орденов как у Брежнева, но что за тон высокомерный из сообщения в сообщение. Меркурий 230 действительно содержит CAN драйвер, и для работы с ним действительно приходилось со своей стороны ставить PCA82C251, дело было давно, может сейчас они сменили интерфейс. Вы похоже Меркурии видели только на картинке сайта. Бывает. Ответьте по существу чем решение AVR+PCA82C251 простейший вариант по физическому CAN не подходит для данной домашней разработки. Аргументированно,без раздувания щек, просто и по существу. Я предлагаю решение которое позволит завязать хоть 20 процессоров AVR всего по трем проводам, и не изучать всю спецификцию CAN. Главное, следить за тем, чтобы два проца одновременно не передавали данные в шину. Это же так просто. И недорого. Изменено 14 января, 2009 пользователем vvvv Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Regressor 0 14 января, 2009 Опубликовано 14 января, 2009 · Жалоба Rst7 прав... Штука некоммерческая. AVR ближе, плюс на него уже есть наработки, которые не хотелось бы переписывать (большую часть проекта по частям уже изобразил - настало время сложить все вместе). Следить за тем, чтобы два проца одновременно не передавали в шину нет никакого желания, поэтому пускай будет MCP2515/MCP2551 (кстати почему кал ? Есть какие-то подводные камни ?). Вопрос я так понимаю исчерпан. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vvvv 0 14 января, 2009 Опубликовано 14 января, 2009 (изменено) · Жалоба Для того, чтобы следить чтобы два или несколько процессоров не передавали одновременно, нужно реализовать программно одну единственную вещь, чтобы основной комп передавал на шину запросы, а остальные ему отвечали. И даже при работе с MCP Вам также придется организовать работу, где мастер это комп под сидушкой, а меги все отвечают на его запросы. Т.е. пакет компа видят все процы, а отвечает только тот, чей адрес в пакете. Вам в любом случае нужно будет оформлять информацию в пакеты данных. Неважно, используете Вы MCP2515 или нет. Только MCP2515 за Вас сам определит адрес пакета, а в моем варианте это сделает mega. Это не супер сложная операция, сравнить байт адреса принятого по CAN шине. Но я не навязываю решение, только предлагаю как один из вариантов. Изменено 14 января, 2009 пользователем vvvv Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Regressor 0 14 января, 2009 Опубликовано 14 января, 2009 (изменено) · Жалоба Тот же модуль кондиционера должен знать температуру двигателя с диагностики, чтобы не включать печку при прогреве двигателя. А еще эту температуру должен знать модуль IF (у которого есть свой маленький LCD, на который он выводит информацию с парктроников, и который следит за параметрами двигателя подавая сигнал спикером в случае проблемм), а еще модуль IF должен знать текущий расход, который считается отдельным процессором. CAN же вроде позволяет multimaster режим ? З.Ы. Комп может быть отключен - мало ли что. Поэтому в случае его отсутствия критические данные (парктроник, температура двигателя, часы, расход горючки) должны быть доступны через тот же LCD. Изменено 14 января, 2009 пользователем Regressor Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 2 14 января, 2009 Опубликовано 14 января, 2009 · Жалоба Ответьте по существу чем решение AVR+PCA82C251 простейший вариант по физическому CAN... Вы можете связываться как хотите и с кем хотите, рожать любые протоколы или утверждать, что работаете вообще без них: Не нужны Вам контроллеры CAN, не нужен протокол обмена. Просто соедините RS232 выводы процессоров с микросхемами, драйверами CAN, а выводы CAN всех драйверов объедините в одну шину. И обменивайтесь информацией напрямую по собственному усмотрению. Как будто Вы соединили все процы в один общий RS232. Только не называйте эту поделку CAN только по той причине, что Вы прицепили некий приемопередатчик один из множества удовлетворяюших CAN протоколу и это при том, что CAN вообще не нормирует реализацию физического уровня. У меня, например, CAN в пределах блока работает без всяких (упорно поминаемых Вами в качестве аргумента того, что Вы CAN "родили") PCA82C251 и подобных. Это же так просто. И недорого. Просто и не дорого использовать, например, ARM контроллер на 72MHz c CAN контроллером на борту (Ethernet, USB до кучи тоже. Добавите доллар будет LCD контроллер)за 120 рублей (в розницу). Использовать AVR для чего-либо значительно отличающегося от "контроллера светодиода" это уже СЕГОДНЯ в большинстве случаев просто ДОРОГО. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vvvv 0 14 января, 2009 Опубликовано 14 января, 2009 · Жалоба Спасибо за аргументированный ответ:) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Regressor 0 14 января, 2009 Опубликовано 14 января, 2009 · Жалоба zltigo, а дорого это в каком смысле ? Для серии дорого или вообще дорого ? Мне кажется мое единичное изделие если я начну на арм переползать выйдет дороже только потому, что мне придется лепить программатор, новые макетки, тратить время на изучение ARM. И из вашего последнего поста я так понял вы ответили на мой вопрос - в пределах блока CAN контроллерам драйвера шины не нужны ? Я правильно понял ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 2 14 января, 2009 Опубликовано 14 января, 2009 · Жалоба zltigo, а дорого это в каком смысле ? Для серии дорого или вообще дорого ? Мне кажется мое единичное изделие если я начну на арм переползать выйдет дороже только потому, что мне придется лепить программатор, новые макетки, тратить время на изучение ARM. Дорого практически ВСЕГДА. Цену LPC236x http://mt-system.ru/index.php?store_search=lpc236&id=5 в услових российской розницы я привел. А сколько стоит "голый" AVR128? Программатор не нужен - все приличное из мира ARM содержит bootloader-ы и заливается по RS232/USB. Если не уперлись когда-то у эпоху 8bit+пару сот байт памяти в ASM и пишите на 'C', то собственно в первом приближеии изучения ARM нет. Ну а макетки.. это уже Ваши проблемы - надо было раньше думать, хотя цена вопроса готовых китов долларов 60 - http://starterkit.ru, например... И из вашего последнего поста я так понял вы ответили на мой вопрос - в пределах блока CAN контроллерам драйвера шины не нужны ? Я правильно понял ? Могут быть использованы любые решения обеспечивающие доминирование "низкого" уровня на шине. В пределах 19" блока с этим успешно справляется банальный "открытый коллектор". Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Regressor 0 14 января, 2009 Опубликовано 14 января, 2009 · Жалоба Млян... Я обычно на чип-дипе цены смотрел - думал порядок цен везде примерно одинаковый. Фига се разница. Млян млян млян.... Пишу на C. Пошель читать даташиты. Встроенный USB и CAN мне как-то сильно хочется. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DogPawlowa 0 14 января, 2009 Опубликовано 14 января, 2009 · Жалоба Могут быть использованы любые решения обеспечивающие доминирование "низкого" уровня на шине. В пределах 19" блока с этим успешно справляется банальный "открытый коллектор". Я бы не гнался за дешевизной. Завтра захочется подключить чего-нить внешнее. Или случайно замкнуть проводочки интерфейса. Драйвер защищен от десятков вольт, а транзистор - нет. Только что запускал первое устройство, сделанное производством. В половине разъемов шины монтажники напутали провода. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 2 14 января, 2009 Опубликовано 14 января, 2009 · Жалоба Встроенный USB и CAN мне как-то сильно хочется. Для связи с комьпьютером в Вашем случае рекомендую Ethernet :) а не USB. Я бы не гнался за дешевизной. Завтра захочется подключить чего-нить внешнее. Контроллеры по нынешним временам имеют несколько CAN контроллеров на борту. В моем случае межблочные и блочные это разные интерфейсы. Более того, внутри блока два (резервирование) CAN на OD и два на "обычных" выходящих за пределы блока. На шине блока масса и других сигналов, но естественно с защитой и организацией hotswap. Ну а дешевизна...., когда только в одном в блоке 24*2*на пару баксов.... есть о чем подумать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Regressor 0 14 января, 2009 Опубликовано 14 января, 2009 (изменено) · Жалоба Вообще я изначально хотел Ethernet (я сам с компьютерными сетями работаю по основной работе, мне это ближе) и даже сделал на макетике интерфейсик на пробу ENC28J60 + разъем с трансом, но покрутил, подумал... И плюсов по сравнению с usb не нашел (хотя у материнки два RJ-45 на борту), а минусов куча - аппаратно сложнее, софтовая часть сложнее (причем на обеих сторонах). Вот и решил, что будет USB. Или в пользу ethernet есть какие-то аргументы, про которые я ни сном ни духом ? З.Ы. Почитал по диагонали даташит на LPC2364... Впечатлился... Он один вытянет все, что я хотел сделать на трех аврах. Уйма UARTов, уйма I2C, два CAN, USB, 70 ног, ADC/DAC, управление питанием выглядит поприличнее атмег, собственный RTC батарейный (хотя наверное не 2ppm как в ds3232), потребление при той же частоте чуть больше АВРа (без переферии примерно одинаково). А как у него с надежностью ? Камней подводных нету ? А где-нибуть pcb design notes можно взять ? И еще глупый вопрос - пошарил по mt-system.ru и так и не понял поставляют они детальки розницей по интернету или нет... :( Изменено 14 января, 2009 пользователем Regressor Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DogPawlowa 0 14 января, 2009 Опубликовано 14 января, 2009 · Жалоба Вот и решил, что будет USB. Или в пользу ethernet есть какие-то аргументы, про которые я ни сном ни духом ? Угу... Встроенная гальваническая развязка, что может оказаться решающим в условиях помех. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться