can-test: Read mode
ID, hex Length Data, hex
5. Запускаю поток данных с компьютера.can-test: Receive packets: 0, errors: 0
# /usr/can-test -e 0x00 -l 8 -d 123456789abcdef
can-test: ext. id, hex: 0
can-test: length: 8
can-test: data, hex: 01 23 45 67 89 AB CD EF
...........wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww[ 2939.000000] NETDEV WATCHDOG: can0: transmit timed out.wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww[ 2949.000000] NETDEV WATCHDOG: can0: transmit timed out.wwwwwwwwwwwwwwwwwwwwwwwwwww
can-test: Send packets (-1): 13, errors: 0
Никаких изменений на линиях нет.# /usr/can-test
can-test: Read mode
ID, hex Length Data, hex
[ 2969.000000] NETDEV WATCHDOG: can0: transmit timed out
+ 0 8 EF CD AB 89 67 45 23 01
[ 2979.000000] NETDEV WATCHDOG: can0: transmit timed out
+ 0 8 EF CD AB 89 67 45 23 01
[ 2989.000000] NETDEV WATCHDOG: can0: transmit timed out
+ 0 8 EF CD AB 89 67 45 23 01
...Адаптер | Сириус |
X1 PIN1 (SCK) | J4 PIN32 (SSP_CLK) |
X1 PIN2 (+3,3B) | J12 PIN6 (+3,3B) |
X1 PIN3 (нет) | - |
X1 PIN4 (GND) | J4 PIN6 (GND) |
X1 PIN5 (SO) | J12 PIN31 (SSP_RXD) |
X1 PIN6 (GND) | J4 PIN6 (GND) |
X1 PIN7 (SI) | J12 PIN32 (SSP_TXD) |
X1 PIN8 (GND) | J4 PIN6 (GND) |
X1 PIN9 (INT) | J6 PIN10 (GPIO105) |
X1 PIN10 (CS) | J6 PIN14 (GPIO108) |
ВКЛ | ЗАГРУЗКА | ifconfig can0 down | echo 0 > /sys/class/can/can0/listen_only | ifconfig can0 up | /usr/can-test | /usr/can-test -e 0x00 -l 8 -d 123456789abcdef | |
CS (R7) | 0 | 0...0-1...1-0-1...1 | 1...1-0-1...1 или 1 | 1 | 1...1-0-1...1 | 1 | *** |
SO (R8) | 0 | 0...0 | 0 | 0 | 0 | 0 | 0 |
SI (R9) | 0 | 0...0 | 0 | 0 | 0 | 0 | 0 |
SCK (R10) | 0 | 1...1 | 1 | 1 | 1 | 1 | 1 |
INT (R11) | 1 | 1...1-0...0 | 0 | 0 | 1 | 1 | 1 |
Но было выяснено, что следующая последовательность действий:
1. Запуск потока данных с компьютера.
2. # /usr/can-test
3. С параллельного терминала на тион, без выхода из программы can-test:
3.1. # ifconfig can0 down
3.2. # echo 0 > /sys/class/can/can0/listen_only
3.3. # ifconfig can0 up
Приводит к успешному получению и передаче данных.
1. Запуск потока данных с компьютера. | 1. Данные отправляются с ошибками write timeout (есть сигнал на линиях CAN_H и CAN_L). |
2. # /usr/can-test | 2. Данные отправляются с ошибками write timeout. Данные не приходят. |
3. С параллельного терминала на тион, без выхода из программы can-test: | 3. - |
3.1. # ifconfig can0 down | 3.1. - |
3.2. # echo 0 > /sys/class/can/can0/listen_only | 3.2. - |
3.3. # ifconfig can0 up | 3.3. Данные отправляются и получаются без ошибок. |
1. Запуск потока данных с компьютера. | 1. Данные отправляются с ошибками write timeout (есть сигнал на линиях) |
2. # ifconfig can0 down | 2. - |
3. # echo 0 > /sys/class/can/can0/listen_only | 3. - |
4. # ifconfig can0 up | 4. - |
5. # /usr/can-test | 5. Данные получаются без ошибок (сработало 3 раза из 10). Теперь уже данные стабильно не приходят. |
1. Запуск потока данных с компьютера. | 1. Данные отправляются с ошибками write timeout (есть сигнал на линиях). |
2. # ifconfig can0 down | 2. - |
3. # echo 0 > /sys/class/can/can0/listen_only | 3. - |
4. # ifconfig can0 up | 4. - |
5. # ifconfig can0 down | 5. - |
6. # ifconfig can0 up | 6. Данные отправляются без ошибок. |
7. # /usr/can-test | 7. Данные отправляются и получаются без ошибок. Работает стабильно. |
1. # ifconfig can0 down | 1. - |
2. # echo 0 > /sys/class/can/can0/listen_only | 2. - |
3. # ifconfig can0 up | 3. - |
4. Запуск потока данных с компьютера. | 4. Данные отправляются с ошибками write timeout (есть сигнал на линиях). |
5. # /usr/can-test | 5. Данные отправляются с ошибками write timeout. Данные не приходят. |
6. CTRL + C (остановка can-test) | 6. - |
7. # ifconfig can0 down | 7. - |
8. # ifconfig can0 up | 8. Данные отправляются без ошибок (ВНИМАНИЕ: при выключенной программе can-test). |
9. # /usr/can-test | 9. Данные получаются без ошибок. |
1. Запуск потока данных с компьютера. | 1. Данные отправляются с ошибками write timeout (есть сигнал на линиях). |
2. # ifconfig can0 down | 2. - |
3. # ifconfig can0 up | 3. - |
(4. # ifconfig can0 down) | (4. -) | - ничего не меняют |
(5. # ifconfig can0 up) | (5. -) | |
6. # ifconfig can0 down | 6. - |
7. # echo 0 > /sys/class/can/can0/listen_only | 7. - |
8. # ifconfig can0 up | 8. Данные отправляются без ошибок (ВНИМАНИЕ: при выключенной программе can-test). |
9. # /usr/can-test | 9. Данные отправляются и получаются без ошибок. |
1. Старт сеанса связи на компьютере. | 1. - //Уровни на тионе: CS=1, S0=0, SI=0, SCK=1, INT=1. Команда: cat /sys/class/can/can0/listen_only Ответ: 1. |
2. # ifconfig can0 down | 2. - |
3. # echo 0 > /sys/class/can/can0/listen_only | 3. - //Команда: cat /sys/class/can/can0/listen_only Ответ: 0. |
4. # ifconfig can0 up | 4. - |
(5. # ifconfig can0 down) | (5. -) | - ничего не меняют |
(6. # ifconfig can0 up) | (6. -) | |
7. # /usr/can-test -e 0x00 -l 8 -d 123456789abcdef | 7. Ошибки передачи данных на тионе (write timeout). Прием данных не осуществляется, сигнал на линиях CAN_H и CAN_L отсутствует, есть только постоянное напряжение. Следующие линии имеют постоянный уровень: CS=1, S0=0, SI=0, SCK=1, INT=1. |
8. CTRL + C (остановка can-test) | 8. - |
9. Запуск потока данных с компьютера. | 9. Данные отправляются с ошибками write timeout (есть сигнал на линиях CAN_H и CAN_L). |
10. # /usr/can-test | 10. Данные отправляются с ошибками write timeout (есть сигнал на линиях CAN_H и CAN_L). Данные не приходят. Вместо них (вероятно, из какого-то буфера читается свои же посылки - 123456789abcdef) |
11. С параллельного терминала на тион, без выхода из программы can-test: | 11. - |
12.1. # ifconfig can0 down | 12.1. - |
12.2. # echo 0 > /sys/class/can/can0/listen_only | 12.2. - |
12.3. # ifconfig can0 up | 12.3. - |
1. Старт сеанса связи на компьютере. | 1. - //Уровни на тионе: CS=1, S0=0, SI=0, SCK=1, INT=0. Команда: cat /sys/class/can/can0/listen_only Ответ: 1. |
2. # ifconfig can0 down | 2. - |
3. # echo 0 > /sys/class/can/can0/listen_only | 3. - //Команда: cat /sys/class/can/can0/listen_only Ответ: 0. |
4. # ifconfig can0 up | 4. - //Уровни на тионе: CS=1, S0=0, SI=0, SCK=1, INT=1. |
(5. # ifconfig can0 down) | (5. -) | - ничего не меняют |
(6. # ifconfig can0 up) | (6. -) | |
7. # /usr/can-test -e 0x00 -l 8 -d 123456789abcdef | 7. Ошибки передачи данных на тионе (write timeout). Прием данных не осуществляется, сигнал на линиях CAN_H и CAN_L отсутствует, есть только постоянное напряжение. Следующие линии имеют постоянный уровень: CS=1, S0=0, SI=0, SCK=1, INT=1, TXCAN=1, RXCAN=1. |
8. CTRL + C (остановка can-test) | 8. - |
9. Запуск потока данных с компьютера. | 9. Данные отправляются с ошибками write timeout (есть сигнал на линиях CAN_H и CAN_L). |
10. # ifconfig can0 down | 10. - |
11. # ifconfig can0 up | 11. Данные отправляются без ошибок. В этот момент компьютер ловит одну посылку с тиона. |
12. # /usr/can-test | 12. Данные отправляются и получаются без ошибок. |
13. CTRL + C (остановка can-test) | 13. - |
14. # /usr/can-test -e 0x00 -l 8 -d 123456789abcdef | 14. Данные с тиона отправляются и получаются без ошибок. |