PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Erstes Experimentierboard nachgebaut..wie geht das mit ISP?



Johannes84
23.12.2005, 16:34
Hallo,

ich habe mir heute das Board gebaut vom Einsteigerset auf robotikhardware, dieses hier:

http://www.robotikhardware.de/bilder/schaltungstepmega16.gif

Wie funktioniert das genau mit der ISP, was muss ich denn an die Steckplätze von ISP1 anschließen? Und was wähle ich dann in Bascom als Programmer aus?

Vielen Dank im voraus
Johannes

PicNick
23.12.2005, 17:23
Ich hab von diesen Programmierdongle, geht super

https://www.roboternetz.de/wissen/index.php/Bascom_-_Erstes_Programm_in_den_AVR_Controller_%C3%BCbertr agen

Johannes84
23.12.2005, 17:35
hmm, was meinst du? da find ich auch nicht wie/wo ich den ISP1 nach schaltplan anschließen muss...

danke trotzdem schonmal...

gamecounter
23.12.2005, 17:39
an isp1 musst du einen ISP Programmieradapter anschließen (auch Dongle) genannt. Diese gibt es entweder fertig zu kaufen (siehe bei diesem link) oder du kannst ihn auch selbst basteln. Dieser wird dann meist an die parallele Schnittstelle deines PC's angeschlossen (es gibt auch andere die an die serielle oder mittlerweile glaub ich auch schon usb schnittstelle angeschlossen werden)

mfg gamecounter

Johannes84
23.12.2005, 19:07
vielen dank! kabel ist jetzt im bau ;)

Johannes84
23.12.2005, 19:58
aber nochwas...ich dachte die rs232 schnittstelle wäre dafür da um den chip zu programmieren...aber das ist ja dann anscheinend nicht der fall.
für was ist dann das rs232 bei der grundbeschaltung?

linux_80
23.12.2005, 20:06
Hallo,
in der Grundbeschaltung, für garnix, das kannst du hernehmen für was Du lustig bist, muss im µC-Programm erst aktiviert und initialisiert werden diese Schnittstelle.

Zum flashen sind überlicherweise die Mosi und Miso usw. Pins zu verwenden, siehe Schaltplan von Dir oben.

darwin.nuernberg
23.12.2005, 20:09
aber nochwas...ich dachte die rs232 schnittstelle wäre dafür da um den chip zu programmieren...aber das ist ja dann anscheinend nicht der fall.
für was ist dann das rs232 bei der grundbeschaltung?

Es gibt sog. Bootloader, das sind kleine Programme, welche es erlauben programme via RS232 in den Chip zu laden,
solche Bootloader müssen aber auch irgendwie in den Chip, dann braucht man auch einen ISP Programmieradapter.

Der ASURO Bausatz bietet einen solchen Bootloader,
aber ich denke es ist einfacher, bevor man sich mit der Bootloader Funktionalität auseinandersetzt und sowiso einen kompletten Eigenabau realisiert, kann man sich die Mühe ersparen.

Generell dient die im AVR eingebaute serielle Schittstelle dem Datenaustausch, kann aber natütrlich auch anders verwendet werden.

Aber bitte nicht direkt an den Computer (PC) anschließen, der arbeitet mit 24V (V24 Schnittstelle) und der AVR mit TTL - Pegel (5V). Um die beiden zusammen zu bringen brauchst du noch einen Wandler (Max232), der ist aber eher unkompliziert zu realisieren.

super_castle
23.12.2005, 20:29
"Aber bitte nicht direkt an den Computer (PC) anschließen, der arbeitet mit 24V (V24 Schnittstelle)"

Hilfeeeee......nein.
Der PC arbeitet mit 12 Volt Pegelspannung.

"Generell dient die im AVR eingebaute serielle Schittstelle dem Datenaustausch, kann aber natütrlich auch anders verwendet werden. "

