PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : AT90S2313 zu langsam?



CKassiopaia
26.06.2007, 18:20
Hallo

Meine Freundin studiert Elektrotechnik auf Lehramt und soll für ihr Studium eine Uhr bauen (Rheinturmuhr).

Der Schaltplan kommt aus dem Internet, das Platinenlayout ist mit Target gemacht und geätzt und anschließend gelötet (leider gibts noch keine Bilder)

Allerdings läuft die Uhr zu langsam! Für 1 Sekunde braucht der uP 15 Sekunden.

Jetzt ist die Frage, woran das liegen könnte, ich habe leider auch keine Ahnung von Quarzen.

Die haben an dem Quarz mit nem Osciloskop gemessen und alles was man gesehen hat, ist, das es nicht schwingt.

Ich habe hier im Forum auch schon einen Beitrag gefunden, aber nichts passendes gefunden.

Jetzt einige Fragen:
1. Das Programm ist für einen 4 MHz-Quarz geschrieben, die Zähler sind schon für einen 8MHz Quarz umgeschrieben. Muss man sonnst noch was ändern? Könnten auch die Kondensatoren am Quarz für 4Mhz ausgelegt sein? Wonach muss man sich da richten?

2. Wie muss man einen 8MHz Quarz anregen? Wir haben auch nichts gefunden.

3. Könnte es am Layout liegen? (Auf dem Plan sind die Verbindungen für VCC und GND nicht gezeichnet, sind mit draht aber nachgezogen - der Professor hat das übersehen gehabt)

Danke!

recycle
26.06.2007, 19:42
Hast du einen AT90S2313 oder einen ATTiny2313?

Der ATTiny hat einen internen Oscillator, da könntest du vergessen haben den Quarz über die Fusebits zu aktivieren.

Der AT90S2313 hat soweit ich weiss noch keinen internen Oscillator. D.h. wenn der Quarz falsch angeschlossen wäre würde er vermutlich eher gar nicht als zu langsam arbeiten.

Ich würde den Fehler eher irgendwo in der Software vermuten.

CKassiopaia
27.06.2007, 13:32
Hallo

Also, ich habe gerade ebend erfahren, dass das Programm ist für einen AT90S2313 geschrieben ist, aber im Einsatz ist ein ATTiny2313!

Leider kenn ich mich mit ATs nicht aus, wir haben nur 8051 und ARM7 in der Vorlesung behandelt. Und meine Freundin kennst sich damit auch nicht aus.

Ich habe gelesen, das die uPs Kompatibel sind. Das Programm muss aber dennoch angepasst werden, oder?

SprinterSB
27.06.2007, 15:47
Diese µC sind pinkompatibel, aber nicht binärkompatibel und der ATtiny2313 kennt mehr Instruktionen, andere SFRs und mehr Fuses.

by the way...wenn ich mir den Schaltplan und das Layout so anguck...das macht ihr besser selber ;-) Das kriegt ihr allemal besser hin als der Prof!

wkrug
27.06.2007, 17:31
by the way...wenn ich mir den Schaltplan und das Layout so anguck...das macht ihr besser selber Das kriegt ihr allemal besser hin als der Prof!
Vieleicht das Platinenlayout im Funkturmdesign ?! - Wär echt der Bringer.
Und dann gleich noch mit DCF77 Empfänger, dann kann man sich auch noch die Stelltaster sparen.
Codeschnipsel dafür hab ich hier im Roboternetz schon mal gesehen.
Ein sehr schönes Projekt!!!

Zu euerem Controllerproblem.
Habt ihr schon mal bei ATMEL geguckt ob es da eine Application Note - Replace AT90S2313 by Attiny 2313 gibt ?
So wie dieses hier ? http://www.atmel.com/dyn/resources/prod_documents/doc4298.pdf
Da sind meistens alle Änderungen aufgeführt, die man zum Anpassen eines Programmes an den neuen Controller durchführen muß.
Die Fuses müssen natürlich auch auf externen Takt umgestellt werden.
Sinnvoll wär es auch einen Belastungskondensator am Quarz durch einen Trimmkondensator zu ersetzen um die Uhr auch abgleichen (Ganggenauigkeit) zu können.

