PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : sonstige verwendung vom USB-interface



Roboman93
24.03.2008, 19:50
ich habe den rp6, also auch das usb-interface.
jetzt wollte ich fragen, ob ich mit dem auch andere controller ohne board programmieren kann und wenn ja, welche software würdet ihr mir zum übertragen vom code auf den controller empfehlen???

MfG Roboman

Pr0gm4n
24.03.2008, 21:09
Hi,

ich hab die Frage auch schon gestellt und dann einfach mal gegoogelt:

um nen µC zu proggen braucht man bestimmte Pins und um ne UART-Schnittstelle zu haben nochmal bestimmte Pins. Diese Pins sind am USB-Interface dran...

Ich baue mir jetz dann selber ne kleine Platine, in die man den µC einsteckt und dann proggen kann, oder so irgendwie

Als Software würde ich dir vielleicht gleich den RP6loader empfehlen, da er eh auf das Interface eingestellt ist, du schon mit ihm umgehen kannst und er die Treiber des USB-Interfaces unterstützt. Ich kenne keine andere Software, mit der das geht, also wenn dir der RP6loader nich passt musst du fast selber was proggen, aber meiner Meinung nach zu aufwendig..


MfG Pr0gm4n

fischer-max
25.03.2008, 11:29
einen anderen chip sollte man auch nicht nehmen, denke ich, sonst muss man wieder seiteweise datenblätter lesen. :)

MFG MAx

Roboman93
25.03.2008, 16:01
und noch ne frage, wenn auch eib bisschen am thema von diesem thema vorbei:
welche software würdet ihr mir empfehlen, um meine codes zu schreiben und zu kompilieren??

fischer-max
25.03.2008, 21:44
hm, habe es zwar nicht ausprobiert, aber ich denke wenn man den gleichen chip wie im RP6 verwendet, müsste der compiler, der für RP6 gedacht ist auch gehen. Um code zu schreiben kannst du auch Notepad nehmen, sowie es für RP6 empfohlen ist. Wenn du damit schon proframmiert hast , sind die einstellung ja schon da.
kannst ja schreiben wenns geklappt hat.

MFg

SlyD
26.03.2008, 18:14
Hallo,

der RP6Loader besteht aus zwei Teilen: Der Software auf dem PC UND einem kleinen Programm für den jeweiligen Controller!
Das wurde so gemacht, damit Kommunikation (writeString usw.) UND Programmierung über ein gemeinsames Interface laufen können. Ausserdem ist so sichergestellt, dass niemand versehentlich die Fusebits umprogrammieren kann und so den Controller evtl. unbrauchbar macht (sprich: Oszillator falsch konfiguriert, ISP Interface deaktiviert o.ä.).

Um einen neu gekauften ATMEGA programmieren zu können, braucht man einen ISP Adapter.
Das kann man durchaus auch über das RP6 USB Interface laufen lassen wenn man es passend anschließt, aber das dauert sehr lange.
Das liegt daran, das die gängige ISP Software (z.B. Ponyprog) für normale serielle Schnittstellen (oder ISP Programmiergeräte mit eigenem Mikrocontroller) geschrieben wurde, das USB Interface aber eben über USB läuft. USB hat eine deutlich höhere Latenz als die "echten" seriellen Schnittstellen und daher ist das gezielte umschalten der Signalleitungen recht langsam.
Ist eigentlich nur sinnvoll um einmal einen Bootloader drauf zu laden und dann damit zu arbeiten.

MfG,
SlyD

PS:
Der C Compiler der für den RP6 verwendet wird ist DER standard C-Compiler für AVRs. Als Quelltexteditor kannst Du alles verwenden was ASCII Text verarbeiten kann (PSPad, Proton, Code::Blocks, Dev-C++...) - PN2 wird halt mit WinAVR mitinstalliert.
Kannst aber z.B. auch AVRStudio verwenden.

fischer-max
26.03.2008, 21:13
hm slyd, aber es müsste doch ganz normal gehen.
so wie ich das verstehe, findet die kommunikation über die PINs *TX* und *RX*, wobei diese beim Atmega32 *TXD* und *RXD* heißen. Wenn ich diese zusammenlöte/stecke müsste es doch gehen mit der RP6 software.
Auszug aus RN-Wissen:
Der serielle UART benötigt 2 Daten-Leitungen:

* "TxD" (Tranceive Data = Daten Senden)
* "RxD" (Receive Data = Daten Empfangen)

Oder habe ich da noch was übersehen?

MFG MAx

SlyD
26.03.2008, 21:49
Die serielle Schnittstelle funktioniert nur wenn ein entsprechendes Programm auf dem Controller läuft.
Es muss also schon vorher ein Programm in den Controller geladen werden (der "Bootloader" in diesem Fall - ohne diesen läuft über die serielle Schnittstelle natürlich nichts).

Der Controller lässt sich ohne einen Bootloader nur über die SPI Schnittstelle programmieren (wird dann auch ISP - "In System Programming" genannt).
Es geht auch noch parallel - aber das kommt hier ja nicht in Frage.

MfG,
SlyD

fischer-max
26.03.2008, 23:22
oh, i see. also ohne eine portion extra hardware läufts wohl nicht. schade.

MFG

Pr0gm4n
30.03.2008, 00:10
Kann man das Interface dann garnicht verwenden oder z.B. nur als UART oder nur als ISP-Dongel?

Roboman93
30.03.2008, 15:54
naja, so weit ich weiß kann man das als rs232-adapter auch für andera controller verwenden. da AVRs mit 5v, ein pc aber mit 12v läuft, braucht man ja ein adapter. weiß einer, ob man auch controller kaufen kann, die schon ein bootloader installiert haben?

SlyD
30.03.2008, 16:35
Hallo,

das USB Interface kann als virtueller Comport verwendet werden - genau wie die normalen USB-RS232 Dongles. Allerdings braucht man hier KEINEN Pegelwandler zwischen Mikrocontroller und USB Interface - das läuft nämlich schon mit 5V TTL Pegel.

Mit Ponyprog und passender Schnittstellenbelegung kann man einen Controller auch über das USB Interface programmieren (das emuliert dann SPI). Aber wie ich bereits gesagt habe, taugt das maximal dafür um einen Bootloader in den Controller zu laden - für alles andere ist das zu langsam (grund habe ich ja schon genannt).

MfG,
SlyD

Pr0gm4n
30.03.2008, 17:23
Ok, danke...

@SlyD Ich will jetzt nichmehr nur mit der Lib des RP6 arbeiten, sondern die Befehle die der µC auch ohne diese Lib versteht verwenden. (#include <avr/io.h>)

kann man diese Befehle anhand der RP6Lib besser verstehen lernen, wenn man sie davor schonmal in einem Tutorial alle gehört hat, aber noch nicht alle Anwendungen dazu kennt?




MfG Pr0gm4n

Roboman93
03.06.2008, 18:31
ok, wollte mir aus dem usb-programmer ein isp-lader basteln.
jetzt hab ich den schaltplan unden, und wollte fragen, ob ich ein widerstand da weglassen kann, weil ich ja 5v und nicht 12v habe.