Forum: Mikrocontroller und Digitale Elektronik Pinbelegung beim Programmieren eines Tiny25s


von Gerd M. (revnu)



Lesenswert?

Hallo hier im forum :)

ich starte meinen ersten beitrag hier gleich mit einem problem. undzwar 
möchte ich (zum ersten mal in meinem leben) einen IC programmieren...den 
tiny25.

ich nutze ein usb-isp-programmer, der das STK500v2 protokoll nutzt.

als software nutze ich "AVR studio 4". ich habe zum flashen eine 
hex-file von einem freund...die fuse&lock-bits sind mir auch bekannt.


...allerdings kommt es erst garnicht soweit. das erste problem, was sich 
mir stellte war den tiny25 überhaupt erstmal korrekt mit dem programmer 
zu connecten. ich denke da liegt auch der fehler. (habe die 
fehlermeldung angehangen)

ich habe bei dem programmer einen 10-poligen stecker, der auch 
beschriftet ist. habe dann ein socket auf eine platine gelötet und mit 
einzelnen kabeln jeweil MOSI mit MOSI, MISO mit MISO und VCC mit PWR 
verbunden.

weil ich dachte, dass man mit diesen dreien allein den chip 
programmiert. habe dann noch RESET und SCK jeweils miteinander 
connected. habe im datenblatt vom tiny25 geguckt.

mein erster versuch war (erwartungsgemäß) nicht vom erfolg gekrönt. ich 
denke, dass der fehler, der bei avr-studio ausgespuckt wird mit meiner 
fehlerhaften pinbelegung zusammenhängt.

ausserdem wusste ich nicht so genau, was ich mit der targetspannung 
anfangen soll. da sind 2 jumper (im auslieferzustand beide in OFF 
position)
jumper 1 on = 5V, jumper 2 on = 3,3V.  beide jumper on?, kein jumper on 
? also beide jumper on ist unlogisch ja....aber im auslieferzustand 
waren beide jumper OFF; in dieser position ist das device doch praktisch 
deaktiviert oder ?
habe einfach die targetspannung auf 5V stehen, weil der tiny ja auch 
5,5V aushält. aber da ich noch sehr unerfahren bin mit 
"tiny-programming" weiß ich ehrlich gesagt nichtmal, ob ich die 
targetspannung überhaupt per jumper bestimmen muss.

könnt ihr mir bitte etwas auf die sprünge helfen ? welche pins muss ich 
denn jetzt mit welchen verbinden, damit ich zumindest damit keine 
probleme habe ?

ps.: habe alle isp-frequenzen schon durchprobiert. ich kann sie 
ändern...habe also schonmal connection zum programmer

THX

von willy (Gast)


Lesenswert?

probier mal avrisp als programmer

von willy (Gast)


Lesenswert?

ne vergiss es

von Gerd M. (revnu)


Lesenswert?

WOW TURBOANTWORT !!!! :)

hmmm...ja ich hab NACHDEM ICH GELD IN EINEN PROGRAMMER INVESTIERT HABE 
auch gelesen, dass der von dir erwähnte programmer quasi "die erste wahl 
in dieser preisklasse" ist. aber nun hab ich schon geld investiert und 
kann mir nicht einfach so einen zweiten programmer holen.....das geld 
sitz nicht so locker zur zeit :/

ich bin also leider auf diesen programmer angewiesen

von Kluchscheißernder N. (kluchscheisser)


Lesenswert?

Ich kann nirgends lesen, dass Du auch GND miteinander verbunden hast.

Also ich benutze zum ISP-Programming von Tiny12/13/15/25/45/85 folgende 
Pinbelegung:

Reset    Pin 1   Pin 8   Vcc
         Pin 2   Pin 7   SCK
         Pin 3   Pin 6   MISO
GND      Pin 4   Pin 5   MOSI

Und das hat bisher immer gut funktioniert.

von syn_error (Gast)


Lesenswert?

