Hallo, kann jemand mir helfen, wie man ein Photoelectric an AVR Mikrocontroller einzuschließen? Ich habe einen Photoelectric Sensor von Fa. IFM Electronic, der als Ausgang SPI LDVS hat. Zum Thema Auswahl des geeigneten Mikrocontrollers habe ich auch noch nicht entschieden, ob ich ein 8 bit oder 16 bit benutzen soll. Die Anforderugen sind folgende : 1. Der uC soll die Daten aus Sensor möglichst schnell holen, die Daten bearbeiten und das Ergebnis weitergeben. 2. Die aus oben genanten Vorgängen sollen innerhalb 200us passieren. 3. Der uC soll möglichst stromsparend sein. 4. Als uC soll ein uC aus Fa. ATMEL sein. Wenn den uC schon festgelegt wird, komm dann die Frage : Wie schließe ich den Sensor mit dem uC ein? Wie sieht die Kommunikation zwischen den uC und den Sensor ? Ich bin ein Neuling in diesem Bereich und hoffe, dass jemand mir helfen kann. Danke. Mfg Aaron
Hallo Aron, gib mal den genauen Typ des Sensors an. Wie lange dauert die Signalübertragung über SPI? "..... und das Ergebnis weitergeben." Wohin und wie? Es sollte wahrscheinlich ein 8Bit Atmel reichen. Axel
Hallo Axel, es handelt sich um Efector 200 von Fa. IFM Electronic. Signalübertragung dauert laut Datenblatt min. 125us. Ich kann auch die Datenblätter von Transmitter und Receiver einscannen und hier aufhängen, falls irgendwas unklar ist. Das Ergebnis soll an Ventile weitergeben. Anhand dieses Ergebnis sollen die Ventile ein,-oder ausschalten. Gruss Aaron
Rufus t. Firefly schrieb:
> Was sind "die Daten"? Wieviele Bytes?
Die Daten sind Word (2 Bytes) von den Lichtschranken. Ein Rahmen hat 6
Word (12 Byte).
Wen kiat teh Teh schrieb: > Hallo Axel, > > es handelt sich um Efector 200 von Fa. IFM Electronic. Signalübertragung > dauert laut Datenblatt min. 125us. Ich kann auch die Datenblätter von > Transmitter und Receiver einscannen und hier aufhängen, falls irgendwas > unklar ist. > > Das Ergebnis soll an Ventile weitergeben. Anhand dieses Ergebnis sollen > die Ventile ein,-oder ausschalten. > > Gruss > Aaron Die Datenblätter habe ich eingescannt.
Hallo Aaron, die 200us sind bestimmt nicht nötig, da die Ventile eine wesendlich größere Schaltzeit haben. Zwei Wörter Empfangen ist mit einem Mega 8 @ 8MHz bestimmt kein Problem. Hast Du zu dieser SPI LVDS Schnittstelle mehr Infos. Sieht ziemlich schwierig aus. Axel
Das SPI LVDS ist doch so eine Videoschnittstelle oder nicht? Das geht in Richtung Bildverarbeitung? Dann wird es auch mit der Mega 8 eng. Axel
Also für mich sieht das ,bis auf die beiden "VOP" Signale, wie eine normale SPI Schnittstelle aus. Nur das diese für eine sicherere Übertragung als LVDS Signal übertragen wird. Hatte mir mal aus irgendeinem anderen Thread zu LVDS diesen Link kopiert. http://www.national.com/appinfo/lvds/files/ownersmanual.pdf Darin ist LVDS sehr gut erklärt. Für den anschluss an den Sensor wirst du dir ein LVDS zu TTL bzw. CMOS Wandler suchen müssen der eine Epfangseinheit LVDS->TTL (MISO P/N) und drei Sendeeinheiten TTL->LVDS (MOSI P/N, CLK P/N & SS P/N) hat. An diesem kannst du dann ganz einfach die SPI Schnittstelle des Controllers anschließen. Bei einer Maximalfrequenz von 6MHz müsste das Beinahe jeder µC hinbekommen, wenn der Wandler möglichst nahe an diesem sitzt. Was ich jedoch nicht verstehe im Datenblatt steht was von 9 Status LEDs -> 9 Lichtschranken wieso, dann nur 12 Bytes und wozu benötigt man 2 Bytes für den Zustand einer Lichtschranke, die entweder offen oder geschlossen ist. Verstehen könnte ich es ja noch wenn alle 72 Pixel übertragen werden, allerdings scheint das auch nicht der Fall zu sein. Ich würde da nochmal zwecks genauerer Informationen nachfragen. Gruß Crimson
Crimson schrieb: > Also für mich sieht das ,bis auf die beiden "VOP" Signale, wie eine > normale SPI Schnittstelle aus. Nur das diese für eine sicherere > Übertragung als LVDS Signal übertragen wird. > > Hatte mir mal aus irgendeinem anderen Thread zu LVDS diesen Link > kopiert. > http://www.national.com/appinfo/lvds/files/ownersmanual.pdf > Darin ist LVDS sehr gut erklärt. > > Für den anschluss an den Sensor wirst du dir ein LVDS zu TTL bzw. CMOS > Wandler suchen müssen der eine Epfangseinheit LVDS->TTL (MISO P/N) und > drei Sendeeinheiten TTL->LVDS (MOSI P/N, CLK P/N & SS P/N) hat. An > diesem kannst du dann ganz einfach die SPI Schnittstelle des > Controllers anschließen. Bei einer Maximalfrequenz von 6MHz müsste das > Beinahe jeder µC hinbekommen, wenn der Wandler möglichst nahe an diesem > sitzt. > > Was ich jedoch nicht verstehe im Datenblatt steht was von 9 Status LEDs > -> 9 Lichtschranken wieso, dann nur 12 Bytes und wozu benötigt man 2 > Bytes für den Zustand einer Lichtschranke, die entweder offen oder > geschlossen ist. > Verstehen könnte ich es ja noch wenn alle 72 Pixel übertragen werden, > allerdings scheint das auch nicht der Fall zu sein. > > Ich würde da nochmal zwecks genauerer Informationen nachfragen. > > Gruß Crimson Hallo, vorgesehen ist ein ATmega325 mit 16 MHz, mit dem ich arbeiten muss. Zur Frage von 9 Status LEDs : Da nur 9 Bytes (entspricht 9 LED's) gebraucht werden, sind die andere Bytes mit '0' gefüllt. Meinst du, dass ich einfach den Sensor an SPI Schnittstelle des Mikrocontrollers anschließe? Ich muss eine grobe Laufzeitberechnung machen, indem ich genügend Zeit mein Algorithmen auszuführen. Kann jemand mir sagen, wie man das berechnet? Gruss Aaron
Hallo Aaron, du kannst den Sensor nicht direkt an den Mikrocontroller anschließen, da dieser TTL Pegel am den Pins erwartet und der Sensor LVDS. Das bedeutet du must einen "WANDLER" dazwischen setzten!!! Ich hab mal zwei bei National Semiconductors rausgesucht. Der erste ist ein Sender und ein Epfänger (http://www.national.com/ds/DS/DS90LV019.pdf) und der zweite beinhaltet 4 Sender (http://www.national.com/ds/DS/DS90C031.pdf) da ich auf die schnelle keinen passenden gefunden habe. Gibts aber sicher auch bei anderen Herstellern. Außerdem wirst du schätzungsweise mit einem 12MHz Quarz an dem ATmega325 arbeiten müssen da du sonst nicht auf die 6MHz SPI Takt kommst. Hast du eine Ahnung welchen SPI Modus der Sensor verwendet. Das berechnen während über die Schnittstelle daten kommen ist beliebig kompliziert, da du alle 16 Takte einen SPI Interrupt bekommst. Oder zumindest die Daten abholen musst. Also musst du anschließend dafür Zeit vorsehen, bevor du das nächste mal daten vom Sensor holst. Für eine Laufzeitberechnung braucht man im algemeinen den Asselbler code. Anhand der Asemblerbefehle und zu deren Ausführung nötigen Takte lässt sich die Laufzeit berechnen. Anzahl Takte(der Funktion) * 1/Taktfrequenz = Laufzeit Gruß Manuel
Crimson schrieb: > Hallo Aaron, > > du kannst den Sensor nicht direkt an den Mikrocontroller anschließen, da > dieser TTL Pegel am den Pins erwartet und der Sensor LVDS. > Das bedeutet du must einen "WANDLER" dazwischen setzten!!! > > Ich hab mal zwei bei National Semiconductors rausgesucht. > Der erste ist ein Sender und ein Epfänger > (http://www.national.com/ds/DS/DS90LV019.pdf) > und der zweite beinhaltet 4 Sender > (http://www.national.com/ds/DS/DS90C031.pdf) > da ich auf die schnelle keinen passenden gefunden habe. > Gibts aber sicher auch bei anderen Herstellern. > > Außerdem wirst du schätzungsweise mit einem 12MHz Quarz an dem ATmega325 > arbeiten müssen da du sonst nicht auf die 6MHz SPI Takt kommst. > Hast du eine Ahnung welchen SPI Modus der Sensor verwendet. > Das berechnen während über die Schnittstelle daten kommen ist beliebig > kompliziert, da du alle 16 Takte einen SPI Interrupt bekommst. Oder > zumindest die Daten abholen musst. > Also musst du anschließend dafür Zeit vorsehen, bevor du das nächste mal > daten vom Sensor holst. > > Für eine Laufzeitberechnung braucht man im algemeinen den Asselbler > code. > Anhand der Asemblerbefehle und zu deren Ausführung nötigen Takte lässt > sich die Laufzeit berechnen. > Anzahl Takte(der Funktion) * 1/Taktfrequenz = Laufzeit > > Gruß Manuel Hallo Manuel, d.h Ausgang des 'Wandlers' schließe ich an den ADC des Mikrocontrollers,oder? Kann ich nicht direkt an den Mikrocontroller anschließen,da auf dem uC bereits schon eine SPI Interface vorhanden? Mit 16 Mhz kann ich arbeiten,da laut dem Datenblatt kein 6 MHz sein muss (nur bis zu max. 6 Mhz). Also,dann kann ich von 16 Mhz auf 4 Mhz downscalen. Über SPI Modus des Sensors habe ich keine Ahnung, da ich nur die Datenblätter von Transmitter und Receiver habe. Für die Laufzeit habe ich eine kleine Berechnung gemacht. Und zwar folgendes : Geschwindigkeit des Förderbandes : 4 m/s Abstand zwischen den Abtastungen : 5mm Dann komme ich auf 1250 us für die Zeit bis zur nächste Abtastung. Wenn ich mit 16 Mhz arbeite, ergibt sich die Anzahl der Befehle 20000 Befehle. Und das reicht schon für die Implementierung meiner Algorithmen, oder? Ich hoffe, dass ich alles richtig verstanden habe. Gruss Aaron
Hallo Aaron, langsam frage ich mich ob du dir das LVDS Dokument überhaut angeschaut hast. In den Shemas sehen die zwar aus wie OPVs, sind es jedoch nicht, aus einem Reciever(Wandler für Empfägner) kommt ein TTL(Transistor-Transistor-Logik) LOGIK Signal heraus das dem differenziellen Signal entspricht. Genauso wandelt ein Driver(Wandler für Sender) ein TTL Signal in ein LVDS(Low Voltage Differential Signaling) Signal heraus. Die ganze LVDS Sache ist nur dafür gedacht das Signal unempfindlicher gegen Störungen zu machen. Bedeutet aus MISOP und MISON des Sensors wird nach dem Reciever MISO und geht an den entsprechenden Pin des Mikrocontrollers. Aus MOSI der SPI Schnittstelle wird nach dem Driver MOSIP und MOSIN zum Sensor. Ich hab keine Ahnung was für Algorithmen du verwenden willst. Die 20000 Takte sollten jedoch ohne Probleme ausreichen. Oben hattest du jedoch noch etwas von 200µs geschrieben. Achtung nicht jeder Assembler Befehl braucht einen Takt manche auch mehrere. Ach ja bevor ichs vergesse die LVDS Signale haben gerne einen Wellenwiederstand von 100 Ohm sowohl im Kabel wie auch auf der Leiterbahn und die Leitungen von XXXXP und XXXXN sollten möglichst gleich lang sein. Sollte bei deinen Geschwindigkeiten, jedoch nicht so wichtig sein. Gruß Manuel
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.