PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Asuro als Programmierboard



.patrick
27.06.2008, 19:03
Moin!
Ich versuche seit Tagen eine LED mit uC zum blinken zu kriegen - sprich Hello World. Mein Plan war den ATmega8 auf dem ASURO mittels IR-Transceiver zu flashen, den uC auszubauen und in den Schaltkreis mit der LED einzubauen.
Leider fängt die LED nie an zu blinken. Mittlerweile bin ich mir aber relativ sicher, dass Schaltkreis und Code korrekt sein müssen.

Jetzt ist mir folgende Idee gekommen: Kanns sein das dsa gar nicht so ohne weiteres gehen kann? Wird der uC beim ASURO vielleicht auf externen Quarz eingestellt oder die Fusebits anders (kenn mich mit denen noch 0 aus). In meinem LED Schaltkreis benutz ich nämlich keinen Quarz.

Jetzt meine Frage/ n: Liegts daran? Kann ich das irgendwie einstellen per Code etc. das der den internen Quarz nehmen soll? Oder gehts nicht anders und ich muss mir ne eigene Programmierschnittstelle mit in meinen LED-Schaltkreis mit reinbauen?

Vielen Dank für Antworten!

mfg
.patrick

radbruch
27.06.2008, 23:30
Hallo

Ja, das liegt am Quarz. Der ATMega des asuros ist auf externen Taktgeber eingestellt. Das kann man nicht ändern ohne den Kontroller zu löschen, dabei würde aber auch der Bootlader mitgelöscht werden.

Den asuro als Programmierboard nutze ich seit ein paar Tagen so:

http://radbruch.roboterbastler.de/asuro/walker/adapter2_klein.jpg (http://radbruch.roboterbastler.de/asuro/walker/adapter2.jpg) http://radbruch.roboterbastler.de/asuro/walker/adapter1_klein.jpg (http://radbruch.roboterbastler.de/asuro/walker/adapter1.jpg) http://radbruch.roboterbastler.de/asuro/walker/adapter3_klein.jpg (http://radbruch.roboterbastler.de/asuro/walker/adapter3.jpg)

Ein bisschen schief und unscharf. Im Bild sind 8 Servos an den Pins der Motoren und der Odometrie angeschlossen. Die nicht schaltbaren Pins sind Spannungsversorgung, Takt und Spannungsreferenz ;)

Gruß

mic

.patrick
28.06.2008, 01:25
Ja ist das immer so kompliziert wenn man von externen auf internen Quarz umstellen will? Kann man denn den Bootloader nicht auch wieder draufmachen oder ist das auch kompliziert? Oder nimmt man einfach immer nen neuen uC?^^

@radbruch: So wie du den Asuro als Programmierboard nutzt ist das viel zu kompliziert für mich Anfänger. ;)

Vielen Dank und mfg
.patrick

radbruch
28.06.2008, 01:49
Hallo

Ja ist das immer so kompliziert wenn man von externen auf internen Quarz umstellen will? Kann man denn den Bootloader nicht auch wieder draufmachen oder ist das auch kompliziert? Oder nimmt man einfach immer nen neuen uC?^^

Das ist deshalb so kompliziert weil es eine Schutzmassnahme des Kontrollers gegen unbefugtes "Eindringen" ist. Bei entsprechend gesetzten Fuses-Bits ist eine weitere Änderung oder Auslesen des Speichers/Programms nicht mehr möglich.

Der Bootlader ist Eigentum von arexx(?) und nicht frei verfügbar. Es gibt zwar auch einen freien Bootlader, aber in wie weit dieser dem orginalen Lader entspricht weiß ich nicht. Ein neuer Kontroller wird leer ausgeliefert und kann deshalb nicht über die serielle Schnittstelle programmiert werden.

Bau doch einfach die Taktschaltung nach, den Plan und die Bauteileliste kannst du der Anleitung entnehmen.

Gruß

mic

trapperjohn
30.06.2008, 12:11
Alternativ investierst du 15,- Eur und holst dir das Pollin Evaluationsboard:
http://www.pollin.de/shop/shop.php?cf=detail.php&pg=NQ==&a=MTY5OTgxOTk=
Da kannst du dann auch ohne Bootloader mit avrdude und seriellem Kabel flashen, Fuses setzen usw.

