Технический форум по робототехнике.
Michael_K » 24 ноя 2010, 01:57
[ сообщение удалено пользователем ]
Последний раз редактировалось
Michael_K 24 ноя 2010, 03:41, всего редактировалось 1 раз.
Scorpio » 24 ноя 2010, 03:08
ОЙ! Действительно. Вот что значит не иметь проверки русской орфографии в ворде! Сам против безграмотности. Каюсь.
loox » 24 ноя 2010, 11:43
Scorpio
1."Славе" ,даже теоретически не может отвечать на передачу адреса NACK. Если это не его адрес он вообще ничего не отвечает.
2. Хорошо, если в компиляторе нет библиотеки i2c (в чем я жутко сомневаюсь) контролируте в числовых кодах по таблице переходов
переача данных мастером:
Команды: Старт SLA W бит подтвержения данные бит подтверждения стоп
Состояния: 0х08 0х18 0х28
все другие состояния ошибки
loox
=DeaD= » 24 ноя 2010, 11:47
2Scorpio: А ты не поставил прошивку для Arduino IDE бутлоадера и не подцепил еще свой Crumb к Arduino IDE полноценно?
Добавлено спустя 1 минуту 46 секунд:
И дай фотки в сборе с CRUMB
boez » 24 ноя 2010, 18:15
loox писал(а):даже теоретически не может отвечать на передачу адреса NACK. Если это не его адрес он вообще ничего не отвечает.
А чем ситуация "совсем ничего не отвечает" отличается от NACK? Вроде ж ничем. Мастер после 8 импульсов отпустил шину - вот там 1 и возникла. На один такт. Мастер ее увидел - и стоп послал. Все как на картинке.
Так что возможно просто какие-то помехи не дают слейву правильно воспринять адрес?
Michael_K » 24 ноя 2010, 18:47
мне все же кажется, надо железо копать.
Scorpio » 24 ноя 2010, 19:06
Michael_K писал(а):мне все же кажется, надо железо копать.
Это точно. Только копальщик скис.
=DeaD= писал(а):2Scorpio: А ты не поставил прошивку для Arduino IDE бутлоадера и не подцепил еще свой Crumb к Arduino IDE полноценно?
Если быть честным, то еще не въехал до конца, что это нам даст. Программа на МК уже написана, как и собственный протокол ПК - МК. МК принимает и обрабатывает около 30 комманд и выдает с десяток аварийных сообщений. Его задача не только передавать на ПК показания датчиков, но и выполнять макрокоманды, типа "припарковаться на базу". Во время движения МК самостоятельно контролирует дальномеры, измеряет напряжение батареи и замеряет токи маршевых двигателей. Во вермя парковки держит робота на полосе и т.д. Т.е. чтобы подключится к IDE я должен пересмотреть все концепции и полностью передать управление планшету, а в МК останется стандартизированный опрос датчиков? Или я недопонял?
Вот схемку нарисовал:
Туда не входят только сам планшет, камера, доп микрофон и аудиоусилитель.
А, это собственно виновник моих мучений (на схеме CPU):
=DeaD= » 24 ноя 2010, 20:14
Scorpio писал(а):Если быть честным, то еще не въехал до конца, что это нам даст.
Стандартную библиотеку для i2c. Хотя если она 100% рабочая и рисков нет - можно не адаптировать.
Scorpio писал(а):Т.е. чтобы подключится к IDE я должен пересмотреть все концепции и полностью передать управление планшету, а в МК останется стандартизированный опрос датчиков? Или я недопонял?
IDE не навязывает никакой логики работы прошивки.
Добавлено спустя 1 минуту 32 секунды:Надо отцепить из макетки CRUMB, соединить его только с MD25 тремя проводками и попробовать протестировать на этой паре i2c. Если будут косяки - тогда их искать, иначе проблема не в i2c, а в том как всё вместе собирается.
Добавлено спустя 46 секунд:Скажем нет ли шумов между землями разных модулей? Блоков питания сколько в схеме?
Scorpio » 24 ноя 2010, 20:52
Припаяться короткими проводками напрямую, минуя разъемы - это мысль. КРАМБ не отцепляется, т.к.мертво туда впаян (не было кровати, да и надежнее без нее. Правда, я уже запихнул все обратно в робота, и неохота опять разбирать. Землю мерил цешкой, но осциком не смотрел. Надо будет глянуть. Что проблема в железе, я не сомневаюсь.
С пятикратным запросом датчика, появление ошибок снизилось с 5-ти до 0.1% т.е. одна на 1000 циклов чтения. Это уже приемлимо. Кроме этого, исключил зависания. Буду пока двигаться дальше.
=DeaD= » 24 ноя 2010, 21:04
При отладке используй принцип Divide-et-Empera, если чего не работает - упрощай систему до минимальной с это функцией и проверяй реализацию самой функции, затем начинай добавлять другие блоки - когда перестаёт работать - там и ищи косяк, чего не так добавил
Scorpio » 24 ноя 2010, 23:42
Мудрая мысль!
=DeaD= писал(а):IDE не навязывает никакой логики работы прошивки.
Название Arduino DE у меня ассоциируются с Processing, Wiring и Firmata и другими непонятными словами. Я когда-то про них читал и у меня создалось впечатление, что с использованием их стандартных библиотек, пользователь в конце концов не очень уже понимает, что у него там в МК прошито и как оно работает. Наверное стандартизация это хорошо, но не привычно. В любом случае, надо учить еще одну СИ-модификацию. Я и сейчас, бывает, путаю NXC и CVAVR- ские функции. Но, раз такие уважаемые люди советуют, наверное это действительно удобно.
Aseris » 25 ноя 2010, 22:25
А I2C адрес формируется правильно? (мл бит чтение/запись?) Время обращения к компасу штатное, по датащиту? так как когда то с термодатчиками работал, то они раз в 40 мс обновляли данные, может компас тоже долго думает и ACN не хочет ставить на неверные данные?
Scorpio » 25 ноя 2010, 22:55
Адрес всегда формируется одинакого, и, раз в большинстве случаев читается, значит правильно. Про быстродействие компаса в даташите ничего не написано, но скорость и так ниже некуда. К томуже компас умеет удерживать шину синхронизации в нуле во время выполнения своих операций. Про программную часть можно больше не вспоминать, т.к. дело точно в железе.
loox » 27 ноя 2010, 09:40
Scorpio
Куда пропал, может продолжим сопряжение с компасом?.
Хотел бы заметить, что маловероятна проблема с железом. Скажи, есть ли возможность передавать и читать байты по uart? ели да - то можно написать тестовую программу которая будет выводить состояния.
loox
Scorpio » 29 ноя 2010, 06:05
Дык по уарту передовал конечно. Так и говорит, что ведомый ответил NACK, вернее ничего не ответил. Потом, таже прога с другим железом фурычит... Правда аппаратный TWI на "баттерфляе" я не пробовал. Там регистры несколько другие.