PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Atmega32 auf externen Takt umgestellt, zurück geht nicht..



ElTransistor
01.01.2008, 18:38
hi!

ich hab vor ein paar tagen mein rncontrol zusammengelötet und mit isp das demoprogramm reingespielt..dann ging es ans fusen, weil es nicht den quarz benutzt hat..und weil keine einstellung zu klappen schien, habe ich dann dummerweise alle cksel's auf 0 oder 1 (bei ponyprog weiß ich das irgendwie nich was nun was war :-# ) gestellt und mich damit erfolgreich ausgesperrt :(


so nun um den fehler wieder zu entfernen habe ich gelesen dass man einen externen takt an XTAL1 am atmega anlegen muss..
da ich hier einen asuro habe, hab ich ihn einfach als takterzeuger genommen, die frontled (pin pd6) an XTAL1 am rn-control geklemmt, masse vom asuro mit masse vom rn-control verbunden und den asuro die frontled mit irgendwas mit 18khz blinken lassen..

das geht auch halbwegs gut, der lautsprecher vom rn-control klickt langsam (sollte er auch, wegen dem demo-programm) allerdings komischerweise auch ohne dass ich das rn-control an strom anschliesse 8-[ ...jedenfalls wenn ich im ponyprog versuche die fuses auszulesen meldet es mir dass kein controller angeschlossen is..ich höre beim zugriff aber ein paar extra-klicks vom rn-control, also schliesse ich daraus dass irgendeine verbindung schon vorhanden is..

so, irgendwas mache ich nun bestimmt falsch...vielleicht sogar etwas wobei ihr die hände über dem kopf zusammenschlagen werdet.. aber nur zu, weist mich auf meinen fehler hin! was hab ich hier dummes angestellt dass es nich klappt?

thx..

Hubert.G
01.01.2008, 21:01
Die 18kHz werden doch etwas zu langsam sein.
Hier stimmen die Haken mit PonyProg überein.
http://palmavr.sourceforge.net/cgi-bin/fc.cgi

robocat
01.01.2008, 21:41
der fuse-calculator (Huberts link) ist prima.

mit der frequenz wirst du ein wenig herumspielen müssen, bei mir hat das letzte mal das hier geklappt:

// rescue
// atmega wiederbeleben
// erzeugt rechtecksignal an PIN B2
// funktioniert mit 1MHz

#include <avr/io.h>
#include <avr/iom8.h>

int main( void )
{
DDRB=4;
while(1)
{
PORTB=4;
asm("NOP");
asm("NOP");
PORTB=0;
asm("NOP");
asm("NOP");
}
return 0;
}

das war übrigens ein abenteuer, weil ich obiges programm in den ersatz-controller schreiben wollte, und stattdessen schusseligerweise auf write fuses geklickt habe. damit hatte ich auch den 2ten atmega ins koma geschickt. mit dem 3tten board (recht viel mehr hätte ich auch nicht mehr gehabt), hat es dann geklappt, und beide controller konnten wieder aufgeweckt werden.

gruesse

ElTransistor
01.01.2008, 23:16
hi..jetz klickt er etwas schneller, aber es tut sich trotzdem nix :(

Hubert.G
02.01.2008, 08:43
Wenn du einen 555 hast, kannst du dir auch einen Taktgenerator machen, aber mit 5V betreiben.

ElTransistor
02.01.2008, 15:38
hallo hubert. mit 555 meinst du sicher einen NE555? nein, als anfänger habe ich sowas leider nicht im haus.

ich hab jetz die frequenz nachgemessen, es kommen 160khz raus. das ist ja nun nicht zu wenig, ich lese hier im forum dass man so ab 100khz schon loslegen können sollte?

robocat
02.01.2008, 16:17
müsste eigentlich gehen, hängt aber auch davon ab, welche fuses du wie verstellt hast. ein "ordentliches" signal greifst du schon ab (also nicht etwa hinter der led) und legst es an PD6? und der ist auch nicht irgendwie auf masse gelegt oder sowas?

im notfall muss ein neuer atmega her. aber versuch es erst nochmal, bei mir hat es auch immer erst nach ein paar versuchen geklappt.

die massen der beiden schaltungen sind schon verbunden oder?
EDIT: aso, steht ja oben, dass das passt.

mit spannung sind auch beide schaltungen versorgt?

gruesse

ElTransistor
02.01.2008, 16:28
müsste eigentlich gehen, hängt aber auch davon ab, welche fuses du wie verstellt hast. ein "ordentliches" signal greifst du schon ab (also nicht etwa hinter der led) und legst es an PD6? und der ist auch nicht irgendwie auf masse gelegt oder sowas?

im notfall muss ein neuer atmega her. aber versuch es erst nochmal, bei mir hat es auch immer erst nach ein paar versuchen geklappt.

die massen der beiden schaltungen sind schon verbunden oder?
EDIT: aso, steht ja oben, dass das passt.

mit spannung sind auch beide schaltungen versorgt?

gruesse

hi, das mit dem signal verunsichert mich jetzt etwas, also die led ist natürlich dabei nicht ausgelötet..heißt sie hängt auch noch an dem ganzen teil dran und blinkt..inwiefern beeinflusst es das signal?
welche fuses ich jetzt damals verstellt habe weiß ich leider nicht mehr. ich weiß nur dass es die cksel's waren, ich hab irgendwann dann alle auf 1 oder 0 gestellt und dann war feierabend ;)
spannung haben auch beide, der atmega scheint ja das demo-programm auszuführen (die klicks vom lautsprecher sind ja deutlich zu hören)...
dass ich evtl einen neuen atmega brauche befürchte ich auch schon fast, es klappt irgendwie einfach nich!

robocat
02.01.2008, 16:57
die led darf ruhig dranbleiben, das hat bei mir trotzdem bisher funktioniert. wollte nur sichergehen, dass du das signal auf der "richigen seite" der led abgreifst.

ansonsten fällt mir leider auch nicht mehr viel ein, ausser die frequenz zu variieren. mir fällt noch ein, dass ich pony vor dem wiederbeleben neu "kalibriert" habe, aber ob das etwas hilft oder überhaupt von bedeutung ist, weiss ich nicht.

wenn sich abzeichnet, dass du dich da noch tagelang rumärgern kannst, würde ich bei reichelt oder pollin (oder sonst einem laden wo die dinger nicht viel kosten) einfach ein paar atmegas ordern.

gruesse

ElTransistor
02.01.2008, 17:22
das kalibrieren hats jetzt auch nicht rausgebracht..dann werd ich wohl die tage nen neuen bestellen, "ein paar" werde ich hoffentlich nicht brauchen, auch wenn du das vielleicht in weiser voraussicht geschrieben hast ;)

robocat
02.01.2008, 17:37
nein, da hatte ich nicht den hintergedanken, dass du den nächsten auch bald kaputtgefused hast ;)
ich verbastel die atmega8 nur recht häufig in kleinen projekten, weil man nicht viele weitere bauteile braucht und sehr viel damit machen kann, deshalb bin ich immer ganz froh, wenn ich noch ein paar davon in der bastelkiste habe.

