i2c не могу осилить

Тема в разделе "Raspberry Pi", создана пользователем morozko77, 25 май 2015.

  1. morozko77

    morozko77 Нуб

    в наличии железки
    raspberry pi ver B+ 1.2
    не могу запустить рабочий барометр (с ардуино работает замечательно) на базе bmp180 с маркировкой gy-68... да не в нем дело, вообще с i2c никакие железки не могу запустить

    делаю как тут: https://learn.adafruit.com/adafruits-raspberry-pi-lesson-4-gpio-setup/configuring-i2c
    pi@rasp ~ $ uname -a
    Linux rasp 3.18.7+ #755 PREEMPT Thu Feb 12 17:14:31 GMT 2015 armv6l GNU/Linux
    sudo nano /boot/config.txt сую в конец файла строки
    dtparam=i2c1=on
    dtparam=i2c_arm=on

    дальше
    ls -l /dev/i2c*
    находит /dev/i2c-1

    i2cdetect -y 1
    0 1 2 3 4 5 6 7 8 9 a b c d e f
    00: -- -- -- -- -- -- -- -- -- -- -- -- --
    10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    70: -- -- -- -- -- -- -- --

    и тут затык, где оно? :)

    ессествено
    pi@rasp ~ $ i2cdump -y 1 0x77
    No size specified (using byte-data access)
    0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef
    00: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
    10: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
    20: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
    30: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
    40: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
    50: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
    60: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
    70: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
    80: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
    90: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
    a0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
    b0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
    c0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
    d0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
    e0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
    f0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX

    /etc/modprobe.d/raspi-blacklist.conf - этого файла нет
    а в этом sudo nano /etc/modules поставил
    snd-bcm2835
    i2c-bcm2708
    i2c-dev
    и в sudo raspi-config конечно включил

    дальше мозгов хватило только на это

    pi@rasp ~ $ sudo dmesg|grep i2c
    [ 0.000000] Kernel command line: dma.dmachans=0x7f35 bcm2708_fb.fbwidth=656 bcm2708_fb.fbheight=416 bcm2708.boardrev=0x10 bcm2708.serial=0x6b9dd516 smsc95xx.macaddr=B8:27:EB:9D:D5:16 bcm2708_fb.fbswap=1 bcm2708.disk_led_gpio=47 bcm2708.disk_led_active_low=0 sdhci-bcm2708.emmc_clock_freq=250000000 vc_mem.mem_base=0x1ec00000 vc_mem.mem_size=0x20000000 dwc_otg.lpm_enable=0 bcm2708.vc_i2c_override=1 console=ttyAMA0,9600 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait
    [ 18.596584] bcm2708_i2c_init_pinmode(1,2)
    [ 19.794485] bcm2708_i2c_init_pinmode(1,3)
    [ 20.351509] bcm2708_i2c 20804000.i2c: BSC1 Controller at 0x20804000 (irq 79) (baudrate 100000)
    [ 24.794835] i2c /dev entries driver



    pi@rasp /dev $ dmesg |grep bcm
    [ 0.000000] Kernel command line: dma.dmachans=0x7f35 bcm2708_fb.fbwidth=656 b cm2708_fb.fbheight=416 bcm2708.boardrev=0x10 bcm2708.serial=0x6b9dd516 smsc95xx. macaddr=B8:27:EB:9D:D5:16 bcm2708_fb.fbswap=1 bcm2708.disk_led_gpio=47 bcm2708.d isk_led_active_low=0 sdhci-bcm2708.emmc_clock_freq=250000000 vc_mem.mem_base=0x1 ec00000 vc_mem.mem_size=0x20000000 dwc_otg.lpm_enable=0 bcm2708.vc_i2c_override =1 console=ttyAMA0,9600 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevato r=deadline rootwait
    [ 0.201925] bcm2708.uart_clock = 3000000
    [ 0.205558] bcm2708_vcio: mailbox at f200b880
    [ 0.206044] bcm_power: Broadcom power driver
    [ 0.206101] bcm_power_open() -> 0
    [ 0.206131] bcm_power_request(0, 8)
    [ 0.706872] bcm_mailbox_read -> 00000080, 0
    [ 0.706919] bcm_power_request -> 0
    [ 6.759559] bcm2708_dma: DMA manager at f2007000
    [ 7.991760] bcm2708-dmaengine bcm2708-dmaengine: Load BCM2835 DMA engine driv er
    [ 10.165266] dwc_otg bcm2708_usb: DWC OTG Controller
    [ 10.225378] dwc_otg bcm2708_usb: new USB bus registered, assigned bus number 1
    [ 10.313671] dwc_otg bcm2708_usb: irq 32, io mem 0x00000000
    [ 10.770020] usb usb1: SerialNumber: bcm2708_usb
    [ 11.067492] bcm2835-cpufreq: min=700000 max=700000
    [ 13.859699] smsc95xx 1-1.1:1.0 eth0: register 'smsc95xx' at usb-bcm2708_usb-1 .1, smsc95xx USB 2.0 Ethernet, b8:27:eb:9d:d5:16
    [ 16.997806] bcm2708_i2c_init_pinmode(1,2)
    [ 18.117531] bcm2708_i2c_init_pinmode(1,3)
    [ 18.753089] bcm2708_i2c 20804000.i2c: BSC1 Controller at 0x20804000 (irq 79) (baudrate 100000)

    подскажите, если не сложно как мне эту штуку настроить?
    спасибо
     
  2. geher

    geher Гуру

    Успешно подключал по I2C часы. Процедура была примерно такая же. Навскидку ничего определенного не вижу.
    Разве что такой вопрос, систему перед процедурой обновляли?

    И еще, стесняюсь спросить, а какое питание подается на барометр? 3 или 5 В?
    Могу ошибаться, но оно вроде должно питаться от 5 В.

    И еще момент. У меня был один момент, когда I2C "залипла" и перестала опознавать подключенные устройства. Думал даже, что спалил. Но RPi полежал несколько дней отключенным от питания. Потом включил - и чудо, i2c ожила.
     
  3. morozko77

    morozko77 Нуб

    обновлял, а питание 3в.... ибо пишут белым по красному Make sure that you connect the VIN pin on the BMP sensor to 3V3, NOT 5V0! Connecting VIN to the 5V supply will cause the board to use 5V logic, which is perfect for the Arduino, but may damage the sensitive 3.3V inputs on the Raspberry Pi.
     
  4. geher

    geher Гуру

    Я подключал часы с питанием от 5 В.
    Полагался на это http://quick2wire.com/category/raspberry-pi/
    И там пишут, что для I2C 5В устройства подключать можно.
    Хотя, возможно, это не всех устройств касается. С часами сработало.
     
  5. morozko77

    morozko77 Нуб

    дело в rasp 3.18.7 и править надо /boot/config.txt тока пока не получается :)
     
    sergej1501 нравится это.
  6. BAH0

    BAH0 Нуб

    Нашли решение?