Я новичок в Beaglebone и двигался с довольно хорошим щелчком, пока эта странная проблема не выскочила. Я провел все выходные, пытаясь понять это, прежде чем отправлять здесь.Чтение аналогового входа в BeagleBone, предотвращение ошибки «segmentation fault»
Я пытаюсь прочитать аналоговый вход с использованием нескольких датчиков от beaglebone с Angstrom 3.2.5+, и у меня есть проблема, которая, я думаю, может быть проблемой аппаратного обеспечения.
Используя этот Python script и Alexander Hiam's PyBBIO я смог протестировать фоторезистор с успехом (значение реагирует на более и менее случайный свет):
# Import PyBBIO library:
from bbio import *
# Create a setup function:
def setup(): pass # Nothing to do here
# Create a main function:
def loop():
print "-----"
print "AIN0 [P9.39] - " + str(analogRead(A0))
print "AIN1 [P9.40] - " + str(analogRead(A1))
print "AIN2 [P9.37] - " + str(analogRead(A2))
print "AIN3 [P9.38] - " + str(analogRead(A3))
print "AIN4 [P9.35] - " + str(analogRead(A4))
print "AIN5 [P9.36] - " + str(analogRead(A5))
print "AIN6 [P9.33] - " + str(analogRead(A6))
print "AIN7 [P9.39] - " + str(analogRead(A7))
delay(500)
# Start the loop:
run(setup, loop)
Но, любой другой аналог в (AINx (2- 7)) Я прочитал со сценарием выше, всегда показывает то же значение фоторезистора, который я подключил, в AIN1
И, возможно, связанный, я не могу прочитать ни один из AINx (1-7), используя cat с a)
cat /sys/bus/platform/devices/tsc/ain1
Segmentation fault
Любые идеи? Я действительно застрял. Заранее спасибо.
PS: Подробнее ...
Моя схема состоит из 10k резистор и фоторезистора. Мои контактные соединения:
- Заголовок Р9 Вывод 32 (VDD_ADC (1.8V)) к одному концу фотоэлемента
- Заголовок Р9 Контакт 34 (GNDA_ADC) к другому концу резистора
- Заголовок Р9 Pin 39 (AIN0) на другую сторону фотоэлемента вместе с одним концом понижающего резистора
Вот изображение, которое соответствует своему собственному контуру:
Результаты всех AINx (1-7) 'ы, а затем некоторые ...
# cat /sys/bus/platform/devices/tsc/ain0
cat: /sys/bus/platform/devices/tsc/ain0: No such file or directory
# cat /sys/bus/platform/devices/tsc/ain1
Segmentation fault
# cat /sys/bus/platform/devices/tsc/ain2
Segmentation fault
# cat /sys/bus/platform/devices/tsc/ain3
Segmentation fault
# cat /sys/bus/platform/devices/tsc/ain4
Segmentation fault
# cat /sys/bus/platform/devices/tsc/ain5
Segmentation fault
# cat /sys/bus/platform/devices/tsc/ain6
Segmentation fault
# cat /sys/bus/platform/devices/tsc/ain7
Segmentation fault
# cat /sys/bus/platform/devices/tsc/ain8
Segmentation fault
# cat /sys/bus/platform/devices/tsc/ain9
cat: /sys/bus/platform/devices/tsc/ain9: No such file or directory
UPDATE 1
Я отредактировал файл analog_test_simple.py показать все порты ADC на BeagleBone. Это результат оболочки с подключенными датчиками no.
-----
AIN0 [P9.39] - 3948
AIN1 [P9.40] - 4016
AIN2 [P9.37] - 4002
AIN3 [P9.38] - 3934
AIN4 [P9.35] - 4001
AIN5 [P9.36] - 3935
AIN6 [P9.33] - 3968
AIN7 [P9.39] - 4005
-----
AIN0 [P9.39] - 3946
AIN1 [P9.40] - 4005
AIN2 [P9.37] - 3945
AIN3 [P9.38] - 3957
AIN4 [P9.35] - 4018
AIN5 [P9.36] - 3945
AIN6 [P9.33] - 3967
AIN7 [P9.39] - 3955
...
И если я подключить датчик обратно я получаю изменение стоимости, но опять же, они все равно:
-----
AIN0 [P9.39] - 2836
AIN1 [P9.40] - 2836
AIN2 [P9.37] - 2837
AIN3 [P9.38] - 2831
AIN4 [P9.35] - 2840
AIN5 [P9.36] - 2837
AIN6 [P9.33] - 2837
AIN7 [P9.39] - 2837
-----
AIN0 [P9.39] - 2834
AIN1 [P9.40] - 2834
AIN2 [P9.37] - 2829
AIN3 [P9.38] - 2825
AIN4 [P9.35] - 2826
AIN5 [P9.36] - 2817
AIN6 [P9.33] - 2815
AIN7 [P9.39] - 2815
...
Вы получите лучшие ответы от [electronics.SE] (http://electronics.stackexchange.com/) –
Есть ли необходимая функция для инициализации/настройки АЦП - рассказать, сколько каналов использовать и какие диапазоны? Вы также можете попробовать короткий (0,1 с?) Спать между чтениями, чтобы дать ADC время swithc на новый вход и установить –