ЗАО «ЗЭО»

Пожалуйста, войдите или зарегистрируйтесь.

Расширенный поиск  

Новости:

Автор Тема: Тион-Про2 SPI+Ethernet  (Прочитано 3921 раз)

0 Пользователей и 1 Гость просматривают эту тему.

benvaflick

  • Newbie
  • *
  • Оффлайн Оффлайн
  • Сообщений: 2
Тион-Про2 SPI+Ethernet
« : 20 Май, 2015, 17:05:21 »

Добрый день!
Я являюсь обладателем Тиона-Про2 rev.3 с Linux 2.6.20 на борту. Знакомлюсь с ним и unix-подобными системами, в частности, пока только пятый день, поэтому достиг немного:
установил Ubuntu на виртуальной машине, компилятор gcc-4.3.4 с вашего сайта на эту Ubuntu поставил, сделал "Hello-world" на одноплатнике, отправил байтики микроконтроллеру через COM'ы c CMOS-уровнем и ПК через разъем X6, подправил /etc/inittab, чтобы по умолчанию выводился на монитор shell, а не gui, настроил сеть, подрубил кнопку и через /dev/mem поморгал светодиодами.
Сейчас задача состоит в том, чтобы сделать парсер, который будет принимать команду через ethernet и перенаправлять по SPI микроконтроллеру, которому эта команда предназначается. Очевидно, что одноплатник здесь избыточен, но он брался для других целей, заодно с которыми он должен был общаться с микроконтроллерами.
На данном этапе меня интересует, есть ли какие-то драйвера или примеры, чтобы обойтись без mem'а для работы с GPIO (в примерах к распберри и подобным, я видел, как создают файлы для работы с пинами в /sys/class/gpio/..) и следовательно, как воспользоваться услугами SSP и Ethernet?
« Последнее редактирование: 22 Май, 2015, 11:02:22 от benvaflick »
Записан

miks

  • Newbie
  • *
  • Оффлайн Оффлайн
  • Сообщений: 31
Re: Тион-Про2 SPI+Ethernet
« Ответ #1 : 22 Май, 2015, 16:46:16 »

Насколько я понимаю вы хотите работать на этом этапе на уровне написания скриптов, которые буду вызывать утилиты(которые в свою очередь работают с драйверами железки напрямую)
По Ethernet могу посоветовать собрать в rootfs и поиграться с netcat(nc)
Записан

benvaflick

  • Newbie
  • *
  • Оффлайн Оффлайн
  • Сообщений: 2
Re: Тион-Про2 SPI+Ethernet
« Ответ #2 : 25 Май, 2015, 08:50:45 »

Ну пока что да, так и планировал.
SPI решил через mem делать. Не получилось=)   
  spi = (unsigned int*)(mmap(0,getpagesize(), PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0x808A0000));
  SSPCR0 = (unsigned int*)spi + 0x00;
  SSPCR1 = (unsigned char*)spi + 0x04; 
  SSPDR = (unsigned int*)spi + 0x08;
  SSPSR = (unsigned char*)spi + 0x0C;
  SSPCPSR = (unsigned char*)spi + 0x10;

  *SSPCR1 = 0x10;               //SSP Enable
  *SSPCR0 = 0x0fc7;             //SCR = 0x0f, SPH = 1, SPO = 1, Format - SPI, 8-bit
  *SSPCPSR = 0x04;              //Prescaler = 4
  *SSPCR1 = 0x00;               //SSP Disable
  *SSPCR1 = 0x10;               //SSP Enable
  while(*SSPSR & 0x10 == 0x10); //Busy flag
  *SSPDR = 0xAA;
Но разъем X17 молчит. Как узнать, может SPI чем-то уже занят? Дело в том, что он из ожидания сброса флага занятости не выходит.

Есть такая утилита nc, но у неё из ключей есть только -l, -p, -i, -w.
Upd: Отправил на Тион файл (на Тионе nc -l -p port > file, на хосте nc ip port < file), но это не совсем то, ведь.
Upd2: Сделал сокет сетевой, всё работает, спасибо=) Но с SPI ещё нуждаюсь в помощи.
« Последнее редактирование: 28 Июль, 2015, 15:09:38 от benvaflick »
Записан

Danila

  • Administrator
  • Hero Member
  • *****
  • Оффлайн Оффлайн
  • Сообщений: 703
Re: Тион-Про2 SPI+Ethernet
« Ответ #3 : 26 Май, 2015, 14:18:29 »

Добрый день.
С SPI не работал, поэтому подсказать не могу.
Документацию Linux по работе с spi читали? https://www.kernel.org/doc/Documentation/spi/spi-summary
Записан