mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Atmega8 fusebit´s


Autor: Carlito Schnipp (carlito_s)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also ich hab da nen Hex-file und nen eep file die sollen in den Atmega8
In der Anleitung steht"

"Note:
For compatibility reason fuses (higher byte only) must be also 
programmed for ATmega8 processor, (parameters for SP12 -wF11111111), the 
command line sounds like:
sp12 -wF11111111 -wpfC avrot.hex -wefC avrot.eep"

Ich hab jetzt aber den USBASP und z.B.das Testmodul radig
darin wollte ich das Ding programmieren mit der GUI von Jens
In der Anleitung des hex-files steht:
sut1=1
Sut0=1
cksel.3=1
cksel.2=1
cksel.1=1
highfusesbyte.=11111111

UNd,man solle die fusebits vor den files programmieren.Ich hab dann 
versucht in der GUI lower fuse und higherfuse alles auf 1 zu stellen 
also nix angehakt.Dazu musste ich in den Expertenmodus,um das spien weg 
zu kriegen,weil nur dann 11111111 da stand
Aber leider zeigt das dann Fehler beim setzen der highbits an und beim 
auslesen ist quasi spien wieder angehakt sodaß da nu nicht 11111111
sondern 11011111 steht
Was mach ich da verkehrt??
Alles andere scheint zu gehen.

LG
Nicola

Autor: Thomas Eckmann (Firma: Thomas Eckmann Informationst.) (thomase)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Carlito Schnipp schrieb:
> Dazu musste ich in den Expertenmodus,um das spien weg
>
> zu kriegen,weil nur dann 11111111 da stand

Wenn das SPIEN abgeschaltet ist, war's das mit der Prgrammierung über 
SPI.

Das kann man nicht abschalten!

mfg.

Autor: Carlito Schnipp (carlito_s)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
upps das ging aber schnell :-)
Ja dann geht das quasi garnicht mit dem Highfusesbyte 11111111
Frage mich gerade was der Autor sich dabei gedacht hat.
Andererseitz,warum kann man das überhaupt an und abhaken ,wenns doch 
nicht geht.?
Außerdem braucht das Ding ja nur einmal programmiert zu werden und dann 
nichtmehr ähnlich wie die C-Pic,s
Die Frage ist ja nur geht das Programm auch ohne diese Einstellung?
Da ist ein 4Mhz quartz in der Schaltung,damit soll das Ding wohl 
getaktet werden.


LG

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Warum willst Du mit aller Macht ISP deaktivieren?
Und das auch noch, bevor Du (per ISP) das Programm drauf bringst?

...

Autor: Carlito Schnipp (carlito_s)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jo Hannes,wenn ichs mir so recht überlege,stelle ich mir diese Frage 
auch gerade.
Dann muß ich irgendwas falsch verstanden haben.

"
Note:
For compatibility reason fuses (higher byte only) must be also 
programmed for ATmega8 processor, (parameters for SP12 -wF11111111), the 
command line sounds like:
sp12 -wF11111111 -wpfC avrot.hex -wefC avrot.eep""

Wo soll da der Sinn sein,wenn danach nix mehr geht?

""Programming sequence:
(if you run SP12 under Windows 2000/XP you have to install giveio driver 
in advance - part of software package)
- switch off the AVROT power
- start SP12 once to initialize LPT port (write zeroes)
- connect programmer to AVROT
- switch on the AVROT power (LCD uninitialized)
- do programming (start SP12 with required parameters)
Example of command that performs programming of flash and
EEPROM:
sp12 -wpfC avrot.hex -wefC avrot.eep
All is done in 20 seconds...
Remember: EEPROM must be always programmed after AVR memory clear - it 
contains all LCD texts!
- switch off the AVROT power
- disconnect programmer.""

Also normalerweise wird der Atmega in de Schaltung programmiert mit so 
einem Wiederstandsgewurschtel am LPT-port.Hab aber keinen LPT port nur 
usb,deshalb will ich das mit dem USBasp machen.aber nicht in der 
Schaltung sondern extern.

Hab halt gedacht: "fragst mal hier nach,befor ich den Pavel kontakte

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Carlito Schnipp schrieb:
> Jo Hannes,wenn ichs mir so recht überlege,stelle ich mir diese Frage
> auch gerade.
> Dann muß ich irgendwas falsch verstanden haben.

Nicht unbedingt.

>
> "
> Note:
> For compatibility reason fuses (higher byte only) must be also
> programmed for ATmega8 processor, (parameters for SP12 -wF11111111), the
> command line sounds like:
> sp12 -wF11111111 -wpfC avrot.hex -wefC avrot.eep""
>
> Wo soll da der Sinn sein,wenn danach nix mehr geht?

Vielleicht will man damit die Spreu vom Weizen trennen? Wer sich nicht 
auskennt, fällt drauf rein. Es ist also ein Schutz gegen Nachbau durch 
Unwissende. Aber ich kenne das Projekt nicht und möchte da nicht 
allzuviel behaupten.