>habe dann noch RESET und SCK jeweils miteinander connected
du hast reset und sck zusammengeschalten?
reset pin vom avr zum reset anschluss programmer und das gleiche bei 
allen andern anschlüssen.

>jumper 1 on = 5V, jumper 2 on = 3,3V.  beide jumper on?, kein jumper on
mit den jumpern kannst du einstellen ob deine schaltung vom programmer 
mit 3,3 oder 5 volt versorgt wird oder ob deine schaltung den programmer 
versorgt was der fall ist wenn alle jumper auf 0 sind.

was aber aber zu vermeiden ist, dass deine schaltung von einer externen 
spannungsquelle versorgt wird und der programmer muss auch die schaltung 
versorgen.

ist missgl_ckter_versuch.JPG deine ganze schaltung, also ein nackter 
tiny oder ist auf der rückseite mehr?
wenn das alles war fehlt da als beschaltungs minimum ein 
abblockkondensator.
http://www.rn-wissen.de/index.php/Abblockkondensator

von Gerd M. (revnu)


Lesenswert?

danke für die antworten....

vorerst: >habe dann noch RESET und SCK jeweils miteinander connected

das soll natürlich heißen, dass ich RESET mit RESET und SCK mit SCK 
verbunden hab.

wegen der "schaltung". das ist natürlich nicht die gesamte schaltung, in 
der der tiny verbaut ist. ich habe nur, um den ic zu programmieren auf 
ein kleines stück platine ein socket gelötet, um die einzelnen pins mit 
drähten abzugreifen. quasi ein programmiersocket.

jetzt gehts mir darum die drähte mit dem 10-pin-isp port zu connecten.





UPDATE:


ES GEHT ES GEHT ES GEEEEEEHT


habe mich noch nie so über die programmierung eines tinys gefreut ....is 
ja auch mein erstes mal gewesen.

ich glaube der fahler lag darin, dass ich erst die target spannung 
falsch eingestellt hatte und dann beim zweiten versuch vergessen habe 
"read signature" zu machen.

ich muss eben noch ein bischen den umgang mit avr studio lernen.

aber das gerät funktiniert nun und ich erfreue mich daran :)

von syn_error (Gast)


Lesenswert?

>ich habe nur, um den ic zu programmieren auf
>ein kleines stück platine ein socket gelötet, um die einzelnen pins mit
>drähten abzugreifen. quasi ein programmiersocket.
trotzdem muss dort ein abblockondensator an alle versorgungsleitungen 
ansonsten kann es beim programmieren oder beim programmablauf zu 
undefinierten zuständen kommen.

von Gerd M. (revnu)


Lesenswert?

ok !!! danke für den wichtigen tipp....

ich habe hier noch einen 22 pF folienkondensator, der 500V ab 
kann....der dürfte gehen oder ? einfach bei VCC in serie schalten ne ?

EDIT: spielt die kapazität denn hierbei eine rolle ?  wenn ja, nehme ich 
einen mit höherer kapazität

von Stefan B. (Gast)


Lesenswert?

Normalerweise nimmt man als Abblockkondensator einen Keramik-Kondensator 
mit 100nF.
Der kommt so nah wie möglich parallel zum µC (ein Beinchen vom 
Kondensator an Vcc, das andere an Gnd), nicht in Serie zum µC.

von Gerd M. (revnu)


Angehängte Dateien:

Lesenswert?

ahh so wie auf dem bild hier ??  quasi um schwankungen abzupuffern :)

ich glaub ich verstehe...


habe nämlich auch nen 100n keramik hier

von syn_error (Gast)


Lesenswert?

>ich habe hier noch einen 22 pF
das 1000 bis 10000 fache wäre schon besser. :)

>folienkondensator
in der regel sollte es ein keramikkondensator mit 100nF sein.

es funktionieren aber auch manche folienkondensatoren nur dürfen die 
nicht gewickelt sein. (siehe link von oben)
beziehungsweise sollten laut hersteller für abblockung geeignet sein.