Hilfeeeeee....nein.
Es gibt kein "Generell", es gibt sowohl als auch.

Castle

Warhawky
23.12.2005, 20:53
Hi,


Hilfeeeee......nein.
Der PC arbeitet mit 12 Volt Pegelspannung.

Sorry aber das Stimmt nicht.

Serielle Schnittstelle am PC:
Logisch 1: -12V (negativ)
Logisch 0: +12V (positiv)

Das sind nach Adam Ries 24 Volt!

Gruß
Matthias

ICH_
23.12.2005, 20:56
Der heißt Adam Riese, glaub ich ;-)
Und da man die Spannungen doch normalerweise auf 0V, GND bezieht macht das eben +12 und -12 und nicht 24.

Johannes84
23.12.2005, 23:26
also, ich komme nicht so recht weiter. bascom zeigt immer an, dass der chip nicht erkannt werden kann. aber wenn ich in bascom "write buffer to flash" oder "read from flash" mache, dann macht das programm so als ob er übertragen würde und beschwert sich nicht. auch wenn garkein kabel vom atmel zum computer geht. habe die schaltung jetzt aufgebaut wie oben und den dongel so(nach rowalt.de) :
http://www.rowalt.de/mc/avr/twinavrh.png

wie gehe ich am besten auf fehlersuche, bzw. woran könnte das liegen? oder gibts irgendwelche programme zum prüfen was am parallelport ankommt..

Torsten_G
24.12.2005, 14:45
Klares Zeichen, dass keinerlei Verbindung von Bascom aus aufgebaut wird.

Hast Du die Einstellungen in Bascom so vorgenommen, wie in PicNick´s Link angegeben?

Ist alles korrekt zusammengelötet?

Ansonsten, wollen wir hoffen, dass Du Dir nicht mit einem Fehlerchen in dieser Low-Budget-Schaltung den LPT gegrillt hast.

Warum verwendest Du nicht einen 74HCT244?

Den LPT-Adapter sollte auch noch mit Yaap und PonyProg funktionieren.
Sind beides Freeware-Programme.
Yaap benötigt allerdings zusätzlich einen bestimmten Treiber -> beim Anbieter steht was dazu.

Viele Grüße

Torsten

Murphywareinoptimist
24.12.2005, 20:46
Hallo!

Jetzt muss ich aber mal dumm nachfragen. Beschäftige mich erst kurz mit der AVR Programmierung. Da ich meinen Mega8 noch nicht bekommen habe spiele ich noch ein wenig mit dem ASURO bevor ich die Grundschaltungen und das “InSchaltungProgrammieren“ selber ausprobieren kann.

Nach meinem Verständnis muss es doch egal sein welche Schnittstelle man verwendet? Man brauch nur den entsprechenden Anschluss and den PC. Wie schon gesagt brauch man für die R232/V24 dann einen Pegelwandler da der AVR mit TTL Pegeln arbeitet.

Die Datenübertragung muss doch dann nur noch in dem entsprechenden Übertragungsprogramm angewählt werden??
Warum ist denn ein Bootloader Notwendig wenn man einen Serielle Schnittstelle verwenden will (frage nur weil ich neugierig bin ... habe schon ein IPS-Adapter für die LPT Schnittstelle gebaut)

Gruß Olli

Johannes84
24.12.2005, 22:07
hmm, also bisher gehts bei mir immernoch net...jetzt will ich mal die fehlerquellen eingrenzen und das ganze ohne rs232 und ohne den externen quarz versuchen. dafür gabs doch auch eine grundschaltung, kann mir jemand sagen wo ich die finden kann?

Torsten_G
24.12.2005, 23:14
Hallo Johannes,

die Grundschaltung, die Du ganz oben gepostet hast, sollte schon passen!

Geh logisch vor, klingele alle Verbindungen durch, stell sicher, dass die Spannungsversorgungen stimmen und sieh zu, dass die ISP-Pin´s frei von zusätzlicher Hardware sind, die bei der Programmierung reinfunken könnte.

