Ник:
Пароль:

Контакты

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

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

Ник:
Пароль:

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

ОбновитьПодробнееВсегоВсего:6
Форум » starterkit.ru » Отладочные платы » SK-iMX53
Вопрос по spidev
alfi
Добавлено 07.11.2012 12:25
0
Сообщение: 1
alfi
0

Пункты: 245
Регистрация: 30.10.2012
Добрый день,

Есть такой вопрос по работе с spidev:
Добавил в файл mx53_loco.c следующую структуру
{
.modalias = "spidev",
.max_speed_hz = 1000 * 1000,
.bus_num = 0,
.chip_select = 0,
.platform_data = NULL,
.mode = SPI_MODE_1,
},
В итоге в /dev появилось устройство spidev0.0. Но при обращении к данному устройству данные выдаются на пины, которые заданы для spi0_gpio, а не на те, которые соответствуют CSPI0 у процессора.
Это так и должно быть или здесь есть какая-то ошибка?

И по самим передаваемым данным есть тоже проблема: клок сигнал есть, а вот сигнала с данными почему-то нету.
Не подскажете возможную причину?
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 07.11.2012 12:38 Сообщение: 2
sasamy
4.70

Пункты: 77331
Регистрация: 14.08.2009
Аппаратный SPI вообще не инициализируется, если нужен - можно добавить по аналогии из board-файла от любой референсной платы на imx53.
Спуститься к концу Подняться к началу
Персональная информация
alfi
Добавлено 07.11.2012 13:03 Сообщение: 3
alfi
0

Пункты: 245
Регистрация: 30.10.2012
По большому счету мне без разницы через чего выводится.
Непонятно тогда почему через spi_gpio клок сигнал есть, а данных нет? Я то как раз думал, что дело именно в spi_gpio.
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 07.11.2012 13:18 Редактировалось 07.11.2012 13:20 Сообщение: 4
sasamy
4.70

Пункты: 77331
Регистрация: 14.08.2009
Цитата

Я то как раз думал, что дело именно в spi_gpio.


чего тут думать - ads7846 (контроллер тачскрина) подключен и прекрасно работает на програмном SPI.
Спуститься к концу Подняться к началу
Персональная информация
Korellon
Добавлено 21.04.2014 13:31 Сообщение: 5
Korellon
0

Пункты: 527
Регистрация: 26.11.2012
Здраствуйте!
Еще один вопрос по spidev:
Установил в конфиге
CONFIG_SPI=y
CONFIG_SPI_MASTER=y
CONFIG_SPI_SPIDEV=y

также как и alfi добавил в mx53_loco.c следующую структуру
{
.modalias = "spidev",
.max_speed_hz = 1000 * 1000,
.bus_num = 0,
.chip_select = 0,
.platform_data = NULL,
.mode = SPI_MODE_1,
},
и проассоциировал пины
//SPI
MX53_PAD_DISP0_DAT23__ECSPI1_SS0,
MX53_PAD_CSI0_DAT4__ECSPI1_SCLK,
MX53_PAD_EIM_D17__ECSPI1_MISO,
MX53_PAD_EIM_D18__ECSPI1_MOSI,

//SPI2
MX53_PAD_DISP0_DAT18__ECSPI2_SS0,
MX53_PAD_CSI0_DAT8__ECSPI2_SCLK,
MX53_PAD_CSI0_DAT9__ECSPI2_MOSI,
MX53_PAD_CSI0_DAT10__ECSPI2_MISO,

Но в итоге в /dev устройство spidev не появляется. Через spi_gpio проверил, клок сигнал есть, все отлично работает. Подумал, что проблема в конфликте с тачскрином - убрал все упоминания о нём из mx53_loco.c, кроме структуры и строки
spi_register_board_info(mxc_ts_device, ARRAY_SIZE(mxc_ts_device));
Но это тоже не помогло. Подскажите, пожалуйста, в чем может быть проблема?
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 21.04.2014 14:09 Редактировалось 21.04.2014 14:10 Сообщение: 6
sasamy
4.70

Пункты: 77331
Регистрация: 14.08.2009
Цитата

проассоциировал пины


Этого не достаточно - надо прописать аппаратные spi по аналогии например с mx53_evk.c

* workaround for ecspi chipselect pin may not keep correct level when idle */
static void mx53_evk_gpio_spi_chipselect_active(int cspi_mode, int status,
int chipselect)
...
static void mx53_evk_gpio_spi_chipselect_inactive(int cspi_mode, int status,
int chipselect)
...
static struct mxc_spi_master mxcspi1_data = {
.maxchipselect = 4,
.spi_version = 23,
.chipselect_active = mx53_evk_gpio_spi_chipselect_active,
.chipselect_inactive = mx53_evk_gpio_spi_chipselect_inactive,
};
.....

static void __init mxc_board_init(void)
{
....
mxc_register_device(&mxcspi1_device, &mxcspi1_data);

правда я например не очень понял что там за индийские танцы с бубном вокруг активации/деактивации чипселектов
Спуститься к концу Подняться к началу
Персональная информация
Korellon
Добавлено 24.04.2014 11:07 Сообщение: 7
Korellon
0

Пункты: 527
Регистрация: 26.11.2012
Большое спасибо. Сегодня наконец-то добрался до платы:
Cделал как вы сказали по аналогии с mx53_evk.c, spidev появился, но только после включения
#CONFIG_SPI_MXC = y

но клок сигнала на выводах нету, и появился только spidev1.0. Буду дальше смотреть.

По чипселектам точно индийские танцы, по крайней мере в mx53_ard.c обходятся без них.
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Отладочные платы » SK-iMX53