Raspberry+ARPI600+(проблемы с ComMotion motor driver)

Тема в разделе "Raspberry Pi", создана пользователем Igor68, 18 июн 2016.

Метки:
  1. Igor68

    Igor68 Гуру

    Имеется 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. Пока не знаю куда копать.
     
    Последнее редактирование: 18 июн 2016
  2. Igor68

    Igor68 Гуру

    Прошу, если возможно схему ComMotion motor driver - в читаемом виде (то что у меня есть почти не читаема - маленький размер);
    И нет опыта в перепрошивке шилдов - подскажите, если не трудно!
    жду помощи!
    с уважением ко всем!
     
  3. Igor68

    Igor68 Гуру

    Похоже помощи не дождусь (возможно, что это не относится к 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, H:D6, L:FF)

    avrdude done. Thank you.


    Ну теперь буду пробовать прошивать.
    Для тех у кого вопросы:
     

    Вложения:

    • ARPI600-Schematic.pdf
      Размер файла:
      368,8 КБ
      Просмотров:
      266
    • SCH.pdf
      Размер файла:
      95,1 КБ
      Просмотров:
      345
  4. Igor68

    Igor68 Гуру

    Итак прошивка :
    avrdude -C /etc/avrdude.conf -v -v -v -v -p m328p -c pi_1 -Uflash:w:dump.hex
    где dump.hex - файл, который был получен после компиляции с помощью Arduino IDE.
    Устройство стало работоспособным - только по инструкции надо прошивать оба контроллера одной прошивкой.
    Теперь буду редактировать прошивку этого шилда - в заводском варианте похоже что-то не то с 4-м мотором при конфигурации автономного управления приводами без энкодера (он и в прямом и в обратном заданном движении работает только в одном направлении)
    Похоже вопрос снят!