Имеется Raspberry Pi2 модель B в связке с (неделю назад приобрёл) ARPI600 - с Multiservo (раннее с ним не мог разобраться) работает нормально. Но возникла проблема с ComMotion motor driver (ещё до ARPI600): - перестали работать выходы М1 и М2. Выходы (мостовые схемы на полевых транзисторах) по прозвонке целые. До них транзисторы да и все остальные пассивные элементы целые. - продолжил работать с выходами М3 и М4 (по мотору на выход - и без механических нагрузок как и в начале) и через время выходит из строя полумост выхода М3. Мост восстановил заменив полевые транзисторы AO3400 и AO3401 на элементы от IR (IRLML6344TRPBF/n-канал/ и IRLML2244/p-канал/), после чего работа восстановилась. Управление по I2C от Raspberry+ARPI600 нормально только при обращении по адресу 0x07 и работают только M3 и M4. При обращении по адресу 0x06 - ноль эмоций. Адреса сдвинул переключателем согласно документации. Адреса по умолчанию 0x1E и 0x1F после установки переключателей и перезапуска не наблюдаются по i2cdetect -y 1, потому и поставил 0x06 и 0x07. Собственно вопрос - программно всё сделал, но вот проблема не работает - похоже сам ComMotion. Пока не знаю куда копать.
Прошу, если возможно схему ComMotion motor driver - в читаемом виде (то что у меня есть почти не читаема - маленький размер); И нет опыта в перепрошивке шилдов - подскажите, если не трудно! жду помощи! с уважением ко всем!
Похоже помощи не дождусь (возможно, что это не относится к AMPERKA - вообще-то справедливо и отвечаю сам себе)! avrdude -p m328p -C /etc/avrdude.conf -c pi_1 то есть использую для ARPI600 - платы для подключения шилдов к rspberry pi2. Сначала использовал SPI, но по разводке сигнал RES соответствует P_CE0(выбор кристалла, который использует сам SPI). Но применение GPIO исправило ситуацию: 10 - P_MOSI 9 - P_MISO 11 - P_SCK 8 - RES то есть: # Linux GPIO configuration for avrdude. # Change the lines below to the GPIO pins connected to the AVR. programmer id = "pi_1"; desc = "Use the Linux sysfs interface to bitbang GPIO lines"; type = "linuxgpio"; reset = 8; sck = 11; mosi = 10; miso = 9; ; Это было добавлено (изменено) в файл /etc/avrdude.conf . Соответственно тест обращения от raspberry к контроллеру ATmeda328p платы ComMotion driver for 4 motors дало результат: root@raspberrypi:/home/httpd/src/commotion/ComMotion/ComMotion_shield# avrdude -p m328p -C /etc/avrdude.conf -c pi_1 avrdude: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.00s avrdude: Device signature = 0x1e950f avrdude: safemode: Fuses OK (E:05, H6, L:FF) avrdude done. Thank you. Ну теперь буду пробовать прошивать. Для тех у кого вопросы:
Итак прошивка : avrdude -C /etc/avrdude.conf -v -v -v -v -p m328p -c pi_1 -Uflash:w:dump.hex где dump.hex - файл, который был получен после компиляции с помощью Arduino IDE. Устройство стало работоспособным - только по инструкции надо прошивать оба контроллера одной прошивкой. Теперь буду редактировать прошивку этого шилда - в заводском варианте похоже что-то не то с 4-м мотором при конфигурации автономного управления приводами без энкодера (он и в прямом и в обратном заданном движении работает только в одном направлении) Похоже вопрос снят!