>
> ""Programming sequence:
> (if you run SP12 under Windows 2000/XP you have to install giveio driver
> in advance - part of software package)
> - switch off the AVROT power
> - start SP12 once to initialize LPT port (write zeroes)
> - connect programmer to AVROT
> - switch on the AVROT power (LCD uninitialized)
> - do programming (start SP12 with required parameters)
> Example of command that performs programming of flash and
> EEPROM:
> sp12 -wpfC avrot.hex -wefC avrot.eep
> All is done in 20 seconds...
> Remember: EEPROM must be always programmed after AVR memory clear - it
> contains all LCD texts!
> - switch off the AVROT power
> - disconnect programmer.""
>
> Also normalerweise wird der Atmega in de Schaltung programmiert mit so
> einem Wiederstandsgewurschtel am LPT-port.

Nicht unbedingt, es gibt auch ISP-Programmer mit eigener Intelligenz, 
die ohne Wi(e)derstandsgewurschtel auskommen, ohne Bitbanging arbeiten 
und somit auch an modernen PCs (ohne LPT und COM) funktionieren. Ich 
nutze z.B. das STK500 und den AVR-Dragon.

> Hab aber keinen LPT port nur
> usb,deshalb will ich das mit dem USBasp machen.aber nicht in der
> Schaltung sondern extern.

Der USBasp ist doch auch für ISP in der Schaltung geeignet.

Wenn mir einer vorschreibt, ich soll mit dem ISP-Programmer den 
ISP-Modus des AVRs deaktivieren, bevor ich das Programm flashe, dann 
sinkt mein Vertrauen auf Null. Dann soll er sich sein Projekt in die 
Haare schmieren.

>
> Hab halt gedacht: "fragst mal hier nach,befor ich den Pavel kontakte

...

Autor: Carlito Schnipp (carlito_s)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich werd dem Fritzen mal auf sen Zahn fühlen und erstmal ohne isp killig 
versuchen.
Andererseits,kann ich mir nicht vorstellen,daß ein OM mit eingetragenem 
Int.Rufzeichen blödsinn verzapft,ohne da schnell mal auf´s Füsschen 
getreten zu bekommen.anyway!
Vlt geht die Sache ja auch ohne Highbyte fuse 11111111
Vielen Dank erstmal

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du solltest die Fuses nicht als geheime magische Zahl betrachten, 
sondern die Bedeutung jedes einzelnen Bits ergründen. Die Erklärung 
findest Du im Datenblatt des Controllers, einmal zusammengefasst im 
Kapitel Fusebits, dann detailliert in den einzelnen Kapiteln zu der 
Hardware, auf die das jeweilige Fusebit wirkt. Mit Bleistift, Papier und 
etwas Fleiß bekommst Du die Infos schnell zusammengetragen.

Es ist durchaus möglich, dass es keine böse Absicht des OMs war, sondern 
dass er das einfach übersehen hat. Und funktionieren tut es trotzdem, 
weil das Verändern der SPIEN-Fuse im ISP-Modus gesperrt ist, dazu 
braucht es den Hochvolt-Programmiermodus (parallel beim großen AVRs, 
seriell bei kleinen AVRs, wo die Pins für parallel nicht ausreichen, 
siehe Datenblatt des AVRs).

Andererseits ist es auch bei Funkamateuren beliebt, einen kleinen Fehler 
einzubauen, den Insider sofort erkennen und korrigieren, an dem sich 
Unwissende aber schon mal die Zähne ausbeißen. Das dient trotz 
HAM-Spirit der Selektion des Nachnutzerkreises und Schutz des geistigen 
Eigentums.

Wie es im Einzelfall aussieht, weiß ich nicht, es interessiert mich auch 
nicht wirklich. Ich würde auf Kontaktaufnahme verzichten. Mach' Dich 
betreffs Fusebits sachkundig (Fachwissen schadet nie), überprüfe seine 
Vorgabe auf Plausibilität und korrigiere den evtl. vorhandenen Fehler.

...

Autor: Carlito Schnipp (carlito_s)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So hab jetzt diesen Parallel dongle gebastelt und nen alten PC aus´m 
Keller geholt mit Parallelschnitstelle,dann den Atmega in die Schaltung 
gestöpselt und probiert.
Der hat auch gebraten,allerdings gabs ne Fehlermeldung bezüglich der 
Fusebits
Wrong number of fusbit wF11111111
Da ich den Befehl mit copy and paste eingegeben hab, kanns nur sein ,daß 
der Autor Müll fabriziert hat.
Naja im Wörtchen Funkamateur steckt ja das Wort AMATEUR.
Werd das Projekt begraben
Vielen Dank für di Hilfen

LG

Autor: Joachim K. (minifloat)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Carlito Schnipp schrieb:
> Naja im Wörtchen Funkamateur steckt ja das Wort AMATEUR.
> Werd das Projekt begraben

Ersteres würde ich nicht behaupten. Ich habe an der Uni in den 
Anleitungen zu den Praktika auch schon an 2-3 Stellen Fehler entdeckt. 
Und die wurden teilweise von renommierten Profs oder Lehrbeauftragten 
aus der Industrie erstellt. Wir sind auch nur Menschen, dürfen also 
Fehler machen. Dabei bin ich keineswegs der Meinung, mein generelles 
Kompetenzniveau liege über dem der Profs und LB.

