Nabend zusammen.
Ich bin ET-Stundent im 4 Semester.. wir fangen zzt endlich mal an uns
mit interessanten sachen wie µC zu beschäftigen ^^
..was natürlich nicht heißen soll, dass mir endlose Fourierreihen oder
3fach Integrale in n-dimensionalen Räumen keinen Spaß bereitet haben ;)
naja b2t: ich fand diese ganze sache mit den µC hochgradig interessant
und da wir ein jahr lang C programmiert hatten, es aber nie angewandt
wurde
war ich froh etwas gefunden zu haben.
Nun würde ich mir gerne ein avr starterkit zulegen um mich mal der
ganzen Materie zu widmen.
Hängen geblieben bin ich bei:
http://www.eproo-student.de/index.php?module=artikel&action=artikel&id=373http://www.pollin.de/shop/dt/MTY5OTgxOTk-/Bausaetze_Module/Bausaetze/ATMEL_Evaluations_Board_Version_2_0_1_Bausatz.html
Problem is folgendes.. ich hab natürlich son supermodernes notebook (win
7 64bit) ohne rs232. Diesen ganzen Adapterkram trau ich ned.
Hab mich etwas weiter belesen und das entdeckt:
http://www.eproo-student.de/index.php?module=artikel&action=artikel&id=367
Meine frage ist jetzt ist es sinnvoll sich das stk500/mkll gleichzeitig
zu holen?
ist das mkll ein kompletter ersatz für rs232? also dass ich es mittels
jtag programmieren kann hab ich mitbekommen.. aber kann ich damit den µC
auch steuern? so wie mit putty über rs232 halt..
AVRISP kann halt kein JTAG, HV Programming zum normalen Programmieren
mittels USB ist es aber sehr gut geeignet.
Eine alternative wäre der AVR Dragon, der kann oben genannte Dinge aber
irgendeinen Programmiermodus für die ganz kleinen Tinys nicht.
Man bräuchte noch ein Gehäuse zum transportieren und einen
Nullkraftsockel zum Einlöten dann kann man die µCs sehr leicht ein- und
auslegen.
mhm danke erstmal.
das problem ist, dass mir die ganze materie total neu ist.
ich will eigtl definitiv das stk500.. da hab ich alles drauf was ich
brauch.. schicke leds n paar taster und gut is ^^
ich wollt mich erstmal aufs programmieren in C konzentrieren und schnell
meine ergebnisse aufm bildschirm oder via LEDs sehen.
tja ob das alles mit dem avrisp als ersatz für die rs232 aufm stk500
geht is die frage :P
Das AvrISPmkII ist ein reines Programmiergerät, ist also nur zu Flashen
des Controllers geeignet. Für eine Kommunikation mit dem PC geht kein
Weg an RS232 vorbei. Jedenfalls nicht ohne Klimmzüge.
Wenn es aber "echtes" RS232 ist funktionieren die USB/RS232 Konverter
ohne zu murren. Auch mit dem STK500. Problematisch sind
Programmiergeräte wie sie auf dem Pollin Board drauf sind (Ponyprog).
Die sprechen kein RS232, sondern versuchen das ISP Protokoll der AVRs
direkt nachzubilden. Mit einem Konverter ist das bestenfalls nur
langsam. Programmiergeräte wie sie auf dem STK500 verbaut sind haben
einen eigenen Controller die die Flash-Daten per RS232 häppchenweise
entgegennehmen und das ISP Protokoll selbst abwickeln.
Also: Das AvrISPmkII kann man dazu verwenden um ohne RS232 Programme auf
das STK500 zu übertragen. Evalboard und Programmiergerät auf dem STK500
(zwei Teile auf einer Platine) sind mit einem Flachbandkabel verbunden.
Das muß man nur abziehen und stattdessen den AVRisp einstöpseln.
Datenübertragung vom STK500 zum PC geht damit aber nicht.
Mit JTAG/debugWire kann man Programme übertragen und diese dann u. a. in
Einzelschritten ausführen lassen. Das geht aber weder mit dem STK500
Programmierteil noch mit dem AVRisp. AVRDragon und JTAGICEmkII können
das.
ahh es lichtet sich langsam :)
also mir ist es wichtig mit dem PC kommunizieren zu können..
das heißt ich komm wohl nich um rs232 rum.. ich hab jetzt aber schon
total oft gelesen, dass es da probleme bei usb->seriell geben soll
hat jemand da erfahrung?
kann ich mit sonem adapter sicher flashen und UART oder wie das heißt
für die steuerung/auslesen via PC benutzen?
mein notebook hat übrigens auch n expresscard slot..
Bislang hatte ich nur mit 'intelligenten' Programmern zu tun wie das
STK500 oder AVR-Prog (AVR910), die ich bisher ausschließlich an einem
Konverter betrieben habe. Das STK500 habe ich allerdings nicht mehr.
Desweiteren hantiere ich laufend mit FT232 bzw. CP2102 basierten
USB->UART Konvertern für Trace Ausgaben und zum Programmieren von
LPC11xx/13xx/17xx/23xx/24xx und STM32. Kein PC mit dem ich zu tun habe
hat noch eine RS232 Schnittstelle.
Probleme mit Konvertern habe ich nur an einem PC: Wenn der aus dem
Sleepmode hochkommt, startet der Konverter nicht den ich dort für die
LPCs benutze. Den muß ich dann einmal abziehen und gleich wieder
einstecken.
Bei einem normalen Start geht es. Allerdings betreibe ich den an einem
USB Hub. Vielleicht liegt es daran. Maus und Tastatur sind direkt am PC
eingesteckt.
Als unzuverlässig würde ich externe Festplatten mit USB Anschluss
bezeichnen. Das geht stundenweise gut, im Dauerbetrieb verlieren die
(ich habe drei) gerne mal die Verbindung.
wow klingt eigtl. sehr vielversprechend. kann man über so einen uart
slot alles erledigen was mach auch per rs232 machen hätte können?
ich hatte mich glaub ich verschrieben.. wollte nämlich stk500 über rs232
statt uart auslesen/steuern (also nich porgrammieren jetzt)
aber wenn das über uart auch alles möglich is gehts ja auch so..
Nimm Arduino.
Hat nen Bootloader, Du brauchst also kein Programmiergerät.
Haken: Im moment schwer erhältlich, weil Atmel keine Controller liefert.
Dennoch gibt es das Teil hier (100%kompatibel)
http://www.lipoly.de/index.php?main_page=product_info&products_id=161069
Da hast du alles was Du brauchst, kann man in Arduino, in C und in
Assembler programmieren.
mhm ne ich will schon definitiv das stk500.. brauch erstmal lämpchen und
taster etc.. will mich doch erstma in die materie reinfinden.
zzt ich das problem einfach nur diese gammelige r232 schnittstelle.
Ich brauch ne lösung, womit ich flashen und mit dem PC kommunizieren
kann und das alles auf dem stk500.
Nun scheint ein usb->rs232 adapter oder epresscard die lösung zu sein.
Nun hab ich bei beiden varianten von problemen gehört.. von wegen keine
echte rs232 schnittstelle etc.
was denkt ihr denn wäre die bessere variante?
Ich habe ein Laptop mit eine PCMCIA und eine RS232 PCMCIA Card es
funktioniert Fehlerfre! allerdings habe ich keine Ahnung ob es mit
"expresscard slot" genau so ist bwz. genau so Funktioniert, ich würde ja
sagen.
so es scheint so dass expresscard auf jeden fall besser funzen soll als
usb adapter, solange es sich um eine handelt, welche nich auch nur die
usb anschlüssen im express slot benutzt.
ich habe einen 34mm epxresscard slot
kann mir jemand von erfolg berichten mittels der richtigen expresscard,
wo ich das stk500 flashen und mit dem PC kommunizieren kann?
Danke erstmal für die vorige Hilfe!! :)
Da will es aber einer genau wissen ;)
Der Reihe nach:
RS232 beschreibt was sich auf den Datenleitungen zwischen zwei Geräten
abspielt. Ein UART ist Teil des Controllers/PCs mit dem du es
softwareseitig zu tun hast. Das Ding setzt die Datenworte in ein
serielles Signal um. Das ist aber noch nicht ganz RS232. Die Pegel
müssen erst angepasst werden, da der UART mit 5V (oder 3.3V) Logikpegel
arbeitet. RS232 verlangt ein Signal das z. B. mit +/- 9V arbeitet
(3..20V). Also auch negative Spannungen. Pegelwandler wie der MAX232
machen das. Zudem muß das ganze noch invertiert werden. Macht der MAX
auch.
Da diese Konverter ICs auch mit Logikpegeln arbeiten kann man den
Pegelwandler auch weglassen. Sobald eine Seite aber einen verwendet muß
die andere das natürlich auch tun. So ist es auch beim STK500 und den
fertigen USB Adaptern.
Warum es bei den Konvertern klemmen kann:
RS232 definiert neben den Datensignalen RX + TX noch weitere Signale zu
Ablaufsteuerung wie RTS,CTS,DTR und noch irgendeins. Die meisten Geräte
benutzen diese Leitungen nicht oder falls sie es doch tun, werden sie
tatsächlich zur Ablaufsteuerung verwendet. Soweit kein Problem. Jetzt
kommen aber manche daher und benutzen diese Signale als zusätzliche
Datenleitungen um quasi einen mehr oder weniger universellen
Parallelport zu realisieren. Und da knallt es dann schonmal v.a. wenn
ein besonderes Timing eingehalten werden muß.
Ein berühmt berüchtigtes Beispiel dafür ist eben dieses Ponyprog. Dein
begehrtes STK500 gehört aber nicht dazu. Der UART der AVRs auch nicht.
Zur Frage USB/Expresscard:
Ich würde USB nehmen weil ich da die geringsten Überraschungen erwarte
und man so ein Teil auch mal an einen PC anstöpsel kann. Bei den
Treibern vertrauen ich den USB Teilen auch mehr da die verbauten ICs
weit verbreitet sind und es Treiber für praktisch alle Bestriebssysteme
gibt.
Nur wenn du mit Frickelhardware arbeiten willst kannst du USB vergessen.
Und zu guter Letzt:
Das STK500 hat zwei RS232 Anschlüsse. Einen für das Programmiergerät und
einen für den UART. Jeweils mit einem MAX232 dazwischen. Die lassen sich
beide mit USB Adaptern verwenden. Aber sicherlich auch mit Expresscard.
Alle Klarheiten beseitigt?
Micheal.. ich DANKE dir für diese profundliche detaillierte beschreibung
des problems :)
ich werd mir usb adpater kaufen und schauen obs klappt.
Jetzt hab ich das endlich mit dem max232 undso kapiert.. war auch immer
so undurchsichtig. Da ich mir ja nich hardcoremäßig was baue sondern
erstmal zufrieden bin, dass ich das stk500 damit bedienen kann, wirds
schon klappen.
danke und gute nacht!
mhm auch wenn mein problem gelöst scheint hab ich einfach interesse
halber noch paar fragen :)
du sagtest ponyprog zb. besetzt die steuerungsletungen als
datenleitung..
bedeutet dies, dass es nur ein softwareseitiges problem is? ich nehm
andere software und gut is?
kannst du hardwarefrickelei genauer definieren? hat das was mit dem
timing zu tun? avr is generell davon unbeeinträchtigt?
grüße
Ein softwareseitiges Problem, ja. Verstärkt durch die Eigenart von USB.
Wenn ein UART so benutzt wird wofür er gedacht ist, arbeitet das Ding
autark. Man schickt ihm Daten und er macht etwas standardkonformes
daraus. Ponyprog geht hin und setzt die Datenleitungen direkt per
Software auf high oder low. Bei einem herkömmlichen UART funktioniert
das auch ganz gut. USB arbeitet aber paketorientiert. Bei USB 2.0
passiert genau jede Millisekunde etwas. Da kann man nicht zu jedem
beliebigen Zeitpunkt den Zustand der Datenleitungen ändern. Dann kommen
möglicherweise auch noch Eigenarten der Treiber hinzu.
Auf der Controllerseite kann man per Software praktisch jedes Protokoll
realisieren da ein µC sich ziemlich berechenbar verhält. Auch einen UART
kann man sich programmieren, obwohl wenn es relativ viele Ressourcen
benötigt. Zumindest der Empfang.
PC und USB sind aber nur sehr bedingt echtzeitfähig. Damit ein
softwaregesteuertes Protokoll zu implementieren um sich auf der anderen
Seite einen Controller zu sparen, ist für mich gefrickel.