Здравствуйте.
Сейчас пробую поработать с 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.
Вот то, что сейчас написано в боард-файле
{ /* 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. Оба устройства будут слэйвами.
Спасибо.
Но, по-моему, вы ошиблись - так же как и автор темы, на которую я ссылался выше. PB2 и PB16 - на эти пины выведен SCK, а не чипселект.
Чипселект выведен на PB3, PB17, об этом же пишут в файле борды, где перечислены пины чипселекта по умолчанию.
Я сейчас как раз убираю эти строки и посмотрю на поведение платы.
CS работает через GPIO, а не аппаратно в атмеловском драйвере, если мне память не изменяет. так что там можно любой пин писать. благоразумно ествественно.
если эти строчки убрать, cs беруться из массива по умолчанию spi0_standart_cs и spi1_standart_cs в sam9g_devices.c