Arduino Mega2560 как проверить, живая или нет ?
- Войдите на сайт для отправки комментариев
Втр, 30/08/2016 - 08:04
Суть проблемы, в этой Arduino залит скетч который работал. Потом, была изменена внешняя обвязка и естественно немного изменился монтаж, внешний. После этого на выходах Arduino пропали сигналы Step и Dir. Пробовал перешивать разныеми версиями моего скетча, ничего не изменилось. Вроде, можно допустить, что Arduino "кончилась" но, смущает такой факт, на этих выходах, где должен быть сигнал Step и Dir, нуль и единичка переключаются справно и уровни идеальные: практически ноль при низком и почти 5 вольт при высоком. Уровни переключаются правильно. Как убедиться, Arduino исправна или повреждена ?
Не знаю, важно это или нет, Arduino не оригинальная, а китайская версия, с CH340G. Есть у меня ещё оригинальная но, у неё контроллер ATmega16U2 греется сильно, похоже убитая. Самому можно её поменять ? Или в домашних условиях не реально ?
Проверит работоспособность любого пина можно с помощью Blink тупо меняя номер пина в скетче, другое дело что если он не хочет работать в альтернативном режиме. Я так понял речь идет об управлении шаговиком? Может попутали эти два сигнала местами, я вчера как раз писал скет для плавного изменения скорости вращения степера так и напахал, перепутал куда какой сигнал выводить. Степер гудит, греется и ни сместа. По второму вопросу, нужен паяльный фен и прямые руки, у меня нет ни одного купленного arduino, все собрал сам. Обращу только ваше внимание на тот факт что все mega16u2 приходят с разными фьюзами. Иногда зашиты для работы от внешнего генератора, так вот через Flip все зальется а вот работать не будет, надо иметь програматор с генератором, по типу AVRISPmkii(клон) или собрать любой генерато, подать с него на вывод "Xtal in" мк сигнал, перешить фьюзы и радоваться жизни. Сразу выложу фьюзы EXT : 0xF4 HiGH : 0xD9 LOW : 0xFF, с этими фьюзами мк прошивается только по SPI, так как на плате HWB подтянут к земле через 1 кОм и при подаче с програматора сигнала Reset переходит в режим загрузки по USB.
У меня управление не шаговым, а серво но, это не суть важно. На счёт перепутано, нет, там ничего не перепутано. Всё подключено правильно. На входе в Arduino сигналы, по которым работает скетч, имеются. Сигнал с джойстика, логический ноль, который запускает выполнение скетча, приходит. А вот на выходе, где должны быть сигналы Step и Dir, просто статический уровень, в зависимости от направления вращения, переключается из нуля в единичку и наоборот. Единственно, на что можно грешить, наводки. У меня с Arduino уходит пучок проводов на кнопки, джойстик, светодиоды и валкодеры, длиной около метра. Собраны в пучок, не витая пара, просто пучок. Экрана нет.
По замене понял. Пока не буду ничего делать, нет ни оборудования, ни опыта. А там ещё и программировать нужно... Для меня впервой такое дело. Наверное придётся купить новую Arduino... Знать бы точно, что нужно покупать новую, а то долго ждать, а когда придёт, окажется что не в ней проблема...
Попробуйте подключить к этим понам светодиод и проверить с помощью Blink, если диод будет мигать то значит косяк в обвязке или в самом серве. Да вот вопрс, а управление совтовое типа ногодрыг, или хардовое, шим?
З.Ы. Сам то откуда?
Ну, я осциллографом смотрю, чем он хуже светодиода ? Управление софтовое. Сам из Германии.
Далековато, а так минут за 15 реанимировалбы ваши arduino mega2560. Всеже советую попробовать залить Blink и проверить выводы. Вчера переносил проект на stm на внешний диск. После компиляции выдал ошибку, проверяю в первоисточнике, все ОК. После внимателной проверки нашел пару ошибок при создании проекта, исправил и все заработало. Вот еще а пробовали проверить скинув провод с пина, может где то КЗ.
Там нет КЗ. На счёт Blink. Если я правильно понял, нужно залить в Arduino скетч Blink и в нём указать номер моих ножек ? А что, контроль по осциллографу не заслуживает доверия ? Я пока не могу понять, может ли быть такое что, результат работы скетча, каким- то образом не доходит до выхода ? А как же тогда объяснить смену уровней на выходе ?
Так, еще раз по порядку. Загружаем скетч, берем осцилограф, мереем что имеем на пине Step и Dir. На Step видим меандр(последовательность импульсов)? При подаче сигнала Dir уровень меняется? Если да, проблемма в обвязке или серве. в противном случае дело в arduino.
Скетч для тестирования (пинов в том числе):
http://arduino.ru/forum/programmirovanie/sysinfo-arduino
Нет, меандр не видим ни на Step, ни на Dir. Просто на Dir уровень переключается в тот, который задаёт направление вращения. А Step устанавливается в нуль. А должен быть меандр на обоих.
Нет, меандр не видим ни на Step, ни на Dir. Просто на Dir уровень переключается в тот, который задаёт направление вращения. А Step устанавливается в нуль. А должен быть меандр на обоих.
Пробовали сменить в скетче пины? Если картина таже, значит дело в скетче, ищите где косяк. Проверьте все еще раз, чудес не бывает.
SysInfo for Arduino version 1.06
F_CPU = 16000000
Frequency = 16 MHz
CPU = ATmega2560
Flash Memory = 262143 bytes
Free RAM memory = 7701 bytes
VCC = -1 mV
Signatura = 1E981
Fuses (L/H/ext) = FFD8FD
Internal Temperature = -256.8 C
Test of short circuit on GND or VCC:
Pin: 0 Low: Fail High: Ok Pull Up: Ok
Pin: 1 Low: Ok High: Fail Pull Up: Fail
Pin: 2 Low: Ok High: Ok Pull Up: Ok
Pin: 3 Low: Ok High: Ok Pull Up: Ok
Pin: 4 Low: Ok High: Ok Pull Up: Ok
Pin: 5 Low: Ok High: Ok Pull Up: Ok
Pin: 6 Low: Ok High: Ok Pull Up: Ok
Pin: 7 Low: Ok High: Ok Pull Up: Ok
Pin: 8 Low: Ok High: Ok Pull Up: Ok
Pin: 9 Low: Ok High: Ok Pull Up: Ok
Pin: 10 Low: Ok High: Ok Pull Up: Ok
Pin: 11 Low: Ok High: Ok Pull Up: Ok
Pin: 12 Low: Ok High: Ok Pull Up: Ok
Pin: 13 Low: Ok High: Ok Pull Up: Ok
Pin: 14 Low: Ok High: Ok Pull Up: Ok
Pin: 15 Low: Ok High: Ok Pull Up: Ok
Pin: 16 Low: Ok High: Ok Pull Up: Ok
Pin: 17 Low: Ok High: Ok Pull Up: Ok
Pin: 18 Low: Ok High: Ok Pull Up: Ok
Pin: 19 Low: Ok High: Ok Pull Up: Ok
Если я правильно понял, проблема с пинами 0 и 1 ? Но мне это ни о чём не говорит. Я эти пины, в своём скетче, вроде не использую... Здесь пины 0 и 1 это по микросхеме или по внешней обвязке ?
Думаю это пины arduino и это не неисправность, а результат того что на пины 1 и 2 выведены сигналы RX, TX UART по которому заливается скетч и происходит "отладка". Я имел ввиду использовать в вашем скетче другие пины и посмотреть что получится.
И что теперь получается ? Arduino живая ? А куда тогда сигналы пропали ? Они же были, до изменения схемы...
Нет, пины я не пробовал менять, а хотел. Не стал менять потому что, не очень хорошо понимаю проблему. Там под это дело используется порт, т.е. все 8 разрядов. На сколько у меня ума хватило, друие порты Arduino, задействованы на несколько целей и это для меня китайская грамота. Например, могу ли я, просто один пин из порта, скажем L, перенести на любой другой порт или пин ? А как тогда переписать скетч ? Дело в том скетч писал не я, а взял из инета готовый.
Скинь скетч, посмотрим.
1
Насколько я понял Таймер работает в режиме Шим, джоистик аналоговый и снимая показания с него вы преобразуете число от 0 -1024 меняете значение регистра OCR таймера. После чего на выбранный серв подается импульс заданной(вычислинной) длительности и устанавливает его в нужное положение.
З.Ы. Загрузил ваш скетч вывод 8 импулсы с частотой 125 Гц, 4, 5, 6, 7, 9 посмотретьсложно но тоже идут пакеты импульсоа.
На будущее очень рекомендую или приобрести или собрать самому ISP программатор. Даже если неисправна часть USB-UART. Всегда можно записать скетч через программатор. Да и не обязательно покупать ардуино, достаточно купать м/к, макетные платы для монтажа м/к, кварц на 16 МГц, пару конденсаторов 22пФ. и просто подключать к нему свою периферию.
Про таймер ничего не знаю, просто повторил, как есть. На счёт преобразования показаний с джойстика, утверждать не буду ибо, в программировании ничего не понимаю. Но, думаю что, это не так. Джойстик обычный контакт, замыкает ножку Arduino на массу т.е. элементарный ноль или единичка. Подключён к ножкам 8,9,10,11 На ножки 20, 21+47 подаётся Dir и Step соответственно. А выход с 42 (Dir), 49(Step) и 45(Enable). Эти сигналы появляются, когда на любом входе джойстика появится нуль. Но, сейчас просто переходит из единички в нуль и обратно. Никаких импульсов там нет. А были.
4,5,6,7,9 у меня не используются. А вот по ISP-программатору, м/к и макетных плат, если не трудно, разверните пожалуйста. М/к как понимаю, микроконтроллер ? Макетная плата это плата с кучей отверстий которые соединяем по своим схемам ? У меня есть АтМега1284, купил в начале своих потуг но, так и не научился программировать ибо, в инете все эти уроки с ошибками, а грамотного специалиста, к которому можно было обратиться с вопросом, нет. Возился с этими уроками, возился, ничего не работает, по сотне раз перепроверял все буквы и знаки, всё правильно, а не работает. Естественно, если не знаешь, как должно быть то, хоть сколько сиди и ищи ошибку, не найдёшь ибо, она уже в тексте, а ты её справно повторяешь... Здесь тоже пытался задавать вопросы но, местные зубры... В общем, ни хрена не узнал.
Джойстик обычный контакт, замыкает ножку Arduino на массу т.е. элементарный ноль или единичка.
Прошу прощения, а дребезг этих контактов вы программно устраняете?
По поводу плат и мк, обсолютно очно. О програмировании мк.
1. Нужен програматор, если вы пыталмсь записать программу через штатное подключение arduino по usb естественно у вас ни чего не получилось.
2.Даже avrdude имеет графическую оболочку, так что если вы не очень понимаете работу в командной строке, лучше работать из нее.
Сам процесс абсолютно одинаков для всех програматоров, соединяем его с компьютером и мк(по SPI) запускаем програму для програмирования, выбираем тип мк, выставляем фьюзы, прошиввам файлпрошивуи.
Ребята, в вопросах программирования, я ничего не понимаю и скетч этот писал не я. Я только методом проб и ошибок ( ну, немного знаний конечно есть в мозгах ) узнаю, что делает тот или иной фрагмент... Поэтому, про дребезг ничего не скажу но, он не проявляется. По USB если Arduino в порядке, всё идёт нормально. Но, у меня обе Arduino разные, одна с оригинальным USB на_какой- то_там интерфейс, а другая с китайской М/С CH340G.
Есть у меня одна плата, типа ознакомительная, для студентов иже с ними, от ATMEL На ней есть разъём ISP для ATmega16 и ATmega8536 но, я не знаю как ей работать ? Её можно задействовать ?
Так, разобрался, Arduino дохлая. На другой Arduino заменил дохлую CH340G, залил в неё скетч и теперь всё работает. Спасибо за помощь.
А я пойду доводить до ума, свою бандуру. Теперь нужно от помех избавляться, провода в экран укладывать, может ещё где огрехи найду ?
Ребята, в вопросах программирования, я ничего не понимаю и скетч этот писал не я. Я только методом проб и ошибок ( ну, немного знаний конечно есть в мозгах ) узнаю, что делает тот или иной фрагмент... Поэтому, про дребезг ничего не скажу но, он не проявляется. По USB если Arduino в порядке, всё идёт нормально. Но, у меня обе Arduino разные, одна с оригинальным USB на_какой- то_там интерфейс, а другая с китайской М/С CH340G.
Есть у меня одна плата, типа ознакомительная, для студентов иже с ними, от ATMEL На ней есть разъём ISP для ATmega16 и ATmega8536 но, я не знаю как ей работать ? Её можно задействовать ?
Конечно можно, но как я уже говорил нужно програматор и еще, если работать в среде arduino IDE, то в интернете поискать файлы под mega16 или какой у вас есть в наличии, добавить их в файле board.txt и после компиляции прошивать с помощью опции загрузить с помощью програматора. Вот тут есть все для добавление mega16, правда с тактированием от внутренних 8МГц. https://github.com/sudar/arduino-extra-cores
З.Ы. Если вы смогли поменять сами usb-uart, то и mega2560 сможете. Не бросайте в ящик arduino2560 замените чип и пользуйтесь ей дальше.
CH340G можно с паяльником заменить, а 2560 мне не заменить, у меня нет фена. Да и зрение уже не то, что было в молодости. Конечно, я её не буду выбрасывать, потом, закончу с первым агрегатом, попробую на другие ножки перенести.
В самом начале, когда я только пыталься научиться программировать, купил себе китайский программатор, уже не помню какой у него интерфейс, с одной сторoны USB, а с другой висит ремешок, не то ISP, не то JETAG. Он подойдёт ?
Нашёл его, USBASP v2.0
CH340G можно с паяльником заменить, а 2560 мне не заменить, у меня нет фена. Да и зрение уже не то, что было в молодости. Конечно, я её не буду выбрасывать, потом, закончу с первым агрегатом, попробую на другие ножки перенести.
В самом начале, когда я только пыталься научиться программировать, купил себе китайский программатор, уже не помню какой у него интерфейс, с одной сторoны USB, а с другой висит ремешок, не то ISP, не то JETAG. Он подойдёт ?
Нашёл его, USBASP v2.0
Програматор подойдет, но лучше собрать clon AVRISPmkII, он програмирует всю линейку Atmel включая Xmega. У вас есть мастерские по ремонту компьютеров, телефонов? Если есть и они согласаться то замена займет минут 10, остается купить чип mega2560.
Ребята, с таким феном http://www.ebay.de/itm/262360559482?_trksid=p2060353.m1438.l2649&ssPageName=STRK%3AMEBIDX%3AIT можно паять и снимать mega2560 ?