Zweiteres finde ich darüberhinaus sehr schade.
Versuchs doch mal mit einer anderen Flasher-/Brenner-Software, wie z.B. 
AVRDUDE oder PonyProg2000.
Für AVRDUDE gibt es bisweilen sehr gut gemachte Grafische 
Benutzerinterfaces, die gleich eine Kurzerklärung zu den Fuses 
bereitstellen.
Bei Ponyprog, welches gleich eine GUI besitzt, muss man nur beachten, 
dass ein Haken bei den Fuses bedeutet, dass das betreffende Bit = 0 ist.

mfg mf

Autor: Helfer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> "Note:
> For compatibility reason fuses (higher byte only) must be also
> programmed for ATmega8 processor, (parameters for SP12 -wF11111111), the
> command line sounds like:
> sp12 -wF11111111 -wpfC avrot.hex -wefC avrot.eep"
         ^
Programmiert nicht die high fuse

> -wF1...

1 bedeutet unprogrammed. Den Resetpin kann man so nicht disablen. Dazu 
müsste man an der entsprechenden Position in der richtigen Fuse eine 0 
verwenden.

> Wrong number of fusbit wF11111111

Auch ein Spezialfall der SP12 Software. Die Anzahl der erlaubten Bits 
ist vom verwendeten AVR abhängig. Am einfachsten findet man diese Zahl 
heraus, wenn man die Fusebits mal aus liest und dann diese wieder zurück 
schreibt.

Also Doku des SP12 lesen und anwenden.

Die Anleitung des Originalautors ist IMHO keine exakte Anleitung 
welche Fuses zu setzen sind, sondern eine aus dem Gedächnis geschriebene 
Notiz, dass du das Setzen der Fuses nicht vergessen sollst, wenn der 
Atmega8 kompatibel zum vorher verwendeten xxx funktionieren soll.

Und dass sie Syntax in etwa wie angegeben ausgesehen haben könnte, als 
der Autor das Projekt erstellt hat.

Wenn es ein freies Projekt ist, kannst du ja noch einen Link zu dem 
Projekt nachschieben und ich schaue mir an, welche Fuses Sinn machen.

> Vielleicht will man damit die Spreu vom Weizen trennen? Wer sich nicht
> auskennt, fällt drauf rein. Es ist also ein Schutz gegen Nachbau durch
> Unwissende. Aber ich kenne das Projekt nicht und möchte da nicht
> allzuviel behaupten.

Das wenige ist schon fies genug :(

Autor: Joachim K. (minifloat)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Helfer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> The heart of controller is a single chip RISC controller AVR AT90S4433,
> manufactured by Atmel.

=> AT90S4433 ersetzt durch Atmega8

Programmierung des AT90S4433

> sp12 -wpfC avrot.hex -wefC avrot.eep

Unter dem Link gibt es keine Angaben zu einer speziellen Taktquelle. 
Schaltplan sehe ich keinen bzw nur Verweis auf ein Funkamateur-Heft aus 
2000. Die Programmierung geht im Link auf Fuses nicht ein. d.h. 
wohlmöglich keine Änderung der Fuses des AT90S4433.

AVR081: Replacing AT90S4433 by ATmega8 - Atmel Corporation
http://www.atmel.com/dyn/resources/prod_documents/...

Relevant ist Table 5 letzte Spalte. Anzupassen ist die Taktquelle auf 
den Takt, der beim AT90S4433 verwendet wurde bzw. was in der Source 
(sehe ich auch keine) verwendet wird.

Autor: Peter W. (Firma: Huddel und Brassel Ltd.) (jaffel) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielleicht sollte man den Autor der Seite mal anschreiben, dass er ueber 
seine Projekte einen Zusatz setzt.

*Fuer Kinder unter 6 Jahren und Menschen, die nicht selbststaendig 
denken koennen, nicht geeignet*

SP12 ist eben nicht PonyProg oder AVRDude.

So sollten die Settings funktionieren.

lfuse: 0x7d hfuse: 0xd9

http://www.engbedded.com/fusecalc/

Im Uebrigen finde ich es sehr arm, Projekte die man quasi fertig auf's 
Auge gedrueckt bekommt, schlecht zu machen, nur weil der copy n paste 
Nachbauer keine 3min investiert, um sie zu verstehen.

Solche Menschen verdienen es nicht anders, massig Geld und Zeit 
auszugeben um es dann mangels Eigeninitiative in die Tonne kloppen zu 
duerfen.

>>>=> AT90S4433 ersetzt durch Atmega8

Ach das auch noch. Au man.

Autor: Joachim K. (minifloat)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also welche Taktquelle, Brownout nötig usw. musste ich schon bei 
mehreren Nachbau-/DIY-Projekten selbst herausfinden. Ein bisschen 
Reverse Engineering kann nicht schaden.

Manchmal habe ich bewusst andere Werte genommen, als angegeben.
Wenn ich z.B. weiß, dass ich den Atmel in sehr EMV-verseuchter Umgebung 
betreiben werde, setze ich eben CKOPT für den "fullswing crystal 
oscillator".
Im Original-Projekt war das in dem Fall anders.

mfg mf

Autor: Helfer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>>>>=> AT90S4433 ersetzt durch Atmega8
>Ach das auch noch. Au man.

Nicht so schlimm wie es sich anhört, bzw. es ist ein "historisches" 
Projekt, das aber durchaus noch nützlich sein kann.

Zum Zeitpunkt des Projekts war AT90S4433 anscheinend noch Stand der 
Technik. Der FA-Artikel ist aus 2000 und da war das Projekt bereits 
aufgebaut...

Der Autor unter dem Link hatte selbst noch eine Anpassung auf den 
Atmega8 gemacht, nachdem der AT90S4433 nicht mehr erhältlich war.

Autor: Peter W. (Firma: Huddel und Brassel Ltd.) (jaffel) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Finde ich jetzt auch nicht sonderlich schlimm, aber haette man in der 
Frage zumindest mal erwaehen koennen. So bin ich jetzt einfach davon 
ausgegangen das das .hex und .eep fuer einen ATmega8 ist und einfach 
nicht lief, weil die fuse-settings nicht stimmen.
Ich weiss nicht in wie weit die beiden kompatibel sind, aber wenn der 
Quelltext angepasst werden muss, dann nuetzen auch die richtigen fuse - 
settings nichts.

Eine Angabe des Links, von der das Projekt stammt, halte ich auch fuer 
selbsverstaendlich. Allein schon als Dankeschoen fuer die Arbeit des 
Autors.

Welche Software er da flashen will wissen wir ja noch immer nicht.

Autor: Carlito Schnipp (carlito_s)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mini Float schrieb:
> Zweiteres finde ich darüberhinaus sehr schade.
> Versuchs doch mal mit einer anderen Flasher-/Brenner-Software, wie z.B.
> AVRDUDE oder PonyProg2000.
Die Seite habe ich von hier:
http://www.dxzone.com/cgi-bin/dir/jump2.cgi?ID=22700

Ja hab ich schon.Z.B mit dem Ponyprog200 und dem JDM,leider ging das 
nicht bzw lies sich zwar programmieren,aber funzte dann nicht.Später 
versuchte ich dann den Atmega mit dem USBASP anzusprechen,aber leider 
hab ich ihn irgendwie verfust,er wird nicht mehr erkannt :-)(beim Pony 
heist haken gesetzt 0,Haken nicht gesetzt 1)

