Hallo Leute, Ich habe ein Atmega128 und möchte das mit FT232R zusammen verbinden damit ich das ATmega128 durch USB programmieren kann. Ich habe Zwei fragen: 1)Was ist besser? Soll die Spannung versorgung für den FT232R von USB Bus kommen oder von der µC interne 5V spannungversorgung. Ich denke die interne quelle ist besser, weil man hat da weniger EMV, mehr stablilier spannung, und der strom ist ja eher wenig. 2)Brauch ich die handshake signale? Falls ja, wie soll ich das am besten machen? da der atmega128 nur TxD und Rxd signale hat. Danke im Voraus.
Hallo, >Brauch ich die handshake signale? Falls ja, wie soll ich das am >besten machen? da der atmega128 nur TxD und Rxd signale hat Man kann notfalls auf Handshake-Leitungen verzichten, kommt aber auf den spezifischen Anwendungsfall an. Manche Endgräte arbeiten nur damit. Wenn Handshake realisiert werden muss, dann kann man einen normalen µC-PIN für diesen Fall verwenden. Bernhard
>Man kann notfalls auf Handshake-Leitungen verzichten
Was heisst hier "notfall" ??
Ich möchte mit der USB nur den µC programmieren.
Hallo, der "Notfall" hat etwas damit zu tun, wie die Kommunikation seitens des PCs abgewickelt wird. Die RS232-Schnittstelle (serielle Schnittstelle) verursacht einen Interrupt, sobald Daten gesendet wurden oder im Puffer liegen. Bei USB jedoch wird dies durch eine Taskliste signalisiert. Diese wird nach dem FIFO-Prinzip bearbeitet. Je nachdem, wieviele Tasks gerade anstehen kann es folglich dazu kommen, dass der Puffer noch nicht geleert ist, wenn bereits neue Daten eintreffen, weil der PC noch gar keine Kenntnis von dem Ereignis erlangt hat. Zur Absicherung hat der FT232 einen weiteren Puffer, der versucht, dieses Problem abzufangen. Aber auch dieses ist irgendwann mal voll... Aus diesem Grund sollte man, wenn man einen USB/RS232-Wandler benutzt, moeglichst nicht auf Handshaking verzichten. Dies muss nicht unbedingt das Hardwarehandshaking oder das Softwarehandshaking mittels XON/XOFF sein. Es kann auch ein anderes Protokoll, mittels welchem die Teilnehmer erkennen koennen, ob der Partner die Daten evtl. nicht bekommen haben koennte, benutzt weden. Ich habe leider keine Kenntnis ueber das zur Programmierung des ATMega benutzten Protokolls. Jedoch ist bei meinen Versuchen mit dem FT232 noch kein Paket verloren gegangen, auch wenn der PC gerade viel zu tun hatte. Die Datenraten waren hierbei in der Regel beim maximal moeglichen. Da diese zur Programmierung nicht benutzt werden, sinkt die Wahrscheinlichkeit fuer einen Fehler durch Nichtverarbeitung nochmals. Gruss Thomas
Aha...danke für die ausführliche erklärung. Ich habe gehofft ich könnte ohne handshakes auskommen, genauso wie ich das mit der RS232 schnittstelle gemacht habe, aber wie du es bereits gesagt hast, hier werden interrupts nicht benutzt. Also, ich werde die signale RTS/CTS von der RS232-USB umwandler auf irgend ein IO pins von der µC verbinden, und sie für den handshakes benutzten. Kann ich dann die anderen pins DTR/DSR/DCD von dieser umwandler einfach zusammen verbinden? MfG.
Ich wuerde die freien Signale auf jeden Fall irgednwie herausfuehren, so dass Du sie bei Bedarf (z.B. mittels Steckerleiste) an den uC anschliessen kannst. Ich persoenlich wuerde es zuerst einmal ohne Handshake-Leitungen versuchen. Bei den niedrigen Datenraten, welche Du zur Programmierung benoetigst (9600 Baud?) duerftest Du eigentlich keine Probleme bekommen. Wie gesagt, ich habe meine Versuche mit den vollen 1 MBit ohne Handshake ausprobiert und keinerlei Probleme gehabt. Als PC kam ein recht betagtes Modell zum Einsatz, welcher nebenher noch einige Berechnungen und andere Jobs zu erledigen hatte. Thomas
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.