Raspberry Pi как программатор Atmega328

Тема в разделе "Микроконтроллеры AVR", создана пользователем Фёдор М., 12 мар 2016.

Метки:
  1. Фёдор М.

    Фёдор М. Нерд

    Подопытный:
    [​IMG]
    Схема подключения:
    [​IMG]
    Установка ПО:
    Код (Bash):
    sudo apt-get install bison flex libusb-dev
    cd /tmp
    wget http://download.savannah.gnu.org/releases/avrdude/avrdude-6.1.tar.gz
    tar xf avrdude-6.1.tar.gz
    cd avrdude-6.1
    ./configure --prefix=/opt/avrdude --enable-linuxgpio
    make
    sudo make install
    Правим avrdude.conf, указывая используемые нами пины:
    Код (Bash):
    sudo vim /opt/avrdude/etc/avrdude.conf
    Раcкомментируем секцию linuxgpio и прописываем наши пины:
    Код (Bash):
    programmer
      id    = "linuxgpio";
      desc  = "Use the Linux sysfs interface to bitbang GPIO lines";
      type  = "linuxgpio";
      reset = 12;
      sck   = 11;
      mosi  = 10;
      miso  = 9;
    ;
    Правим конфиг Arduino IDE
    Код (Bash):
    sudo vim /usr/share/arduino/hardware/arduino/programmers.txt
    Вставляем эти строки в конец файла:
    Код (Bash):
    rpigpio.name=RPi GPIO
    rpigpio.protocol=linuxgpio
    И кидаем симлинки на нашу версию avrdude:
    Код (Bash):
    sudo ln -fs /opt/avrdude/bin/avrdude /usr/share/arduino/hardware/tools/avrdude
    sudo ln -fs /opt/avrdude/etc/avrdude.conf /usr/share/arduino/hardware/tools/avrdude.conf
    Запускаем Arduino IDE (Если запустить программу из меню, ругнется на отсутствие прав):
    Код (Bash):
    sudo arduino
    [​IMG]
    Заливаем Blink, эксперементируем - работает!
    Если возникает проблема следующего характера:
    Код (Bash):
    Cant export GPIO 12, already exported/busy?: Device or resource busy
    avrdude done.  Thank you.
     
    Это решается через:
    Код (Bash):
    echo 12 > /sys/class/gpio/unexport
    Аналогично для пинов 9, 10 и 11.

    Специальное спасибо Lukáš Lalinský, на материале статьи которого и был осуществлен этот проект.

    P.S. Бутлодер таким образом еще не заливал.
     
    Последнее редактирование: 8 май 2016
    Igor68, Unixon и Airbus нравится это.
  2. Airbus

    Airbus Радиохулиган Модератор

    Круто!Скока Малинка стоит?Ею ещё научиться пользоваться надо+танцы с бубном.А так Аффтару респект!
     
  3. SibMaks

    SibMaks Нуб

    Есть у кого схема подключения?
     
  4. parovoZZ

    parovoZZ Гуру

    В первом посте все пины расписаны.
     
  5. Igor68

    Igor68 Гуру

    Для устранения этого:
    то есть для разрешения в файл /etc/rc.local добавил это:
    Код (Bash):

    if ! [ -e /dev/ttyUSB0 ]
      then
      echo 'No file'
      else
      chm=$(ls -al /dev/ttyUSB0 | awk '{print($1)}')
      if [ $chm != "crwxrwxrwx" ]
      then
      chmod 777 /dev/ttyUSB0
      fi
      echo "$chm"
      fi
     
    Одним словом разрешил последовательный порт USB всем.
    Хоть и не хороший... но вариант. Давно было это... И не про GPIO всё это. Но кто-нибудь рассматривал такой вариант?
     
    Последнее редактирование: 27 окт 2017
  6. Igor68

    Igor68 Гуру

    Кстати посмотрел вот это:
    Код (Bash):

    root@raspberrypi:/sys/class/gpio/gpiochip0# ls -al
    total 0
    drwxrwx--- 3 root gpio  0 May 23 18:53 .
    drwxr-xr-x 3 root root  0 May 23 18:53 ..
    -rwxrwx--- 1 root gpio 4096 May 23 18:53 base
    lrwxrwxrwx 1 root gpio  0 May 23 18:53 device -> ../../../3f200000.gpio
    -rwxrwx--- 1 root gpio 4096 May 23 18:53 label
    -rwxrwx--- 1 root gpio 4096 May 23 18:53 ngpio
    drwxrwx--- 2 root gpio  0 May 23 18:53 power
    lrwxrwxrwx 1 root gpio  0 May 23 18:53 subsystem -> ../../../../../../class/gpio
    -rwxrwx--- 1 root gpio 4096 May 23 18:53 uevent
     
    и пришла мысль поправить доступ вот этим:
    Код (Bash):

    root@emo-5:/home/emo-5# usermod --help
    Использование: usermod [параметры] имя пользователя

    Параметры:
      -c, --comment КОММЕНТАРИЙ  новое значение поля GECOS
      -d, --home ДОМ_КАТ  новый домашний каталог учётной записи
      -e, --expiredate EXPIRE_DATE  установить дату окончания действия
      учётной записи в EXPIRE_DATE
      -f, --inactive INACTIVE  установить пароль после устаревания учётной
      записи в INACTIVE
      -g, --gid ГРУППА  принудительно назначить первичную ГРУППУ
      -G, --groups ГРУППЫ  список дополнительных ГРУПП
      -a, --append  добавить пользователя в дополнительные
      ГРУППЫ, указанные в параметре -G не удаляя
      пользователя из других групп
      -h, --help  показать данное сообщение и закончить работу
      -l, --login НОВОЕ_ИМЯ  новое значение имени учётной записи
      -L, --lock  заблокировать учётную запись
      -m, --move-home  переместить содержимое домашнего каталога
      в новое место (использовать только вместе с -d)  
      -o, --non-unique  разрешить создание учётной записи с уже  
      имеющимся (не уникальным) UID  
      -p, --password ПАРОЛЬ  задать новый шифрованный пароль для  
      учётной записи  
      -s, --shell ОБОЛОЧКА  задать новую оболочку для  
      учётной записи  
      -u, --uid UID  новый UID для учётной записи  
      -U, --unlock  разблокировать учётную запись  
      -Z, --selinux-user  новое SELinux-отображение учётной записи
     
    одним словом пользователя "вася пупкин" добавить в группу gpio