Ich hab jetzt mittlerweile schon 3x selbst einen LPT-Adapter - allerdings mit dem 74HCt244 - gelötet, die funzen normalerweise auf Anhieb... [-o<

@Olli:
Klar, grundsätzlich wäre das egal - aber die AVR´s erwarten nunmal eine Programmierung über ihre ISP-Schnittstelle.
Willst Du den AVR über seine eigene RS232 programmieren, braucht er besagten Bootloader, also so eine Art kleines Betriebssystem, dass die RS232 für die Programmübertragung umstrickt.
Frag mich jetzt nicht, wie das geht - habe ich noch nicht gemacht.

Aber ohne ISP geht´s auf keinen Fall, denn irgendwie muß ja erstmal das Bootloader-Programm in den Chip. #-o

Für´s tägliche Proggen ist der Bootloader also relativ uninteressant, das ist eher was für spätere Upgrade-Funktionen oder so...

ISP-Adapter sind sowohl für die RS232 als auch den LPT des PC´s erhältlich, wobei die LPT->ISP-Adapter recht leicht selbst gebaut werden können.
Bei den RS232->ISP-Adaptern ist ein Selbstbau etwas anspruchsvoller (mit Schnittstellen-Prozessor), oder man setzt auch dort eine "Spar-Schaltung" ein, ähnlich der hier gezeigten.

Und richtig, die gängigen Programme unterstützen fast alle sowohl RS232-> ISP- als auch LPT->ISP-Adapter.

Eine Ausnahme bildet AVR Studio, da geht´s nur seriell, soweit ich weiß.

Viele Grüße

Torsten

Johannes84
25.12.2005, 22:06
Hallo und danke für die antworten!
also, ich habe jetzt die verbindungen vom lpt stecker bis zu den beinchen von mikrocontroller durchgemessen:
-miso, mosi, reset, sck und gnd haben kontakt

am atmega liegen 5 volt an an folgenden beinchen:

AREF
AVCC
PC5
PC3
PC2
PB6 (Miso) : 4,4V
PB7(SCK) :4,5V
RESET: 4,5V
VCC


ist das so korrekt?
achja, und könnte mir vielleicht jemand die grundbeschaltung zum programmieren hier posten (ohne externen quarz, ohne rs232, ohne i2c)?
ich hab sie hier irgendwo im forum mal gesehen, finde sie aber nicht mehr...

danke im voraus
johannes

Johannes84
25.12.2005, 22:09
achja nochwas...auch wenn ich den atmega mit einem externen quarz beschaltet hab, muss ich das erste mal wenn ich zu dem atmega verbinden will eine frequenz von 1mhz in den programmen angeben, oder?

michaelb
26.12.2005, 00:44
kommt drauf an was du bei den Fuse- und Lockbits eingestellt hast!
wenn du dort den externen eingestellt hast muss du diese Frequenz angeben andernfalls halt dann die internen 1Mhz.
Gruß Michi

Torsten_G
26.12.2005, 08:59
Nimm den µC aus dem Sockel und schau mal, ob sich der Status des Reset-PIN´s ändert, wenn Du versuchst, von Bascom aus auf den Chip zuzugreifen.
Der sollte dann normalerweise mal kurz auf GND gehen, ebenso, wenn Du den Reset-Taster drückst.

Klingele einmal die Verbindungen durch vom PIN des LPT-Steckers bis zum PIN des Prozessors, natürlich bei ausgesteckter Spannungsversorgung und LPT-Schnittstelle. Da darf ja nicht viel sein, lediglich der 220 Ohm-Widerstand.

Und prüf mal, ob wirklich 5V und GND an den richtigen PIN´s des Prozessors anliegen.

Sind die GND´s von Board und LPT-Stecker verbunden?

Wo kommen die 4,4V an MISO her? Hattest Du beim Messen den PC angesteckt?

Was mir etwas merkwürdig vorkommt, warum hast Du nur 4,4V bis 4,5V auf VCC? Das sind >10% Unterspannung. Womit versorgst Du Dein Board?

Die einfachen 5V-Spannungsregler brauchen Minimum 2V Überspannung in der Versorgung, sonst langt´s nicht.
Eventuelle Verpolungsschutzdioden sollten bei knapper Überspannung Schottkys sein und natürlich auf der Versorgungsseite des Spannungsreglers eingelötet werden.

Ansonsten würde ich Dir mal diesen Beitrag hier ans Herz legen:

https://www.roboternetz.de/phpBB2/viewtopic.php?t=5517

Da stehen auch noch ein paar recht interessante Beiträge zu Spar-Adaptern - ich kann Dir nur raten, besorg Dir einen 74HCT244 für ein paar Cent... :|

Ist Dein Mega noch jungfräulich, oder wurde er schonmal irgendwo programmiert?
Wenn seine Fuses auf XTAL oder ein anders externes Signal eingestellt sind, dann braucht er das natürlich beim ISP-Zugriff.
Ist er noch auf seinem internen Takt unterwegs (bei neuen Chips üblicherweise 1MHz), dann sollte es auch so gehen.

Welche $Crystal-Angabe du ins Programm schreibst, dürfte für den Aufbau der ISP-Verbindung zunächst mal Wurscht sein, das ist "nur" eine Compiler-Direktive.
Möglicherweise funzt das Programm im Chip hinterher nicht korrekt, aber das ist jetzt mal sekundär.

Und nochmal, die Grundschaltung hast Du doch oben schon selbst gepostet, lass einfach die Quarz-Pins und die Pins für die RS232 frei, bzw. nimm den MAX232 aus dem Sockel, und gut!

Viele Grüße

Torsten

Johannes84
26.12.2005, 16:35
nochmal vielen dank!


Nimm den µC aus dem Sockel und schau mal, ob sich der Status des Reset-PIN´s ändert, wenn Du versuchst, von Bascom aus auf den Chip zuzugreifen.
Der sollte dann normalerweise mal kurz auf GND gehen, ebenso, wenn Du den Reset-Taster drückst.

Also, du meinst die Spannung des Resetpins am parallelen Ausgang?
Die ändert sich nicht, wenn ich "Send to Chip" oder "Reset Chip" drücke.


Klingele einmal die Verbindungen durch vom PIN des LPT-Steckers bis zum PIN des Prozessors, natürlich bei ausgesteckter Spannungsversorgung und LPT-Schnittstelle. Da darf ja nicht viel sein, lediglich der 220 Ohm-Widerstand.

Die Verbindungen von den LPT-Pins zu den Pins am Mikrocontroller stimmen, d.h. es besteht überall Kontakt.


Und prüf mal, ob wirklich 5V und GND an den richtigen PIN´s des Prozessors anliegen.

Wenn keine Verbindung zum PC besteht, d.h. auch kein Parallelkabel an der Schaltung ist, bekomme ich folgende Messergebnisse:

Reset: 4,5V
VCC: 5V
AREF: 5V
AVCC: 5V
PC5: 4V
PC3: 4V
PC2: 4V

Darf das sein, dass an PC5,3,2 eine Spannung anliegt?



Sind die GND´s von Board und LPT-Stecker verbunden?

Es sind 8 Massekabel (nach Belegungsplan 18-25) des LPT-Kabels an die Masse der Schaltung angeschlossen.


Wo kommen die 4,4V an MISO her? Hattest Du beim Messen den PC angesteckt?

Ja, da hatte ich anscheinend noch das Kabel dran.


Was mir etwas merkwürdig vorkommt, warum hast Du nur 4,4V bis 4,5V auf VCC? Das sind >10% Unterspannung. Womit versorgst Du Dein Board?

Die einfachen 5V-Spannungsregler brauchen Minimum 2V Überspannung in der Versorgung, sonst langt´s nicht.
Eventuelle Verpolungsschutzdioden sollten bei knapper Überspannung Schottkys sein und natürlich auf der Versorgungsseite des Spannungsreglers eingelötet werden.

Nach meiner letzten Messung liegt 5 V an VCC, vielleicht hat vorher der LPT-Stecker beeinflusst. Der Spannungsregler wird mit 9V versorgt.


Ansonsten würde ich Dir mal diesen Beitrag hier ans Herz legen:

https://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=5517

Da stehen auch noch ein paar recht interessante Beiträge zu Spar-Adaptern - ich kann Dir nur raten, besorg Dir einen 74HCT244 für ein paar Cent... Neutral

Naja, wenns wirklich nicht anders hinkriege werde ich das mal versuchen.


Ist Dein Mega noch jungfräulich, oder wurde er schonmal irgendwo programmiert?
Wenn seine Fuses auf XTAL oder ein anders externes Signal eingestellt sind, dann braucht er das natürlich beim ISP-Zugriff.
Ist er noch auf seinem internen Takt unterwegs (bei neuen Chips üblicherweise 1MHz), dann sollte es auch so gehen.

Der Atmega ist noch jungfräulich...


Welche $Crystal-Angabe du ins Programm schreibst, dürfte für den Aufbau der ISP-Verbindung zunächst mal Wurscht sein, das ist "nur" eine Compiler-Direktive.
Möglicherweise funzt das Programm im Chip hinterher nicht korrekt, aber das ist jetzt mal sekundär.

Und nochmal, die Grundschaltung hast Du doch oben schon selbst gepostet, lass einfach die Quarz-Pins und die Pins für die RS232 frei, bzw. nimm den MAX232 aus dem Sockel, und gut!

Ok, max232 und quarz sind getrennt...

Nochwas, bei dieser Grafik:
http://www.rowalt.de/mc/avr/twinavrh.png
Kann ich mich hier auf die Zahlenbelegung des LPT-Steckers verlassen, oder die Anordnung?

Im nächsten Bild von rowalt.de sind bei dem LPT-Stecker die Zahlen wieder ganz anders...
http://www.rowalt.de/mc/avr/dongle.png

danke im voraus
johannes

Torsten_G
26.12.2005, 20:38
Also, du meinst die Spannung des Resetpins am parallelen Ausgang?
Die ändert sich nicht, wenn ich "Send to Chip" oder "Reset Chip" drücke.


Das ist nicht gut... [-X

Kein Reset - keine Programmierung! Stimmt der 10k-Widerstand?


Kann ich mich hier auf die Zahlenbelegung des LPT-Steckers verlassen, oder die Anordnung?

Im nächsten Bild von rowalt.de sind bei dem LPT-Stecker die Zahlen wieder ganz anders...


*viruellesSchulterzucken*

Zu den Rowalt-Schaltungen kann ich Dir nichts sagen, mit denen fehlt mir jegliche Erfahrung.
Der Adapter aus PicNicks Link funktioniert, soviel kann ich Dir verraten.

Aber geh mal dem Phänomen mit der Spannungsversorgung nach, das kann normalerweise nicht sein, dass Dir gleich 0,5V fehlen, wenn Du den PC ansteckst.

Da wäre auch der MAX232 ein heisser Kandidat, wenn Du die Kondensatoren verpolst, braucht der ziemlich viel Strom - ist mir auch schon mal passiert... :oops: (er hat´s aber überlebt...)

Viele Grüße

Torsten

Johannes84
26.12.2005, 23:19
so, hab jetzt dasa Problem gefunden, es lag daran, dass ich mich an der anordnung der Pins auf dem Bild orientiert habe und nicht an den Nummern der Pins...

vielen danke für die hilfe!