Ник:
Пароль:

Контакты

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

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

Ник:
Пароль:

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

ОбновитьПодробнееВсегоВсего:4
Форум » starterkit.ru » Embedded Linux
spidev_test.c
Jury093
Добавлено 24.08.2010 21:54 Редактировалось 24.08.2010 21:55 Сообщение: 31
Jury093
4.5

Пункты: 54233
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Цитата
Проверили - MISO\MOSI управляются, SPCK постоянно в нуле. Видимо все-таки пожгли.

что-то больно быстро АРМ сдался :(
а где смотрели - на гребенке или на пинах? может R81 сгорел/оборвался.. хотя токи там не очень большие

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

вот с этим лучше к Саше (sasamy) - я с адаптациями (в разрезе МНУКа) не очень..

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

возможно есть и в более старых версиях - это надо смотреть в сорцах ядрах

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

ничего полезного ответить не могу - не было такой нужды на 9260..

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

не, думаю макс на такую роль не подойдет.
я, для развязки чипов 3в и 5в ставил 74lvc245, схему включения брал с сайта создателя Yampp mp3 player
http://www.myplace.nu/mp3/
из схемы третьей версии

Мегу надо было на 3.3 запитывать - все были бы живы :(

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

Пункты: 21
Регистрация: 05.12.2009
Пол: Мужчина
Из: Рыбинск
Цитата
что-то больно быстро АРМ сдался :(
а где смотрели - на гребенке или на пинах? может R81 сгорел/оборвался.. хотя токи там не очень большие
На пинах, попробую на гребенке завтра, но надежда мала. :)

Цитата
не, думаю макс на такую роль не подойдет.
я, для развязки чипов 3в и 5в ставил 74lvc245, схему включения брал с сайта создателя Yampp mp3 player
http://www.myplace.nu/mp3/
из схемы третьей версии
Понял, спасибо.
Вот тут еще не плохая статья по 3.3 в 5 конверторам, может пригодиться кому-то потом.
Спуститься к концу Подняться к началу
Персональная информация
Didro
Добавлено 25.08.2010 09:19 Редактировалось 25.08.2010 09:20 Сообщение: 33
Didro
0

Пункты: 21
Регистрация: 05.12.2009
Пол: Мужчина
Из: Рыбинск
Цитата
может R81 сгорел/оборвался.. хотя токи там не очень большие

вы правы - R81 отсутствует :)
Попробуем восстановить - правда тогда если все 3 пина spi будут успешно управляться - не понятно, почему при выполнении
Код
echo 1>/dev/spidev1.0

мы не видели ранее на SPCK\MOSI сигналов - в том числе тогда, когда AVR уже был отключен и был подключен только осциллограф. Как я понимаю, есть вероятность, что спален сам SPI-контроллер, а пины продолжают дергаться ?
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 25.08.2010 18:03 Редактировалось 25.08.2010 18:06 Сообщение: 34
Jury093
4.5

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

странно, а у меня этот резистор стоит. впрочем, если на пине нет сигнала, то резистор (его наличие/исправность) влияет исключительно на прохождение сигнала на внешнюю гребенку
из области невероятного - там еще кондей стоит на 120пФ по схеме - может он коротит на землю..

Цитата
Попробуем восстановить - правда тогда если все 3 пина spi будут успешно управляться - не понятно, почему при выполнении
echo 1>/dev/spidev1.0
мы не видели ранее на SPCK\MOSI сигналов - в том числе тогда, когда AVR уже был отключен и был подключен только осциллограф. Как я понимаю, есть вероятность, что спален сам SPI-контроллер, а пины продолжают дергаться ?

давайте сначала с физикой разберитесь, потом будем мучить драйвер
осциллограмму я показывал - должно работать :)

зы быстрое редактирование в IE работает :)

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

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

у меня тоже стоит - точнее стоял... контактные площадки есть, а резистора нет.

посмотрел сейчас осциллографом еще раз сигнал на MOSI - есть сигнал - жив SPI. Резистор поставим и дальше в бой!

всем спасибо за помощь!
Спуститься к концу Подняться к началу
Персональная информация
Lavin
Добавлено 26.08.2010 19:38 Редактировалось 26.08.2010 22:47 Сообщение: 36
Lavin
2.4

Пункты: 1267
Регистрация: 22.05.2009
Пол: Мужчина
Из: Москва
Доброе время суток.Решил я разобраться с spidev.Все собралось нормально.cat выводит файлы по спи,все видно.Вопрос как в программе передавать большие объемы данных с синхронизацией.Т.е. жать пока передача прекратиься.Посмотрел что народ делае через iocontrol но у меня с ошибкой вылетает.Вот кусок кода
Код

int SPI_SEND(unsigned char *tx,unsigned int size)
{
unsigned char *rx;
int ret;
struct spi_ioc_transfer tr;
rx=malloc(size);
if (rx==NULL)
{
printf("malloc in SPI_SEND fail\n");
return 1;
}
printf("malloc in SPI_SEND well\n");
tr.tx_buf=(__u64)&tx;
tr.rx_buf=(__u64)℞
tr.len=(__u32)size;
tr.delay_usecs=0;
tr.speed_hz=10*1000*1000;
tr.bits_per_word=8;
ret = ioctl(f, SPI_IOC_MESSAGE(1), &tr);
if (ret<1)
{
printf("spi send fail %i\n",ret);
return 1;
free(rx);
}
printf("spi send done\n");
free(rx);
return 0;
}

Все работает кроме этого куска кода,если надо выложу все.Читать не нужно нужно только передавать с синхронизацией.

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