CKassiopaia
24.07.2007, 19:08
So...Sie hat sich einen Programmieradapter für den Parallelport gebastelt und jetzt versuchen wir den ATTiny2313 zu Programmieren...

Wir nutzen Ponyprog2000 und die Hex-Datei ist mit dem AVR Studio 4 erstellt....

Aber es kommt immer die Fehlermeldung: "Device missing or unknown device (-24)"

Wenn wir dann auf Ignore-klicken, können wir zumindest das "alte" Programm und die Fuse-Einstellungen lesen....aber mehr geht anscheind nicht....woran kann das liegen?

EDIT: Wie müssen die Einstellungen bei "I/O port setupt"sein? Welche Ports müssen invertiert werden? Nur wenn Reset invertiert ist können wir lesen, aber was ist mit den anderen?

Hubert.G
24.07.2007, 20:25
Im PonyProg gibts unter Setup / Interface Setup den Button Probe, da muss ein OK kommen, sonst geht garnichts. Calibrate sollte man auch durchführen.
AVR ISP I/O und LPTx einstellen.
Beim Start der Übertragung messen ob Reset auch wirklich auf 0V geht.
Was bei Ignore angezeigt wird ist zumeist Unsinn.

CKassiopaia
24.07.2007, 20:27
probe gibt immer OK! Egal, was man für Einstellungen angibt!
AVR ISP I/O und LTP1 ist eingestellt...

P.S.: Was muss da eigentlich für ein Kondensator rein? Und wofür ist der gut bzw. was ist, wenn der nicht richtig ist?

Hubert.G
24.07.2007, 20:34
Was für einen Kondensator? Es gibt eine Menge verschiedener ProgAdapter.

CKassiopaia
24.07.2007, 20:38
Das ist der Prog-Adapter mit dem SN74LS245
http://www.avr-asm-tutorial.net/avr_de/beginner/hardware.html#ParPort
Nur den Kondensator kann man nicht richtig entziffern (Sie hat 10nF genommen)

Hubert.G
24.07.2007, 20:46
Das könnten auch 100n sein, spielt aber keine Rolle, der ist für die Entkopplung der Versorgungsspannung. Wichtig ist das der GND des 25pol Stecker mit dem GND der Schaltung verbunden ist.
Was tut sich am Reset?

CKassiopaia
24.07.2007, 20:51
Gnd ist verbunden und Reset geht auf 0V!

EDIT: Eigentlich versuchen wir gerade erstmal nur die Fuses zu programmieren, so dass der externe Quarz angeregt wird!

Aber wir können die Fuses zwar auslesen aber nicht veränder...bzw. bei jedem erneuten auslesen kommt was anderes heraus!

Hubert.G
24.07.2007, 20:57
Ist der Tiny2313 noch neu oder war schon was drauf, sonst mal einen neuen probieren. Es könnte sein das die Fuses schon verstellt sind.

CKassiopaia
24.07.2007, 21:02
Da ist das Programm drauf, was für den AT90S2313 geschrieben wurde...alerdings haben das die Mitarbeiter in der FH gemacht
...aber wie keine Ahnung!

CKassiopaia
24.07.2007, 21:02
Achso..."Erase" klappt garnicht. Da hilft auch kein Ignore!

Hubert.G
24.07.2007, 21:18
Ich würde mal einen anderen Tiny2313 probieren, oder läuft das Programm, wenn auch nicht korrekt. Dann hat der Programmer einen Fehler, da müsste man mit einem Oszi die Pin ansehen ob und was sich tut.

CKassiopaia
24.07.2007, 21:27
Das Programm läuft, nur halt zu langsam!

linux_80
24.07.2007, 21:30
Hallo,

ist es nun ein Tiny2313 oder ein AT90S2313 (ist nicht dasselbe !) ?
Ist der richtige angegeben ?