Naja es ist mir um des Geldeswillen nicht so arg,wenn mal was nicht 
funktioniert,die Kosten,sind ja marginal.
Außerdem,will ich das Projekt des Autors nicht unbedingt 
zerreißen,obwohl ich natürlich leicht angesäuert war.Hab den Mund mal 
wieder zu voll genommen.Andererseits,wenn man schon was ins Netz 
stellt,sollte es auch irgendwie Rund sein Und weil ich mommentan an 
einer ähnlichen Schaltung sitze,die ich auch irgendwie nicht richtig zum 
Funktionieren bringe,muß ich mich für eine entscheiden und die Andere 
zumindest mal in die Ecke legen.
Und das ist diese hier:

http://www.df0fkw.datenoase.de/index.php?option=co...

Jetzt erzählt mir bloß nicht,daß das nix für Anfänger ist,ich hab den 
Verfasser auch schon total zugetextet mit Fragen.Außerdem,hab ich schon 
etliche Projekte aus z.B der Elektor Bzw hier aus dem Forum mit Erfolg 
nachgebaut und die gehen Wunderbar!

Es ist ja auch nich so,daß ich mich nicht mit der Materie befassen 
will,aber das Thema ist eigentlich derart komplex,daß ich eigentlich das 
Projekt in die Ecke legen müsste und mich erstmal min 1/2 Jahr mit µc,s 
und Elektronikgrundlagen beschäftigen müsste.Und gegen reine Theorie,hab 
ich irgendwie ne Abneigung,geb ich ja zu.Wie auch immer!

Anfänger zahlen Lehrgeld(wie schon erwähnt wurde) Na und? Ich hab halt 
nu mal die Werkstatt,die Ausrüstung und etliche tausende Teile für lau 
übernommen,Zeit hab ich auch,also muss das irgendwie parallel laufen

Autor: Carlito Schnipp (carlito_s)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ach ja, was mir noch einfällt1
Viele Projekteim Netz mit µc´s haben ja ein hexfile dabei,während der 
Verfasser den Quellcode nicht veröffentlicht.Dann sollte der schon 
funktioniern,sonst macht das keinen Sinn,da man dabei ja eh nix 
verändern kann.Und wenn man fit genug ist was selbst zu schreiben,kann 
man geich ´n eigenes Projekt machen.

Also ich mache da schon einen Unterschied zwischen einer 
Projektvorstellung als Anregung zur Eigenentwicklung und einer 
Beschreibung eines Projektes mit Anleitung,Schaltplan layout und 
programm.Da wird man sich doch,auch wenn da kein Rechtsanspruch drauf 
besteht mal aufregen dürfen wenn´s net hinhaut wie es soll;-)

Autor: Carlito Schnipp (carlito_s)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Peter W. schrieb:
> So bin ich jetzt einfach davon
> ausgegangen das das .hex und .eep fuer einen ATmega8 ist und einfach
> nicht lief, weil die fuse-settings nicht stimmen.
> Ich weiss nicht in wie weit die beiden kompatibel sind, aber wenn der
> Quelltext angepasst werden muss, dann nuetzen auch die richtigen fuse -
> settings nichts.

Auf der Seite steht ganz klar:

