Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru

Способы оплаты

User Info


Добро пожаловать,
Guest

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

ПользователейПользователей:4
Поисковых ботовПоисковых ботов:3
ГостейГостей:1

ОбновитьПодробнееВсегоВсего:8
Форум » starterkit.ru » Embedded Linux
9260 + ds1820 (датчик температуры)
Jury093
Добавлено 28.12.2009 15:53 Редактировалось 24.01.2010 23:40
0
Сообщение: 1
Jury093
4.5

Пункты: 54271
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Был закуплен датчик температуры от DalSemi ds1820, трехногий чип. Питание на питание, пин данных на PC0 процессора.
В файле board-sam9260ek.c были добавлены строки:
Код
static struct w1_gpio_platform_data w1_gpio_pdata = {
.pin = AT91_PIN_PC0,
.is_open_drain = 1,
};
static struct platform_device w1_device = {
.name = "w1-gpio",
.id = -1,
.dev.platform_data = &w1_gpio_pdata,
};

в функции ek_board_init(void)
почти в конце добавлено
Код
at91_set_GPIO_periph(w1_gpio_pdata.pin, 1);
at91_set_multi_drive(w1_gpio_pdata.pin, 1);
platform_device_register(&w1_device);

В настройках ядра подключена шина W1 с необходимыми опциями. После пересборки и загрузки:
/ # cat /sys/bus/w1/drivers/w1_slave_driver/10-0008019fa356/w1_slave
2d 00 4b 46 ff ff 02 10 19 : crc=19 YES
2d 00 4b 46 ff ff 02 10 19 t=22625

подержал палец на датчике :)
/ # cat /sys/bus/w1/drivers/w1_slave_driver/10-0008019fa356/w1_slave
39 00 4b 46 ff ff 06 10 63 : crc=63 YES
39 00 4b 46 ff ff 06 10 63 t=28375


Возник вопрос, есть ли софтинка, которая считывает и возвращает результат в удобоваримом виде (на консоль или в файл), или писать свое?
к сожалению, lm-sensors, ksensors не встают (ругаются на busybox). digitemp знать не знает о чтение с пина, только через сом-порт.. варианты?

Update at 20.01.2010 Дописать в файл борды include для хидеров w1
Код
#include <linux/w1-gpio.h>

Update at 24.01.2010 Я описал действия применительно к 2.6.28, там есть понятие w1-gpio. Не забыть поднять в ядре поддержку sysfs

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 28.12.2009 19:54 Редактировалось 28.12.2009 20:23 Сообщение: 2
sasamy
4.71

Пункты: 83542
Регистрация: 14.08.2009
Цитата
digitemp знать не знает о чтение с пина, только через сом-порт.. варианты?


Чем вариант с комом не устраивает ? На плате их вагон и тележка свободных :) Имхо преобразователь делать даже не нада - суй прямо на 3,3 В.

Цитата
к сожалению, lm-sensors, ksensors не встают (ругаются на busybox).


Странно - lmsensors даже в буилдруте есть - дело явно не в busybox. Так что пилите Шура :)
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 28.12.2009 22:59 Редактировалось 28.12.2009 23:00 Сообщение: 3
Jury093
4.5

Пункты: 54271
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Цитата
Чем вариант с комом не устраивает ? На плате их вагон и тележка свободных :) Имхо преобразователь делать даже не нада - суй прямо на 3,3 В.

(почесав в затылке) ну-у в принципе можно и на ком-порт, благо какой-то выведен на внешнюю гребенку, завтра засмотрю сорцы на предмет что софтина хочет от ком-порта.
Цитата
Странно - lmsensors даже в буилдруте есть - дело явно не в busybox. Так что пилите Шура :)