Der Tiny hat auch internen Takt, 1MHz glaub ich wenn er neu ist.
Auch wenn der auf externen Quarz eingestellt ist, kann er zu langsam sein, denn da gibts noch das CKDIV8 Fusebit, dabei wird er Takt nochmal durch 8 geteilt.

Der AT90S hat keinen internen Takt, sondern läuft immer mit dem externen. Der hat auch nur 2 Fusebits an denen man drehen könnte, die haben aber nix mit Quarz zu tun !

CKassiopaia
24.07.2007, 21:37
Also...der µC, der eingesetzt wird ist ein ATTiny. Das Programm wurde aber für einen ATS902313 geschrieben, übersetzt und geladen (angeblich, ich war nicht dabei :-))

Und die Unterschiede kennen wir nun mitlerweile...
Das Programm läuft "einwandfrei" aber halt mit den Einstellungen für den ATS90... und somit ohne "richtig" gesetzte Fuse-Bits.

Wir wollen jetzt eigentlich nur die Fusebits ändern, aber das tuts nicht!

Es kommt immer diese Fehlermeldung!

Hubert.G
24.07.2007, 21:37
Ich habe mir das Layout noch mal angesehen. Es sieht so aus, man sieht es nicht eindeutig, als ob auf den Pin PB5 bis PB7 LEDs drauf hängen, da könnte es sein das diese das programmieren verhindern. Kannst du die vieleicht abstecken?

CKassiopaia
24.07.2007, 21:39
Achso....der Tiny läuft jetzt wahrscheinlich auf dem internen Takt (ich meine 128kHz) und somit zu langsam! Und Extern ist ein 4MHz Quarz angeschlossen...

CKassiopaia
24.07.2007, 21:41
Die LEDs haben wir abgezogen...ist ja nur ein Stecker! Aber immer das gleiche Problem...

Edit: Gibt es andere "einfache" Tools um über Parallel-Port zu Programmieren? Mit dem AVR-Studio gehts ja nicht, oder doch?

linux_80
24.07.2007, 21:53
Wenn das ein Tiny ist, sollte auch der Code für einen Tiny compiliert werden, sonst passen die Adressen der ISRs nicht zusammen, der Tiny hat ein paar mehr und auch an anderer Stelle als der AT90S !

Also müsst ihr erstmal nur einen schnelleren Quarz dranhängen um ihn wieder ansprechen zu können.

Ihr könnt Bascom zum ändern der Fusebits nehmen, da wird das etwas anders dargestellt, für manchen durchaus verständlicher :-k
Einfach ein Blanko-Programm in Bascom erstellen, in dem zumindest der Tiny2313 angegeben ist, und die Quarzfrequenz, dann auf Programmieren gehen, nur halt nicht das Programm flashen, nur die Fusebits ändern, und wieder zurückschreiben.

Hubert.G
24.07.2007, 21:55
Ich kenne keine einfacheren Tools. Mit dem AVR-Studio braucht man andere Programmer. Genau kontrolliert das nicht MISO und MOSI vertauscht ist.
Ich glaube eher der Tiny läuft mit 500kHz, es wird der Clock/8 divider nicht abgeschaltet sein, läuft er auch wenn du den Quarz herausnimmst? der wird aber warscheinlich eingelötet sein.

CKassiopaia
25.07.2007, 19:22
Hallo

Ich habe mal den Programmer aus dem RN-Wiki nachgebaut...ist das richtig, dass der Reset-Eingang kontinuierlich auf 0 Volt liegt? (Dauer-Reset?) Oder kann ich dann davon ausgehen das der Baustein defekt ist? (SN74ls244)

Hubert.G
25.07.2007, 20:26
Nein, der darf nur wärend des Programmieren auf 0V sein. Entweder Baustein defekt oder ein Kurzschluss auf einem Pin.

CKassiopaia
25.07.2007, 21:02
komisch....klappt alles wohl nicht! Kann das an Win2000/XP liegen?
hab das irgendwo gelesen

Hubert.G
25.07.2007, 21:50
XP macht bei mir keine Probleme