|
mcp2510 через SPI к at91sam9260 |
|
|
|
Sep 7 2012, 14:38
|
Группа: Участник
Сообщений: 14
Регистрация: 7-09-12
Пользователь №: 73 436

|
Помогите, пожалуйста, разобраться с драйвером. Есть самодельная плата на at91sam9260 к которой по SPI подключен mcp2510. Разводка:  В файле борды прописано: Код static struct mcp251x_platform_data mcp251x_info = { .oscillator_frequency = 8000000, // .board_specific_setup = &mcp251x_setup, .model = CAN_MCP251X_MCP2510, // .power_enable = mcp251x_power_enable, // .transceiver_enable = NULL, };
/* * SPI devices. */ static struct spi_board_info ek_spi_devices[] = {
{ /* CAN */ .modalias = "mcp251x", .platform_data = &mcp251x_info, .chip_select = 0, .max_speed_hz = 2 * 1000 * 1000, .bus_num = 1, .irq = AT91_PIN_PC15, }, }; Dmesg выдаёт: Код atmel_spi atmel_spi.1: Atmel SPI Controller at 0xfffcc000 (irq 13) mcp251x spi1.0: probed Но в /dev can0 устройство не появляется.
|
|
|
|
|
Sep 7 2012, 14:41
|

Профессионал
    
Группа: Свой
Сообщений: 1 202
Регистрация: 9-01-05
Из: Санкт-Петербург
Пользователь №: 1 861

|
Его там и не будет. Код root@crux:~# ifconfig -a can0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-0 NOARP MTU:16 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:10 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) И Код root@crux:~# ls /sys/class/net/ can0 eth0 lo
--------------------
Если сверху смотреть, то сбоку кажется, что снизу ничего не видно.
|
|
|
|
|
Sep 7 2012, 15:25
|
Группа: Участник
Сообщений: 14
Регистрация: 7-09-12
Пользователь №: 73 436

|
Да, недосмотрел я. Появилась в ifconfig-е, но не поднимается: Код [root@(none) ~]# ifconfig can0 up mcp251x spi1.0: bit-timing not yet defined mcp251x spi1.0: unable to set initial baudrate! ifconfig: SIOCSIFFLAGS: Invalid argument
|
|
|
|
|
Sep 8 2012, 14:38
|
Группа: Участник
Сообщений: 14
Регистрация: 7-09-12
Пользователь №: 73 436

|
Цитата(sasamy @ Sep 7 2012, 21:56)  Использую последний buildroot c iproute2 из комплекта. Не проходит Код # ip link set can0 type can bitrate 1000000 mcp251x spi1.0: bit-timing calculation not available RTNETLINK answers: Invalid argument Может быть такое, что я неправильно переобозначил ноги RX и TX в arch/arm/mach-at91/at91sam9260_devices.c И я несколько не понял, что делать с ногой CAN_RES
|
|
|
|
|
Sep 8 2012, 16:41
|
Знающий
   
Группа: Участник
Сообщений: 783
Регистрация: 22-11-08
Пользователь №: 41 858

|
Цитата(Letum @ Sep 8 2012, 18:38)  mcp251x spi1.0: bit-timing calculation not available включите в ядре [*] CAN bit-timing calculation
|
|
|
|
|
Sep 8 2012, 17:39
|
Группа: Участник
Сообщений: 14
Регистрация: 7-09-12
Пользователь №: 73 436

|
Вы не поверите, ставлю Bit-timing calculation и: Код uncompression error
-- System haltedRomBOOT
|
|
|
|
|
Sep 8 2012, 18:43
|
Группа: Участник
Сообщений: 14
Регистрация: 7-09-12
Пользователь №: 73 436

|
Предыдущее поправил, теперь грузится, но: Код ip link set can0 type can bitrate 1000000 mcp251x spi1.0: bitrate error 33.3% too high RTNETLINK answers: Numerical argument out of domain [root@(none) ~]# ifconfig can0 up mcp251x spi1.0: bit-timing not yet defined mcp251x spi1.0: unable to set initial baudrate! ifconfig: SIOCSIFFLAGS: Invalid argument Если указать частоту меньше, то: Код [root@(none) ~]# ip link set can0 type can bitrate 500000 [root@(none) ~]# ifconfig can0 up setting trigger mode 2 for irq 111 failed (gpio_irq_type+0x0/0x18) mcp251x spi1.0: failed to acquire irq 111 ifconfig: SIOCSIFFLAGS: Invalid argument
|
|
|
|
|
Sep 10 2012, 08:40
|
Группа: Участник
Сообщений: 14
Регистрация: 7-09-12
Пользователь №: 73 436

|
Не проходит.
|
|
|
|
|
Sep 10 2012, 11:31
|

Профессионал
    
Группа: Свой
Сообщений: 1 202
Регистрация: 9-01-05
Из: Санкт-Петербург
Пользователь №: 1 861

|
Что значит не проходит? Ошибки при компиляции? Или все та же? Цитата(Letum @ Sep 7 2012, 18:38)  Код .irq = AT91_PIN_PC15, К тому же, Вы указываете номер пина, а не IRQ. Используйте gpio_to_irq().
--------------------
Если сверху смотреть, то сбоку кажется, что снизу ничего не видно.
|
|
|
|
|
Sep 11 2012, 09:34
|
Группа: Участник
Сообщений: 14
Регистрация: 7-09-12
Пользователь №: 73 436

|
Раньше всё собиралось, но так же ругалось при попытке поднятия интерфейса can0 При замене .irq = AT91_PIN_PC15 на .irq = gpio_to_irq(AT91_PIN_PC15) ругается компилятор Код arch/arm/mach-at91/board-sam9260ek.c:153:3: ошибка: элемент инициализатора не является константой Что я забыл? Насколько я понял, надо перевести PIN в GPIO, но как?
|
|
|
|
|
Sep 12 2012, 07:25
|
Группа: Участник
Сообщений: 14
Регистрация: 7-09-12
Пользователь №: 73 436

|
Поправлю, попробую. В других AT91 платах данная функция, к сожалению, не используется.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|