Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru
Партнеры:
otladka.com.ua - г.Киев

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

User Info


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

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

Ник:
Пароль:

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

ОбновитьПодробнееВсегоВсего:5
Форум » starterkit.ru » Embedded Linux
spidev_test.c
Jury093
Добавлено 03.08.2010 14:52 Сообщение: 21
Jury093
4.5

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

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
Novichok
Добавлено 03.08.2010 15:28 Сообщение: 22
Novichok
5

Пункты: 36
Регистрация: 08.07.2010
вот то что вы просили: файл
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 03.08.2010 16:49 Редактировалось 03.08.2010 17:04 Сообщение: 23
Jury093
4.5

Пункты: 54233
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
криминала никакого не вижу..
пожалуй вот тут
Код
{ /* OUR SPI */
.modalias = "spidev",
.chip_select = 0,
.controller_data= AT91_PIN_PB3,
.max_speed_hz = 1 * 1000 * 1000,
.bus_num = 1,
},

убрать строчку .controller_data ибо чипселект выбирается через .chip_select - пробовал добавить и пр.. все равно работает..

для очистки совести в файле at91sam9260_devices в п/п at91_add_device_spi() вбить отладочный вывод типа
Код
if (enable_spi1) {
printk("Enable SPI1 pins and clk\n");
at91_set_A_periph(AT91_PIN_PB0, 0); /* SPI1_MISO */

ну и в логе проверить
Код
CPU: Testing write buffer coherency: ok
devtmpfs: initialized
NET: Registered protocol family 16
Enable SPI1 pins and clk
bio: create slab <bio-0> at 0
SCSI subsystem initialized

всякое бывает..

и на всякий случай (а они разные бывают)
речь идет об этой похожей плате:
title
слева вверху 40 пиновый разъем. сигнал clk я созерцаю
справа-налево 5 пара нижний (ближе к плате) контакт
при загрузке на нем 3.3в, после инициализации 0..

пока мыслей больше нет..

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
Novichok
Добавлено 10.08.2010 09:38 Редактировалось 10.08.2010 09:39 Сообщение: 24
Novichok
5

Пункты: 36
Регистрация: 08.07.2010
Да, это наша плата. Вбил отладочный код. Если его вставлять перед строчками
Код
short enable_spi0 = 1;
short enable_spi1 = 1;

то в логе сообщения не выводит, а если вставить после этого кода, то выводит как и у вас
Код
CPU: Testing write buffer coherency: ok
NET: Registered protocol family 16
Enable SPI1 pins and clk
SCSI subsystem initialized
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 10.08.2010 15:35 Редактировалось 10.08.2010 15:37 Сообщение: 25
Jury093
4.5

Пункты: 54233
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Цитата
Да, это наша плата. Вбил отладочный код.

понятно, попробуйте зайти "с другого угла" - отключите от платы кита свою плату, возьмите в местной wiki пример где управляют пином АРМа
заточите этот пример под свои пины и проконтролируйте осциллом, что электрика живая. если пины не управляются, то возможно вы что-то пожгли, например внешним подключением или кем-нить заняты..
потом можно попробовать изобразить софтовый SPI.
этими нудными действиями вы отсечете неисправность физики соединения и проверите правильность стыковки на уровне SPI

вдогонку - и озвучьте куда на вышеприведенной фотке подключались и каким образом..

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
Novichok
Добавлено 11.08.2010 11:56 Сообщение: 26
Novichok
5

Пункты: 36
Регистрация: 08.07.2010
подключали проводки (MISO, MOSI, SCK) соответственно к пинам PIN_9, PIN_10, PIN_11, а также к GND и 5V на X11. и прощупывали их осциллом.

P.S. сейчас уезжаю, приеду в след. выходные, попробую, то что вы предложили, спасибо.
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 11.08.2010 14:31 Сообщение: 27
Jury093
4.5

Пункты: 54233
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Цитата
5V на X11

!!!! а что за девайсина? надеюсь дальше есть стабилизатор для кормежки на 3.3 вольта или LevelShifter 5<>3. Если нет, то наверно готовьтесь к худшему..

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
Didro
Добавлено 11.08.2010 18:27 Сообщение: 28
Didro
0

Пункты: 21
Регистрация: 05.12.2009
Пол: Мужчина
Из: Рыбинск
Цитата
Цитата
5V на X11

!!!! а что за девайсина? надеюсь дальше есть стабилизатор для кормежки на 3.3 вольта или LevelShifter 5<>3. Если нет, то наверно готовьтесь к худшему..


К Х11 подключен AVR (ATMega8). Запитан AVR от Х11. Преобразователь 5-3.3 не поставлен (по недосмотру). Можно считать, что spi-контроллер в ARM мертв ? Это можно как-то проверить ? Как я понимаю, программно через gpio-драйвер spi-пины дергаться будут в любом случае ?
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 11.08.2010 21:50 Редактировалось 12.08.2010 09:43 Сообщение: 29
Jury093
4.5

Пункты: 54233
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Цитата
К Х11 подключен AVR (ATMega8). Запитан AVR от Х11. Преобразователь 5-3.3 не поставлен (по недосмотру). Можно считать, что spi-контроллер в ARM мертв ? Это можно как-то проверить ? Как я понимаю, программно через gpio-драйвер spi-пины дергаться будут в любом случае ?

хм.. сложно что-то сказать
для начала все же убедитесь что пины уцелели и управляются.
несложной программы из местной Wiki для подрыгать пинами вполне хватит - контролировать или осциллом или резистор+светодиод или тестер..
для реализации SPI-GPIO можно выбрать почти любые подходящие пины и разумеется перевести свое устройство на питание 3.3в или поставить в разрыв SPI любой чип толерантный к 5в. если надо то поищу название.
если нужен аппаратный SPI, то можно подключиться к оставшемуся SPI_0 с оглядкой на свое питание :)

зы "по уму" надо было ставить мегу на 3.3 (да - потеря быстродействия) да и мега к чему-то была еще подключена..
зы2 может все же питание было 3.3? там на разъеме оба есть и 3.3 и 5..

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
Didro
Добавлено 24.08.2010 21:11 Редактировалось 24.08.2010 21:13 Сообщение: 30
Didro
0

Пункты: 21
Регистрация: 05.12.2009
Пол: Мужчина
Из: Рыбинск
Цитата

для начала все же убедитесь что пины уцелели и управляются.
несложной программы из местной Wiki для подрыгать пинами вполне хватит - контролировать или осциллом или резистор+светодиод или тестер..

Проверили - MISO\MOSI управляются, SPCK постоянно в нуле. Видимо все-таки пожгли.

Цитата

для реализации SPI-GPIO можно выбрать почти любые подходящие пины

Смотрю как сделано тут - Эмуляция master-контроллера spi через gpio в linux. Пытаюсь адаптировать код, предложенный для imx, под свой at91.

Правильно ли понимаю, что нужно использовать ядро версии 34 (вот тут об этом сказано) - т.к. в нем реализован gpio_spi.h, который используется в предлагаемом коде.

И второй вопрос - в файлах Linux/arch/arm/mach-at91/*.c аналога массива *devices[]={...} не нашел - можно ли вместо нее регистрировать структуру sk_spi_gpio_device с помощью функции platform_device_register() ?

Есть ли еще какие-то особенности при подымании gpio_spi на at91sam9260 ?

Цитата
поставить в разрыв SPI любой чип толерантный к 5в. если надо то поищу название.


Думаю можно max3222 поставить ?

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