>einfach bei VCC in serie schalten ne
serie ist schlecht, der kondensator verhält sich bei gleichstrom als 
sperre.
das ganze muss parallel geschalten werden und zwar von vcc nach gnd das 
gleiche auch bei avcc und gnd.
steht aber alles in dem link von oben.

>spielt die kapazität denn hierbei eine rolle ?
bei extremwerten vom 1000 fachen schon, der wert sollte zwischen 50nf 
und 150nf liegen. :)

von syn_error (Gast)


Lesenswert?

>ahh so wie auf dem bild hier ??  quasi um schwankungen abzupuffern :)
richtig! :)

>habe nämlich auch nen 100n keramik hier
perfekt, die sollte man im hunderter pack haben. :)

von Gerd M. (revnu)


Lesenswert?

ne sind leider nur 10 :)


danke nochmal für die ambitionierte hilfe

von syn_error (Gast)


Lesenswert?

och der arme tiny hat ja gar keinen ad converter, dann entfällt 
natürlich der avcc/gnd kerko. ;)

von syn_error (Gast)


Lesenswert?

edit:
ja so ein schmarn, der hat sehr wohl einen adc nur eben keinen extra vcc 
anschluss dafür.

ist einfach schon zu spät... dann noch viel erfolg beim weitern 
programmieren und entdecken. :)

von Gerd M. (revnu)


Lesenswert?