Zitat:
- Migration to processor type ATmega8 (AT90S4433 is no more available) - 
no changes in circuit diagram / PCB necessary
- Longer access time for LCD module to perform the action (reported some 
LCD modules are not fast enough)
- Minor modification of status message

Note:
For compatibility reason fuses (higher byte only) must be also 
programmed for ATmega8 processor, (parameters for SP12 -wF11111111), the 
command line sounds like:
sp12 -wF11111111 -wpfC avrot.hex -wefC avrot.eep

Zitat:ende
Wobei bei der Fehlermeldung die ich bekam, davon ausgehen kann,daß der 
Verfasser,wie schon vermutet dies aus dem Bauch heraus geschrieben hat 
und selbst nicht überprüft hat.Obendreien,kenne ich das von Pic, so,daß 
die Konfiguration im hex-file vorhanden ist und da Normalfall nix dran 
gedreht werdem muss!

Helfer schrieb:
> Unter dem Link gibt es keine Angaben zu einer speziellen Taktquelle.
> Schaltplan sehe ich keinen bzw nur Verweis auf ein Funkamateur-Heft aus
> 2000. Die Programmierung geht im Link auf Fuses nicht ein. d.h.
> wohlmöglich keine Änderung der Fuses des AT90S4433.

Taktquelle ist ein 4Mhz quarz
Komunikation geht über einen Max232,der auch gleich die Neg 
kontrastspannung bereitstellt.Das Ganze auf einer schön kleinen 
doppelseitigen Platine mit unstandartmässigem ISP Anschluss,ader dann 
quasi direkt mit der Lpt schnittstelle verbunden wird

schaltplan:
http://ok1dx.dyndns.org/constructions/avrot/AVROT%201_4.pdf

Autor: Carlito Schnipp (carlito_s)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Peter W. schrieb:
> So sollten die Settings funktionieren.
>
> lfuse: 0x7d hfuse: 0xd9
>
> http://www.engbedded.com/fusecalc/

Das habe ich probiert und das klappte prima.
Vielen Dank nochmal dafür.
mit dem fusecalc werd ich mich  mal mehr beschäftigen müssen(hab mir ja 
extra die Testplatine gebaut),aber erstmal will ich verständlicherweise 
die Schaltung zum rennen bringen.

Und weil das Display immernoch nur Balken anzeigt,werd ich da wohl noch 
bissel was drannsitzen

LG

Autor: Peter W. (Firma: Huddel und Brassel Ltd.) (jaffel) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> mit dem fusecalc werd ich mich  mal mehr beschäftigen müssen

Nein, Du solltest die zwei Seiten im Datenblatt lesen, dann brauchst Du 
auch keinen fuse-calculator. Den hatte ich Dir nur angehangen, weil ich 
nicht weiss mit welchem Programm Du diese setzt.

Autor: Joachim K. (minifloat)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Carlito Schnipp schrieb:
> Obendreien,kenne ich das von Pic, so,daß
> die Konfiguration im hex-file vorhanden ist und da Normalfall nix dran
> gedreht werdem muss!

Ist bei den Atmels nicht so. Man kann einige Optionen, die mit den Fuses 
möglich sind, per Software während das Programm läuft, 
deaktivieren(betrifft insbesondere Debug-Schnittstellen).

Der Schaltplan
(
Carlito Schnipp schrieb:
> schaltplan:
> http://ok1dx.dyndns.org/constructions/avrot/AVROT%201_4.pdf
)
enthält den berühmten "AVCC mit AREF verbunden" Fehler. Das muss man 
nicht machen, das geht auch per Software. Habe mi jetzt den Code nicht 
angesehen.
Gefährlich deswegen, weil sich auch die interne Referenzspannung auf dem 
AREF-Pin herausführen lässt. Ein Bit im falschen Register zur Falschen 
Zeit gesetzt heißt qualvoller Tod für den Atmega. Weiß jetzt aber nicht 
wie das beim AT90Sdingsda ist.

Nachdem ich den Schaltplan gesehen habe, tippe ich auf folgendes Fusing:
(x = gesetzt, bei "mehrbittigen" Fuses mit Notiz erklärt)
x SPIEN
x CKOPT (Frequenz größer als 3MHz)
x EESAVE(EEPROM bei neuem flashen erhalten(Winkel-Einstellungen etc.))
CKSEL[3..0] = 1111 (Ext. High-Freq. Crystal)
Ab jetzt kannst du dich entscheiden:
SUT[1:0] = 10 -> 16k Clocks +  4ms
SUT[1:0] = 11 -> 16k Clocks + 64ms *

Beispielerklärung:
*lässt den Quarz in 64ms anschwingen, danach werden wie "Warmstart" 
direkt nach Reset 16000 Clocks abgewartet, bis losgelegt wird.

mfg mf

Autor: Carlito Schnipp (carlito_s)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mini Float schrieb:
> CKSEL[3..0] = 1111 (Ext. High-Freq. Crystal)

Hm so ganz blick ich da net durch.Stehen die 4 einsen für je 
Cksel3...cksel2..cksel1 usw=? Also 0001 wäre dann cksel0 gesetz alle 
andern nicht bei int takt zB?
Also bei der Site die Peter.W erwähnte

http://www.engbedded.com/fusecalc/

