Spi sniffer
Aus LaborWiki
Dieser Wiki Eintrag beschäftigt sich mit einem SPI sniffer. Dieser dient dazu Daten auf dem SPI Bus mitzulesen und per UART an dritte zu Übersetzen (z.B. PC). Bis jetzt nur unidirectional.
[Bearbeiten] Hardware
- Atmel EvaluationsBoard (gibs hier ATMEL Evaluations-Board Version 2.0.1 - Bausatz )
- ein paar Kabel and den SPI Bus löten:
- RS232 <-> USB Konverter:
- RS232 mit USB Konverter geht nicht mit Baudraten größer 115200 Baud, auch mit BAUD-Quarz ist nix zu machen. Außerdem erzeugt der Datenstrom (115kbit/s) eine enorme CPU-Load.
- im USER-Mode muss die BAUD-rate des RS232 mehr als 3x größer sein, wie die Übertragungsfrequenz auf dem SPI-Bus !!!
Es kann beliebige Hardware (mit Atmega) genutzt werden. Das Programm ist klein genug für alle Atmegas.
Update
bessere Version:
teensy
- bis zu 11 Mbit/s über eine virtuelle UART
- viel kleiner wie Atmel Evaluationsboard
- gleiche Kosten wie Atmel Evaluationsboard
- kein TTL->RS232->USB Konverter notwendig
[Bearbeiten] Software
Die Firmware gibs hier aus dem SVN.
Folgende Befehle werden unterstüzt:
| ASCII | Befehl |
|---|---|
| m | msb first |
| l | lsb first |
| o | CPOL=1 high idle |
| p | CPOL=1 low idle |
| h | CPHA=1 fallling edge |
| a | CPHA=0 rising edge |
| + | increase timeout |
| - | decrease timeout |
| s | start/stop |
Mehr Befehle folgen...
- Timestamps werden unterstüzt (sind im momment nicht nutztbar, da UART zu langsam)
[Bearbeiten] TODO
- Master/Slave erkennung
- Packet injection
- bidirektional
- auto MODE detection