:(

seitdem ich den abblockkondensator in der schaltung habe knallen mir die 
tinys reihenweise beim programmieren der fusebits durch.

vorher ging es.

hat jemand eine erklärung ?

von Gerd M. (revnu)


Lesenswert?

EDIT:

sie knallen nicht wirklich durch....ich kann sie programmieren...sie 
führen danach erwünschtes programm aus.....sind nach setzen der fusebits 
aber nichtmehr ansprechbar.

hab ich irgendwas falsch verstanden ?

von syn_error (Gast)


Lesenswert?

>sind nach setzen der fusebits aber nichtmehr ansprechbar.
auf welche werte hast du denn die fuse gesetzt?

von Gerd M. (revnu)


Angehängte Dateien:

Lesenswert?

ich denke auch, dass es nicht was mit dem kondensator zu tun hat. weil 
warum sollte es sonst bei allen anderen keine probleme geben. aber 
irgendwas ist das, was ich nicht peile.

von Gerd M. (revnu)


Lesenswert?

ich glaube es hat irgendetwas mit dem parameter CKDIV8 zu tun. der war 
vorher nicht gesetzt. alles was ich verändert habe ist eben jener 
parameter und noch SUT_CKSEL

aber an SUT_CKSEL dürfte es nicht liegen denk ich.

durch wegmachens des häckchens bei CKDIV8 ist mein controller doch 8 mal 
schneller geworden, soweit ich das richtig verstanden hab.

ich müsste dann die ISP-frequenz auf 2Mhz stellen oder ? das ist aber 
nicht möglich, weil ich so nen dummen usp-isp-programmer habe und sich 
dadurch (laut anleitung des programmers) "leicht abweichende 
ISP-frequenzen gegenüber einem STK500" ergeben.

ich habe gehört, dass ich der IC dennnoch über den XTAL 1 Pin retten 
könnte...wie dies ?

in einem tutorial habe ich gelesen, dass man einen tiny nicht durch die 
fuses zerstören kann, aber dass es evt schwierig werden könnte sie 
wieder lauffähig zu bekommen. ich habe hier jetzt 5 tiny25s, die zwar 
das richtige programm drauf haben und funktionieren, aber ich kann sie 
nicht mehr umprogrammieren, da ich nichtmal mehr die signatur auslesen 
kann.....ärgerlich

von \0 (Gast)


Lesenswert?

Ich sehe in deinem Fenster unten, dass du die Taktquelle auf "external 
crystal 8MegHz" gestellt hast. Ohne Quarz wird der Tiny nach dem "fusen" 
nicht mehr laufen!
Alles, was an Pin2 und Pin3 hängt, kannst du dann nicht mehr benutzen. 
Da muss ein passender Quarz hin und entsprechende Kapazitäten(geht 
manchmal auch ohne, aber toll is das nicht).
1
  _         _________
2
  |    RST-|1       8|----(V+)
3
  =        | Tiny25  |
4
  *--------|2       7|----SCK
5
XTAL       |         |
6
  *--------|3       6|----MISO
7
  =        |         |
8
|-*--------|4_______5|----MOSI
9
_________________________________________
10
11
|
12
= ist ein Kondensator, 11p wird empfohlen.
13
|                Notfalls eben ohne...
\0

von Jürgen Flieger (Gast)


Lesenswert?

Du hast deinen Tiny so eingestellt, dass er einen Quarz als Taktquelle 
nutzt. Dieser Quarz muss auch während dem programmieren angeschlossen 
sein.

Auf deinem Foto ist kein Quarz zu sehen, nur zwei enorm lange Leitungen 
an der Stelle, an der der Quarz sein sollte (PB3 und PB4).

von Gerd M. (revnu)


Lesenswert?

\0 schrieb:
> Ich sehe in deinem Fenster unten, dass du die Taktquelle auf "external
> crystal 8MegHz" gestellt hast. Ohne Quarz wird der Tiny nach dem "fusen"
> nicht mehr laufen!
> Alles, was an Pin2 und Pin3 hängt, kannst du dann nicht mehr benutzen.
> Da muss ein passender Quarz hin und entsprechende Kapazitäten(geht
> manchmal auch ohne, aber toll is das nicht).
>

ahh....ok. in der schaltung ist an der stelle ein 16 mhz quarz.

also heißt das jetzt, dass ich nachdem ich die fuse auf diese art 
umprogrammiert habe ich erst einen quarz von pin 2 zu 3 machen muss ?


das wäre nämlich kein problem. geht dann der selbe quarz aus der 
schaltung ? 16mhz...so einen habe ich hier noch rumfliegen.  könnte den 
ja so auf mein flashboard integrieren, dass er per schalter "entfernbar" 
wäre

von Gerd M. (revnu)


Lesenswert?

reicht es aus, wenn ich einfach den 16mhz quarz zwischen pb3 und pb4 
mache, oder brauche ich noch elkos mit in der schaltung ???


habe wo anders gelesen, dass man zb elkos mit verbauen muss, damit der 
externe quarz richtig takt geben kann....



EDIT:  ohh jetzt verstehe ich das schaltbild von oben erst....einiges 
war mir glatt engangen.

ich habe hier noch 22p folien, die mache ich also von 1 zu 2 und von 3 
zu 4

und von 2 zu 3 den quarz....capiche


dann bleibt wieder eine frage, wenn ich das so gemacht habe kann ich die 
tinys mit den von mir gesetzten fuses weiterprogrammieren.  aber wie 
sieht es aus, wenn ich auf dem selben board dann einer "frischen tiny" 
flashen will ?
stört der umbau auf "externen takt" etwas an der flashbarkeit des "tinys 
out of the box" ??

von syn_error (Gast)


Lesenswert?

>habe wo anders gelesen, dass man zb elkos mit verbauen muss, damit der
>externe quarz richtig takt geben kann....

>ich habe hier noch 22p folien
es sollten ausschließlich kerkos sein, siehe datenblatt seite 30.
dort sieht man auch wie der quarz zu beschalten ist.

>stört der umbau auf "externen takt" etwas an der flashbarkeit des "tinys
>out of the box" ??
nein, die pins sind tristate beim programmieren.

von Jürgen Flieger (Gast)


Lesenswert?

Mc Gyver schrieb:
> ich habe hier noch 22p folien, die mache ich also von 1 zu 2 und von 3
> zu 4

Nein! die kommen von 2 nach 4 und von 3 nach 4. Jeweils ein Ende an den 
Quarz, das andere Ende an GND.

von Gerd M. (revnu)


Lesenswert?

ohhh seh ich auch grad.  gut probiere das mal.

dennnoch meine frage kann ich das so modifizierte board dann trotzdem 
nutzen um einen tiny zu flashen, der keinen externen quarz bei den fuses 
eingestellt hat ? ....weil die beiden beinchen sind ja am "üblichen 
flashvorgang" nicht beteiligt...wird das dann einfach ignoriert ?

von Kluchscheißernder N. (kluchscheisser)


Lesenswert?

Nenne uns bitte mal den Grund, warum Du die Fuses überhaupt verändert 
hast.

von Gerd M. (revnu)


Lesenswert?

Kluchscheißer Kluchscheißer schrieb:
> Nenne uns bitte mal den Grund, warum Du die Fuses überhaupt verändert
> hast.

na weil dies nötig ist, damit der tiny in der vorhergesehenen schaltung 
seinen dienst richtig tut

von syn_error (Gast)


Lesenswert?

>weil die beiden beinchen sind ja am "üblichen
>flashvorgang" nicht beteiligt...wird das dann einfach ignoriert ?
ja, auch die quarz pins werden beim programmieren hochohmig (tristate, 
high-z) geschalten und stören somit nicht.

von Kluchscheißernder N. (kluchscheisser)


Lesenswert?

Mc Gyver schrieb:
> Kluchscheißer Kluchscheißer schrieb:
>> Nenne uns bitte mal den Grund, warum Du die Fuses überhaupt verändert
>> hast.
>
> na weil dies nötig ist, damit der tiny in der vorhergesehenen schaltung
> seinen dienst richtig tut

Dann wäre es vielleicht vorteilhaft, Hilfe beim Autor der "vorgesehenen 
Schaltung" zu suchen.

Um den Taktvorteiler CLKPR zu verändern, muss man sich nicht an der 
CLKDIV8-Fuse vergreifen, das geht viel besser per Programm im AVR.

Sinnvoll ist meist das Einschalten des BOD und das Einstellen des 
BOD-Levels sowie das Erhalten des EEP-Inhaltes beim Chip-Erase.

An den SUT- und CKSEL-Fuses vergreift man sich nur, wenn Betrieb mit 
externem Quarz oder anderem externen Taktgeber zwingend nötig ist, z.B. 
für Uhr, RS232 oder andere extrem zeitkritische Dinge. Für die meisten 
Anwendungen ist der interne Taktgeber genau genug.

An der Reset-Disable-Fuse vergreift man sich nur, wenn man den Reset-Pin 
als Portpin braucht und zuvor einen Bootloader installiert hat und 
dessen Funktion durch Tests sichergestellt hat. Dazu ist auch das 
Einstellen der Bootloader-Fuses erforderlich.

Allgemein gilt:
Ehe man sich an den Fuses vergreift, macht man sich sachkundig. Denn die 
Fuses sind eine Art "Betriebsartenschalter" des AVRs, mit denen man viel 
Nutzen, aber auch viel Schaden anrichten kann. "Mal Probieren" ist da 
die falsche Herangehensweise, da ist Sachverstand erforderlich. Und dies 
ganz besonders, weil jedes ISP-Programm die Fuses am Bildschirm anders 
darstellt. Da ist "Nachmachen, was Andere sagen" zu gefährlich, da 
sollte man genau wissen, was man tut. Wenn Dein Idol (der echte Mc 
Gyver) so unüberlegt herumprobiert hätte wie Du, dann wäre er schon in 
der ersten Folge ums Leben gekommen..... ;-(

von Gerd M. (revnu)


Lesenswert?

ich stehe mit dem autor der schaltung im engen kontakt. das mit den 
fuses hat seine berechtigung.

ach egal. soll das jeder beurteilen wie er mag. ich mache das gerne und 
lerne auf diese art. der weg ist das ziel ;)

von Gerd M. (revnu)


Lesenswert?

die tinys sind jetzt übrigens wieder alle ansprechbar.

vielen dank für alle hilfen.


ich möchte fast vermuten, dass dieser thread noch nicht geschlossen ist 
dadurch :)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.