Ник:
Пароль:

Контакты

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

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

User Info


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

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

Ник:
Пароль:

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

ОбновитьПодробнееВсегоВсего:5
Форум » starterkit.ru » Embedded Linux
9g45. SPI. Chip select. [решено]
titan83
Добавлено 07.08.2013 13:11 Редактировалось 02.10.2013 14:24
0
Сообщение: 1
titan83
3

Пункты: 3141
Регистрация: 16.12.2012
Здравствуйте.
Сейчас пробую поработать с spi на указанной плате - все почти хорошо - вижу CLK, вижу MOSI, но никак не вижу NCS, ни на spi0, ни на spi1. Ведь spi0_ncs и spi1_ncs - это именно chip select? Или я ошибаюсь? Или все-таки надо chip select самому дергать на время передачи?
Понимаю, что моя недоработка, но не могу сориентироваться.
Спасибо автору этой темы - http://www.starterkit.ru/html/index.php?name=forum&op=view&id=15335.
Спуститься к концу Подняться к началу
Персональная информация
lexx666
Добавлено 07.08.2013 13:54 Сообщение: 2
lexx666
3.83

Пункты: 11780
Регистрация: 28.07.2011
Пол: Мужчина
Из: Барнаул
В ядре смотрите какие чипселекты выделены для spi0, spi1.
устройство spidev с какими номерами создаются ?

какая задача вообще, что подключается к spi ?
Спуститься к концу Подняться к началу
Персональная информация
titan83
Добавлено 07.08.2013 14:02 Сообщение: 3
titan83
3

Пункты: 3141
Регистрация: 16.12.2012
Вот то, что сейчас написано в боард-файле
{ /* spidev 1 */
.modalias = "spidev",
.chip_select = 0,
.controller_data = AT91_PIN_PB2,
.max_speed_hz = 1 * 1000 * 1000,
.bus_num = 0,
},
{ /* spidev 2 */
.modalias = "spidev",
.chip_select = 0,
.controller_data = AT91_PIN_PB16,
.max_speed_hz = 1 * 1000 * 1000,
.bus_num = 1,
},
чипселект пробовал выставлять и в единицу - бесполезно.
устройства создаются spidev0.1 и spidev1.1.
по spi есть желание подключить FRAM (для хранения переменных) и на другой канал собственное устройство на stm32. Оба устройства будут слэйвами.
Спуститься к концу Подняться к началу
Персональная информация
lexx666
Добавлено 08.08.2013 12:12 Сообщение: 4
lexx666
3.83

Пункты: 11780
Регистрация: 28.07.2011
Пол: Мужчина
Из: Барнаул
Где смотрите СS ? На каких ногаХ ? На PB2 и PB16 нету ничего ?
Спуститься к концу Подняться к началу
Персональная информация
lexx666
Добавлено 08.08.2013 12:15 Сообщение: 5
lexx666
3.83

Пункты: 11780
Регистрация: 28.07.2011
Пол: Мужчина
Из: Барнаул
Попробуйте добавить void
.controller_data = (void*) AT91_PIN_PB2
.controller_data = (void*) AT91_PIN_PB16
Спуститься к концу Подняться к началу
Персональная информация
titan83
Добавлено 08.08.2013 13:07 Сообщение: 6
titan83
3

Пункты: 3141
Регистрация: 16.12.2012
Спасибо.
Но, по-моему, вы ошиблись - так же как и автор темы, на которую я ссылался выше. PB2 и PB16 - на эти пины выведен SCK, а не чипселект.
Чипселект выведен на PB3, PB17, об этом же пишут в файле борды, где перечислены пины чипселекта по умолчанию.
Я сейчас как раз убираю эти строки и посмотрю на поведение платы.
Спуститься к концу Подняться к началу
Персональная информация
lexx666
Добавлено 08.08.2013 14:48 Сообщение: 7
lexx666
3.83

Пункты: 11780
Регистрация: 28.07.2011
Пол: Мужчина
Из: Барнаул
CS работает через GPIO, а не аппаратно в атмеловском драйвере, если мне память не изменяет. так что там можно любой пин писать. благоразумно ествественно.

если эти строчки убрать, cs беруться из массива по умолчанию spi0_standart_cs и spi1_standart_cs в sam9g_devices.c
Спуститься к концу Подняться к началу
Персональная информация
titan83
Добавлено 08.08.2013 15:16 Сообщение: 8
titan83
3

Пункты: 3141
Регистрация: 16.12.2012
Все именно так.
Но CS-то самому надо дергать или все-таки это делает драйвер? Я предполагаю, что драйвер, неужели надо будет самому?
Спуститься к концу Подняться к началу
Персональная информация
titan83
Добавлено 09.08.2013 12:50 Сообщение: 9
titan83
3

Пункты: 3141
Регистрация: 16.12.2012
lexx666, спасибо за помощь.
разобрался что к чему - тему можно закрывать.
Спуститься к концу Подняться к началу
Персональная информация
max_s
Добавлено 13.08.2013 01:57 Сообщение: 10
max_s
0

Пункты: 172
Регистрация: 13.08.2013
Цитата
lexx666, спасибо за помощь.
разобрался что к чему - тему можно закрывать.


Доброго дня,
заменил PB2 и PB16 пины на PB3 и PB17 в
/linux-3.2.18/arch/arm/mach-at91/board-sam9m10g45ek.c

пересобрал ядро\модули

подскажите, пожалуйста, какие модули нужно подменть чтобы CS заработал?
нужно ли подменять ядро?

За ранее спасибо.
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Embedded Linux