kommt mit dieser Einstellung raus L 0x6f h 0xc7 Bzw L 0x7f h 0xc7

Und wieviel Mhz entsprechen  low mid oder highfrequenz? Ich meine im 
vergleich,mit 16Mhz wär das ja eher low oder mid? .Ich muss mich noch 
mehr einlesen

Jedenfalls habe ich mir heut Nachmittag ne Platine gemacht von dieser 
Seite hier.
http://www.der-hammer.info/hvprog/index.htm
Glaub das ist extra für Leute wie mich,damit, sie keine Atmels verjodeln 
können ;-)

LG

Autor: Klaus De lisson (kolisson)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>> Und wieviel Mhz entsprechen  low mid oder highfrequenz? Ich meine im
>>vergleich,mit 16Mhz wär das ja eher low oder mid? .Ich muss mich noch
>>mehr einlesen

Hab ich mich auch immer gefragt, zumal da nix besonders hohes angeboten
wird. Die erfahrung zeigt aber, dass alles über 4 als High angesehen 
werden
kann.

Gruss Klaus

p.s.
Wie Hannes Lux dass schon schrieb:
Es lohnt sich zu verstehen was die Fuses bedeuten.
Es sind eigentlich nur ne Art Eprom, die dem Prozessor sagen,
wie er starten soll.

Autor: Joachim K. (minifloat)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Carlito Schnipp schrieb:
> Hm so ganz blick ich da net durch.Stehen die 4 einsen für je
> Cksel3...cksel2..cksel1 usw=? Also 0001 wäre dann cksel0 gesetz alle
> andern nicht bei int takt zB

genau. wobei 0 Programmiert heißt und 1 nicht programmiert. Das kommt 
aus Eprom-Zeiten: Hatte man einen Eprom mit UV-Licht gelöscht, standen 
alle Bits auf 1(jede Speicherzelle enthält 0xFF). Man musste nun nur die 
Bits, die 0 sein sollten bzw. Bytes, die was anderes als 0xFF enthalten, 
brennen.
Ich sehe die Fuses nur als "Konfigurationsspeicher" und kein Konstrukt 
aus realen "Sicherungen". Das kommt eher aus der GAL- und PAL-Welt.

Carlito Schnipp schrieb:
> Und wieviel Mhz entsprechen low mid oder highfrequenz? Ich meine im
> vergleich,mit 16Mhz wär das ja eher low oder mid? .Ich muss mich noch
> mehr einlesen

Schau dir das Atmega8 Datenblatt genau an. Dann weißt du eh mehr 
Bescheid als jeder Fusecalculator dieser Welt über den Atmega8 weiß.
Also:
Wenn ein Quarz verwendet wird(Crystal resonator, nicht Ceramic)
gibt es ab 3MHz für CKSEL[] nur diese Einstellung:

CKSEL[3..0] = 1111 (Ext. High-Freq. Crystal)

und für SUT[] nur 3 Einstellungen:

SUT[1:0] = 01 -> 16k Clocks +  0ms <=
SUT[1:0] = 10 -> 16k Clocks +  4ms
SUT[1:0] = 11 -> 16k Clocks + 64ms

Die erste Option(<=) fällt weg, da das Datenblatt sagt: machst du nur 
wenn Brownout Detection angeschaltet ist, was wir ja nicht haben.

Ich habe nun mit fusecalc ermittelt:
Lo: 0xEF Hi: 0xC9
oder
Lo: 0xFF Hi: 0xC9

Damit ist SPI angeschaltet, CKOPT aktiviert, BOOTSZ steht noch auf 
default Werten(verwenden wir auch nicht, jedenfalls hast du nix von nem 
bootloader erzählt).
mfg mf

PS: wenn EESAVE an sein soll, muss das Highbyte natürlich 0xC1 
sein(beide Fälle)

Autor: Carlito Schnipp (carlito_s)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hm..ckopt könnte ma auch weglassen denke ich soll strom sparen hab ich 
gelesen.
Jo das Dtenblatt,hab ich ehrlicher weise noch nicht so genau gelesen.Mit 
diesem Fachenglisch hab ich so meine probleme
Also wenn ich das mal alles so zusammenfasse,was ich bissher las,sollte 
mann eigentlich nur von spien und rstdsb die Finger lassen,sofern man 
externe Taktquellen nutzt? oszillatoren hab ich hier zm Glück 
massenweise rumliegen

Um nochmal auf die o.g Schaltung zu kommen
Ich denke der kann mit 11111111 nur die l-fuses meinen
Demnach käme ich af 0xff und 0xdf

Also nochmal:
Note:
For compatibility reason fuses (higher byte only) must be also
programmed for ATmega8 processor,(soll wohl heissen nur an den H-fuses 
muss gestellt werden)
command line sounds like:
sp12 -wF11111111 -wpfC avrot.hex -wefC avrot.eep(soll dann also heissen 
L-fuses sind alle nicht gesetzt,H-fuses je nach dem) und dann .hex und 
.eep laden.
So würde ich das mal rein subjektiv interpretieren.

Tatsache ist,das morgen meine Teile vom Reichelt kommen und ich erstmal 
den Hammer HV-Prog zammschustern werde.Und dann kann mich nix mehr 
aufhalten :-)

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Solange Du die Fuses nicht bitweise und einzeln betrachtest, wirst Du 
Deine Missverständnisse nicht los. Da wird Dir auch der Hammer-Brenner 
nicht helfen.