не.. мне что-то билдрут разонравился, очень смахивает на дефективный калейдоскоп, сегодня собирается, завтра не собирается, я летом получил стабильную сборку, но вот возвращаться к ней нет желания
в данный момент на SD и CF поставлен дистрибутив с Emdebian (с тем же busybox-ом).. ох и намаялся с такой конфигурацией. чуть чего надо доставить apt-get радостно грит "щаз буду бизибокс сносить"..
вот на новогодние оттащу домой usb-ide, буду на второй раздел ставить Debian под 9260, на первом уже засетаплен под W90P950 :)
впрочем дома где-то поставлен билдрут, может подниму чисто для теста..

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 28.12.2009 23:22 Сообщение: 4
sasamy
4.71

Пункты: 83542
Регистрация: 14.08.2009
Цитата
не.. мне что-то билдрут разонравился, очень смахивает на дефективный калейдоскоп, сегодня собирается, завтра не собирается

Пользуюсь только релизами и проверенным внешним тулчайном - проблемы на порядок сократились хотя конечно стабильнность сборки там оставляет желать лучшего...
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 28.12.2009 23:38 Редактировалось 28.12.2009 23:40 Сообщение: 5
Jury093
4.5

Пункты: 54271
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
я, обчитавшись местного форума, раза три его успешно ставил на разные компы, пару раз переставлял после неудачных подстроек, терпимо.. но что-то доставить _мне_ было достаточно тяжело или нереально, впрочем я с последней своей установки стырил ядро и с ним вожусь в плане 9260 :)
а от рутфс отказался в пользу Debian..
PS тулчейны пользую или от Павла или есть пара, взятых с инета arm-linux-gcc (3.3.2 и 3.4.1)

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
Alfamayonez
Добавлено 05.01.2010 03:04 Сообщение: 6
Alfamayonez
3.42

Пункты: 3702
Регистрация: 04.10.2009
Пол: Мужчина
Почитал ваш пост Jury093, увидел там что вы данные на PC0 посадили. :)) Что-то у меня в подсознании это PC0 уже сидело :), не выдержал, решил освежить память, глянул ДШ, это же ножка AD0(0-й канал АЦП).
Я просто недавно с горем пополам сделал драйвер АЦП оттуда у меня это PC0 в подсознании было :), может он пригодится? Тут и не надо будет w1 шину в ядре настраивать?
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 05.01.2010 12:28 Сообщение: 7
Jury093
4.5

Пункты: 54271
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
я выбрал PC0 совершенно "от балды", стараясь не задеть жизненно важные пины :)
полагаю, что можно пересадить на любой другой. на данный момент я поставил пиновый коммутатор с перемычкой и выбором между PC0 и DTR0.
в ядре уже есть поддержка W1 и все отлично видится. мой же вопрос был о какой-нить готовой проге, типа digitemp.
кстати, она пока "упрямится" и не желает видеть датчик, думаю что это поправимо :))
ЗЫ в начале 2000-х я сопрягал ds1821 (w1) и мотороловский контроллер на асме, вполне все работало и меряло температуру..

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
Alfamayonez
Добавлено 08.01.2010 05:11 Сообщение: 8
Alfamayonez
3.42

Пункты: 3702
Регистрация: 04.10.2009
Пол: Мужчина
Ну что есть успехи с подключением этого датчика? :)
Я тоже обзавелся таким :), попытаюсь тоже поковыряться с ним.
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 08.01.2010 12:04 Сообщение: 9
Jury093
4.5

Пункты: 54271
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
не-а, ядро его видит отлично через подсистему w1. подключаю его на пин PC0, по логам проходит сообщение о датчике, температуру показывает вышеприведенным способом.

С digitemp пока не поженил. Я же "нагло" цепляю его на DTR0 (~PB24). Т.е. это порт /dev/ttyS1. Надо будет проследить, может пины порта где-нить еще задействованы. Или потащу на работы - там есть осцилл :)

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
Pavel Ivanchenko
Добавлено 08.01.2010 12:27 Сообщение: 10
Pavel Ivanchenko
Admin
4.39

Пункты: 92788
Регистрация: 24.03.2009
Пол: Мужчина
Использование/неиспользование пинов UART-ов задается в инициализации порта через аргументы, достаточно DTR от туда убрать, если он там вообще сейчас фигурирует.
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Embedded Linux