gruesse

ElTransistor
06.01.2008, 19:17
hi!

ich hab das jetz nochmal versucht und es doch hinbekommen (bei mir waren es doch keine 1MHz vom asuro und mit dem code oben hab ich nun genau 1 MHz.. aber ich bin einfach zu blöd für ponyprog!

ich schaffe es einfach nich die fuses so zu setzen dass es geht, entweder ich setzte sie und es bringt nix oder ich setzte sie und bin wieder ausgesperrt!

darum meine bitte:

kann jemand mir GANZ genau ALLE fuses verraten wie ich sie für das RN-Control in ponyprog einstellen muss (mit den bescheuerten invertierten häckchen)
ich versuch das nun schon seit einer stunde und es kommt einfach nix :(

Hubert.G
06.01.2008, 21:33
Für die Takteinstellung sind SUT und CKSEL verantwortlich, für einen 8MHz Quarz gehören Haken an SUT1 CKSEL1 CKSEL0
Dann gehört noch ein Haken bei SPIEN, die bei BOOTSZ sind egal.
Im AVR-Fuse-Calculator sind die Haken für PonyProg eingezeichnet.

ElTransistor
06.01.2008, 22:17
hi..

danke aber da stimmt etwas nicht, ich habe zwar einen 16MHz quarz (ich schätze dass das keinen großen unterschied macht?) aber wenn die die häckchen so setze wie du es schreibst, reagiert der atmega nicht. es sei denn, und das is das komische, ich setze an XTAL1 eine lange messleitung, dann klickt es gaaanz langsam los..

ich hab auch bei anderen einstellungen probleme, z.b. leuchten die led's bis auf 2 nicht, egal ob ich JTAG ein oder aus stelle..

Hubert.G
07.01.2008, 09:24
Bei 16MHZ gehören die Haken nur bei SUT1 und CKSEL0. Hast du die richtigen Kondensatoren vom Quarz gegen GND, sollen 22p sein.

ElTransistor
07.01.2008, 17:56
jetzt scheint es geklappt zu haben, danke! ich weiß leider nicht wie sich das geräusch vom summer anhören sollte, aber diesmal ist es wesentlich heller als vorher (klingt immernoch etwas langsam?)

das problem mit dem JTAG besteht aber weiterhin, egal ob aus oder an, die 6 led's leuchten nicht beim testprogramm (einmal hat eine von denen geleuchtet als ich den takt extern hatte, also sind die zumindest richtig rum angeschlossen denke ich..)

Hubert.G
07.01.2008, 18:08
Bei JTAGEN gehört kein Haken.
Bei den LEDs würde ich mal messen und mich nicht auf das leuchten verlassen.
Ein Summer ist nicht das richtige um die Taktfrequenz festzustellen, eine LED in Sekundentakt wäre da schon besser.

ElTransistor
07.01.2008, 18:13
hi, natürlich verlasse ich mich nich auf den summer, ich habe halt dieses testprogramm von der wiki-seite auf dem teil laufen, und da hat der summer halt zuerst sehr verzerrte tiefe töne von sich gegeben welche jetz etwas heller sind und schneller ablaufen. jetz da das board läuft werde ich dann mal sehen dass ich mich da einarbeite..
nur dass man sich nicht auf das leuchten der led's verlassen soll verstehe ich noch nich ganz, entweder leuchten die doch oder eben nich, warum sollte da eine spannung sein wenn sie nicht leuchten? laut anleitung sollten die leuchten wenn der JTAG aus ist..

*edit* ich habe jetz das programm so geändert dass es 1x in der sekunde ein krächzen auf dem summer erzeugt, und das timing scheint zu stimmen. also ist das quarz-mysterium gelöst :)

*edit2* zum glück ist mir eingefallen einfach aus spass nicht das testprogramm in C zu kompilieren sondern das .hex testprogramm von der cd zu benutzen..tja was soll ich sagen, das sieht schon ganz anders aus, da piepst es ungefähr 10x schneller als mit dem c-programm. ich werde dann wenn ich hoffentlich eine lösung für die led's finde einen neuen thread im rn-control unterforum posten wenn es recht ist..

*edit3* (was für ein arbeitsreicher tag \:D/ ) ich bin der sache weiter auf die schliche gekommen.. erstens: das makefile das ich mit Mfile gemacht habe scheint aus irgendeinem grund den atmega langsam anzusteuern. ich habe das makefile von der cd genommen, und damit geht nun auch das piepen so wie es sein sollte (das is ja sogar wirklich eine melodie :-({|= ).
dann habe ich das demo-programm so geändert, dass in der while schleife das lauflicht dauernd läuft, und dann ging das auch. problemquelle: die tasten werden beim demo-programm anscheinend nich abgefragt!

im basic-testprogramm von der cd piepst er aber wenn ich auf jede taste drücke, also sind sie in ordnung! ich schätze damit kann ich den thread hier als gelöst ansehen (danke für eure hilfe) und werde mich an anderer stelle zu den fehlern im c-programm äußern :)

*edit4* man das war eine schwere geburt :D ok das mit den tasten war mein fehler: ich habe erst jetzt durch die suchfunktion gemerkt dass ich einen jumper auf UREF setzen musste! anscheinend war er im basic-programm nich nötig da die werte da besser ausgelotet sind..nun geht auch das alles, damit ist der fall endgültig gelöst :)