Die Fuses sind nunmal die Konfigurations-Schalter, mit denen die 
Betriebsart des AVRs eingestellt wird. Wie willst Du ein Gerät bedienen, 
dessen Schalter Du nicht kennst? Wenn Du Dich auf Andere verlässt, dann 
bist Du verlassen. Da bleibt nur ein Weg: Sich selbst sachkundig zu 
machen.

Und ja, mittels CKOPT kann man Strom sparen. Aber von nix kommt nix, ein 
auf Sparflamme laufender Oszillator neigt eher zum Aussetzen als ein mit 
voller Amplitude schwingender.

Und nein, ein AVR ist kein Multimedia-Konsum-Gerät, was sich intuitiv 
(und mit "mal probieren") bedienen lässt. Zum souveränen Umgang mit AVRs 
ist Fachwissen und Verständnis erforderlich. Wenn schon das 
"Fachenglisch" das KO-Kriterium ist, dann sollte man darüber nachdenken, 
ob es nicht sinnvoller ist, sich stattdessen lieber einen neuen 
Klingelton zu gönnen.

Also nimm Dir Stift und Papier und schreibe Dir die Fusebits aus dem 
Datenblatt heraus. Und schau nicht nur bei der Zusammenfassung im 
Kapitel Programmierung/Fusebits, sondern auch in den einzelnen Kapiteln, 
in denen die Hardware beschrieben ist, auf die das einzelne Fusebit 
wirkt. Alles Andere führt zu nichts.

...

Autor: Carlito Schnipp (carlito_s)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jo,das war deutlich!
Werd ich mir zu Herzen nehmen
Und das mit dem HV-prog ist ja nur,um evntl verjodelte µc´s wieder zu 
aktivieren
Das Englisch ist kein KO kriterium,sondern erschwert die Sache nur,was 
im Endeffekt bedeutet,daß einfach mehr Zeit ins Lande geht.Aber Rom,ist 
ja auch nicht an einem Tag erbaut worden.Außerdem,hab ich auch schon 
einige Texte in Deutsch zu dem Thema gefunden,mir das Testbord für den 
Atmega8 gebaut,fange also mehr oder weniger erst 
an.Nichtsdestotrotz,möchte ich natürlich angefangene Sachen auch mit 
Erfolg zu ende bringen,nur deshalb kam ich überhaupt zu dem ganzen 
Thema.
Wenn es von vorneherein nur um µc´s gegangen wäre,hätte ich mit Theorie 
und einer einfachen selbstprogrammierten Blinkschaltung angefangen.

Autor: Carlito Schnipp (carlito_s)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So Nach dem ich nu mit einigen Fuse-Einstellungen probiert habe,hab ich 
immernoch keine vernünftige Disp-Anzeige
Das bringt mich zu dem Schluss,daß nur was mit der Schaltung sein kann.
Nach dem ich zum wiederholten Male den Schaltplan und die Leiterplatte 
untersucht habe,ist mir aufgefallen,daß die Datenport´s PD4-7 für das 
Disp genutzt werden.Diese sind im Plan am Displ-con mit D0-D3 
eingetragen und so,hab ich sie auch am LCD angeschlossen.
Jetzt hab ich aber überall gelesen,daß ein Displ welches im 4-Bit Modus 
betrieben wird die Datenleitungen D4-D7 benutzt und D0-D3 unbeschaltet 
sind.
Sollte ich deshalb mal die Dateneingänge tauschen?.Der Rest dürfte 
richtig sein RS-an RS, STB-an E, R/W an GND.Led und kontrast geht.

Noch ne Frage bezgl.Des Atmega8:
Ist es eigentlich egal,was man zuerst programmiert also 
flash,eeprom,fuse´s
oder ist das Wurscht?

LG

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Carlito Schnipp schrieb:
> So Nach dem ich nu mit einigen Fuse-Einstellungen probiert habe,

Probieren ist falsch, da besteht die Gefahr, dass man sich aussperrt. 
Hier ist Wissen (Lesen und Verstehen) angesagt, ist auf die Dauer 
billiger.

> hab ich
> immernoch keine vernünftige Disp-Anzeige
> Das bringt mich zu dem Schluss,daß nur was mit der Schaltung sein kann.
> Nach dem ich zum wiederholten Male den Schaltplan und die Leiterplatte
> untersucht habe,ist mir aufgefallen,daß die Datenport´s PD4-7 für das
> Disp genutzt werden.Diese sind im Plan am Displ-con mit D0-D3
> eingetragen und so,hab ich sie auch am LCD angeschlossen.
> Jetzt hab ich aber überall gelesen,daß ein Displ welches im 4-Bit Modus
> betrieben wird die Datenleitungen D4-D7 benutzt und D0-D3 unbeschaltet
> sind.

Dies ist richtig und das kannst Du auch in den Datenlättern der 
LCD-Module verschiedener Hersteller nachlesen.

> Sollte ich deshalb mal die Dateneingänge tauschen?.

Ja sicher doch, im 4-Bit-Modus wird das LCD über Bit 4-7 angesprochen, 
siehe Datenblätter der LCDs, andere Projekte und auch gewisse Totorials.