.patrick
04.07.2008, 13:12
Ich hab jetzt einen 16MHz Quarz angeschlossen. Aber die LED blinkt immer noch nicht. Muss man dem uC genau sagen welcher externe Quarz dranhängt (also in MHz) oder liegts dann wohl an der Schaltung oder dem Code?

trapperjohn
04.07.2008, 13:55
Siehe hier:

http://www.mikrocontroller.net/articles/AVR_Fuses#Taktquellen_Fuse_Einstellung

Hier kannst du dir deine Fuses schick zusammenstellen:
http://palmavr.sourceforge.net/cgi-bin/fc.cgi?P_PREV=&P=ATmega8

Ansonsten sind deine Angaben doch sehr vage - wie sieht deine Schaltung aus? Wie dein Code?

.patrick
04.07.2008, 14:57
Also ich hab an den fuse-einstellungen des uC aus dem ASURO nichts geändert und einfach nur den 16MHz Quarz drangehangen. Die Fuse-Einstellungen müssten also noch auf "ASURO-Standard" stehen.

Hier mal mein Code, der eine LED an Port PC5 des ATmega8 blinken lassen soll, die gegen Masse geschaltet ist:





#include <avr/io.h>
#include <util/delay.h>

//ATmega8
int main (void)
{
DDRC = 0b11111111;


while(1)
{
PORTC = 0xFF;
_delay_ms(500);

PORTC = 0x00;
_delay_ms(500);
}

return(0);
}



Muss ich evt. an den Pins für den Quarz noch was einstellen oder ist der Code so richtig?

Vielen Dank!

mfg
.patrick

Bluesmash
04.07.2008, 15:00
wie hast du den quarz angeschlossen? hast du auch die kondensatoren gegen gnd dran?

gruss bluesmash

.patrick
04.07.2008, 15:18
Den Quarz hab ich an XTAL1/2 dran (auf Polung muss man bei nem Quarz doch nicht achten?!) das sind beim ATmega8 Pin 9 und 10. Jo und dann hab ich jeden Pin jeweils noch mit nem 22pF Kondensator gegen Masse geschaltet.

trapperjohn
04.07.2008, 15:32
Du hast aber schon einen Vorwiderstand vor der LED?

.patrick
04.07.2008, 15:52
ja hab ich. hab halt ne normale Grundschaltung wie sie in allenmöglichen tuts beschrieben wird. auch die 5V-Spannungsversorgung funzt einwandfrei. An den Pins des Microcontrollers liegt auch Spannung an (gemessen mit Multimeter). Hab den obigen Code mittels ASURO programmiert und den uC dann in meine Hello-World Schaltung gesteckt, aber es funzt nix. Die LED hat noch nie auch nur geleuchtet. Habs auch schon mit anderen Pins und LEDs probiert aber da tut sich nix. Jo und Quarz hab ich ja auch schon dran.

Bluesmash
04.07.2008, 16:08
und die led ist richtigrum angeschlossen? eventuell mal drehen...

gruss bluesmash

.patrick
04.07.2008, 16:21
Ja alles schon probiert.
Ich hab mal ein Foto angehängt. Vielleicht könnt ihr an der Steckbrett Schaltung ja was erkennen was nicht funktionieren kann. Wie schon geschrieben liegen eigentlich überall wo eine Spannung anliegen muss die 5V an.

.patrick
04.07.2008, 16:25
Also der Code war doch jetztz soweit in Ordnung und es war auch richtig, dass ich an den Fuse-Einstellungen nichts ändern muss wenn ich den externen Quarz in meiner Schaltung ahb ja?

damaltor
05.07.2008, 19:00
der asuro-prozessor wird nicht starten, und auhc keine led blinken lassen. er misst an einem seiner pins die batteriespannung. solange du hier nicht eine schaltung wie beim asuro aufbaust, wird da auch nichts kommen, da er denkt dass die batterie leer wäre.

datobbs
15.07.2008, 09:46
Hi ich denke damaltor meint das.

damaltor
18.07.2008, 12:47
ganz genau. du kannst testweise zwei leds so verschalten, dass sie wie die statusled leuchten. solange keine batterispannungsprüfung erfolgt, werden diese blinken.