> Der Rest dürfte
> richtig sein RS-an RS, STB-an E, R/W an GND.Led und kontrast geht.
>
> Noch ne Frage bezgl.Des Atmega8:
> Ist es eigentlich egal,was man zuerst programmiert also
> flash,eeprom,fuse´s

Das kommt auf die Situation an. Ist die EESAVE-Fuse nicht aktiv 
(Auslieferungszustand), dann wird beim Chip-Erase der EEPROM gelöscht. 
Viele Programmer führen beim Beschreiben des Flash das Chip-Erase 
automatisch aus. Wurde der EEPROM vorher beschrieben, dann ist er 
natürlich wieder gelöscht. Also immer erst Chip-Erase, dann Flash, dann 
EEPROM, dann Fuses, dann Lockbits, falls erforderlich.

> oder ist das Wurscht?

Neee, nicht immer.

>
> LG

...

Autor: Carlito Schnipp (carlito_s)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hannes Lux schrieb:
> Probieren ist falsch, da besteht die Gefahr, dass man sich aussperrt.
> Hier ist Wissen (Lesen und Verstehen) angesagt, ist auf die Dauer
> billiger.

Ja genau das habe ich ja,also Sinvolle fuses probiert
M.E sind die Fuses nicht so relevant,solange ext takt durch Quarz und 
evntl ckopt,alles Andere wird so wie ich das sehe garnet gebraucht.

Was mir jetzt noch nicht ganz Klar ist,ist das mit dem BOOTRSC
Wird das nur gebraucht,wenn ein Bootlader oder so genutzt wird?

Hannes Lux schrieb:
> Ja sicher doch, im 4-Bit-Modus wird das LCD über Bit 4-7 angesprochen,
> siehe Datenblätter der LCDs, andere Projekte und auch gewisse Totorials.

Genau das las ich im Datenblatt ,die Frage war ja auch nur:"im 
4-Bit-Modus wird das LCD über Bit 4-7 angesprochen" oder" im 4-Bit-Modus 
wird das LCD NUR über Bit 4-7 angesprochen? Überall wo ich was 
las,ging´s immer nur um Bit4-7
Also werd ich das mal umlöten,denn auf dem Board ist ne LED,und die geht 
genau in dem Moment an,wenn das EEP programmiert ist und der controller 
startet.Somit denke ich mal,daß der µc geht und es nur die 
Datenleitungen sind

Autor: Hannes Lux (hannes)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Carlito Schnipp schrieb:

> Hannes Lux schrieb:
>> Ja sicher doch, im 4-Bit-Modus wird das LCD über Bit 4-7 angesprochen,
>> siehe Datenblätter der LCDs, andere Projekte und auch gewisse Totorials.
>
> Genau das las ich im Datenblatt ,die Frage war ja auch nur:"im
> 4-Bit-Modus wird das LCD über Bit 4-7 angesprochen" oder" im 4-Bit-Modus
> wird das LCD NUR über Bit 4-7 angesprochen? Überall wo ich was
> las,ging´s immer nur um Bit4-7

NUR über das High-Nibble, was Anderes habe ich noch nicht gesehen. Ich 
hänge Dir mal eine Kurzanleitung an.

> Also werd ich das mal umlöten,denn auf dem Board ist ne LED,und die geht
> genau in dem Moment an,wenn das EEP programmiert ist und der controller
> startet.Somit denke ich mal,daß der µc geht und es nur die
> Datenleitungen sind

Ja, mach...

...

Autor: Carlito Schnipp (carlito_s)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dat war´nix!
Nur schw Balken.

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Carlito Schnipp schrieb:
> Dat war´nix!
> Nur schw Balken.

Werd' mal konkret. Wie "schw Balken"?
Nur obere Zeile? (Initialisierung stimmt nicht)
Beide Zeilen? (Kontrast stimmt nicht)

Bring doch mal ein eigenes Programm rein um das LCD zu testen. Denn wer 
weiß, ob das "Gefundene" überhaupt läuft. Es gibt viel Müll im Netz.

...

Autor: Carlito Schnipp (carlito_s)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schwarze Balken meint beim rehöhen der -vo kommen dann irgendwann 2 
Balken.Also ganz normal
Das Display ist YL162-90 vom pollin das hatte ich bis letztens am 
Transistortester vom Markus mit 2 Batterien wegen Neg-kontrastspannung.
Dort hab ich jetzt das Blaue reingemacht und somit dieses hier 
frei,zumal der Max202 auf dem Bord ja Neg zur Verfügung stellt.Kontrast 
und Hintergrund gehen also.Die Datenleitungen habe ich jetzt nicht so 
angeschlossen wie im Schaltplan, sondern D0 auf D4, D1 auf D5 D2 auf D6 
D3 aud D7...des Display´s............schwarze Balken heist somit auch: 
Kein Text :-(

Autor: Carlito Schnipp (carlito_s)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Endlich hab ich´s
Hatte am ende n pin zuviel ;-) ez geht alles.Serial muss ich noch 
testen,aber das Displ geht und jetzt sehe ich auch,daß das programm im 
Atmega funzt

Vielen Dankeschön,auf jeden Fall,hab ich jetzt schon ne Menge über Avr´s 
gelernt

LG

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.