Forum: Mikrocontroller und Digitale Elektronik Was fehlt an der Minimalbeschaltung am ATTiny26


von Firma Rast und Ruhe (Gast)


Lesenswert?

Hallo

Ich habe ein Programm für den ATTiny26 geschrieben das soweit auf dem 
STK500 mit internem Oszilator 1Mhz läuft.

Jetzt habe ich einen Lochrasterplatine mit Spannungsregler 5V gebaut und 
das Ding läuft nicht.

Angeschlossen sind folgende Pins

5=Vcc mit +5V
6=GND
5+6 verbunden mit einem 33nF Kondensator

16=GND

Das müsste doch für einen Minimalbeschaltung reichen ?



Gruss

Firma Rast und Ruhe

von Michael U. (Gast)


Lesenswert?

Hallo,
kommt darauf an, was passieren soll...

Du hast ja nicht verraten, was der eigentlich tun soll.

Ansonsten solltest Du noch AVcc (Pin 15) an 5V legen, das ist die 
Betriebsspannung für den PortA, an dem passiert ohne Saft z.B. nicht 
allzuviel sinnvolles.

Gruß aus Berlin
Michael

von Firma Rast und Ruhe (Gast)


Lesenswert?

Hallo Michael

Ich messe auf PORT A0 eine Spannung.
Dies wird vermutlich der Fehler sein.
Ich werde es sofort ausprobieren.


Gruss

Firma Rast und Ruhe

von Thomas (kosmos)


Lesenswert?

die Resetbeschaltung fehlt, es müssen über einen RC-Filter 5V auf den 
Resetpin damit er loslegt. AVCC und AGND ist die Betriebsspannung/Masse 
für den Analogwandler der PortA funktioniert trotzdem nur der 
Analogwandler nicht, wenn man ihn also nicht benötigt braucht man nichts 
an AVCC und AGND zu legen und wenn doch gleich einen LC Filter nehmen 
wies im Datenblatt angegeben ist.

von Michael U. (Gast)


Lesenswert?

Hallo,

muß auch so laufen, der Tiny hat eine interne PowerOn-Resetschaltung.

Gruß aus Berlin
Michael

von Thomas (kosmos)


Lesenswert?

ok die muss man aber auch passend konfigurieren.

von A.K. (Gast)


Lesenswert?

> AVCC und AGND ist die Betriebsspannung/Masse für den
> Analogwandler der PortA funktioniert trotzdem nur der
> Analogwandler nicht,

Es ist beim Tiny26 wie bei allen anderen AVRs mit ADC auch: "AVCC is the 
supply voltage pin for Port A and the A/D Converter". Ohne AVCC 
funktioniert auch der Port nicht, nicht nur der ADC.

von Firma Rast und Ruhe (Gast)


Lesenswert?

Geht immer noch nicht.

Ich habe der dem Lochrasterboard PB7 als Taktausgang genommen.
PB7 wäre Reset. Ich müsste also die Fuse:"Reset Disable" setzten und 
könnte ihn dann nicht mehr ISP programmieren?


Gruss


Firma Rast und Ruhe

von Thomas (kosmos)


Lesenswert?

ich beschallte AVCC und AGND eigentlich immer habe bin aber der Meinung 
das ich auf dem Steckbrett schon ohne AVCC gearbeitet habe. Nun gut 
wenns im Datenblatt steht wird schon stimmen. Aber das Problem liegt ja 
nicht am AVCC.

von A.K. (Gast)


Lesenswert?

> Ich habe der dem Lochrasterboard PB7 als Taktausgang genommen.

Lochraster klingt nach "sehr leicht zu ändern". Was hiermit dringend 
empfohlen sei. Reset wegfusen macht man nur einmal.

von Firma Rast und Ruhe (Gast)


Lesenswert?

< Reset wegfusen macht man nur einmal.>

Ja leider. Muss ihn jetzt wieder zum Leben(Programmierbar machen) 
erwecken.


Gruss

Firma Rast und Ruhe

von Jörg B. (manos)


Lesenswert?

STK500 und HV?

von Thomas (kosmos)


Lesenswert?

Hallo, da ich heute ein LC-Display vom Port A angesteuert habe kann ich 
sagen das AVCC und AGND nicht umbedingt beschalten werden müssen, 
zumindestens funktioniert das bei den Eingäng eines Displaycontrollers 
die auch eher hochohmig sind und deshalb nicht viel Strom ziehen. LEDs 
hab ich daran allerdings noch nicht probiert.

von Thilo M. (Gast)


Lesenswert?

Im Auslieferzustand ist am RESET-Pin der Pullup aktiviert, es kann also 
ohne Last nix gemessen werden.
Und auch wenn der auf low gehen sollte macht der µC einen Reset und 
läuft neu an. Für einen Ausgang MUSST du den RESET disablen. Ich würde 
dazu raten einen anderen Pin hierfür zu benutzen.

von Klaus (Gast)


Lesenswert?

Hallo Leute!
Habe genau dasselbe Problem! Moechte mit einem tiny26 einfach nur eine 
LED zum Blinken bringen. Schaffe es nicht (frust...).
Habe Vcc, AVcc (5V) und beide GNDs angeschlossen. C zwischen Vcc u GND. 
/RESET mit pull-up auf Vcc und ein Taster auf GND.
LED mit 330 Ohm-R in Serie von Vcc auf PB5. Verbinde ich den PB3 mit GND 
leuchtet die LED. Kann den tiny flashen, RC-freq setzen usw.

Der C-code setzt DDRB auf 0x7F und danach PORTB auf 0x00.
Eigentlich sollte die LED leuchten - bloss sie tuts nicht!

Mit nem mega16 funktionierts problemlos!

Hat nicht noch jemand eine Idee wo der Hund begraben is??
Danke, klaus.

von Thomas (kosmos)


Lesenswert?

schick mal den Code

von Thomas (kosmos)


Lesenswert?

wenn du portb auf 0 setzt wenn er als Ausgang definiert ist dann tut er 
gegen Masse durchschalten, also musst du die LED an VCC anschließen. Die 
LED muss also dauerhaft auf VCC liegen und man schaltet Sie dann auf 
Masse(LED leuchtet) oder nicht (LED leuchtet nicht)

von Gast (Gast)


Lesenswert?

PB7 ist /Reset, also nicht den ganzen PortB auf Low jagen.
Lieber mit sbi/cbi arbeiten.

von Simon K. (simon) Benutzerseite


Lesenswert?

Gast wrote:
> PB7 ist /Reset, also nicht den ganzen PortB auf Low jagen.
> Lieber mit sbi/cbi arbeiten.

Der IC kann sich nicht selbst resetten*. Solange die passende Fuse 
gesetzt ist, ist der Pin ein ganz normaler Reset Pin und vom Port 
disconnected.

*Okay er könnte schon - Ich meinte nur in diesem Falle.

von Klaus (Gast)


Lesenswert?

ich hau bald den hut drauf!!!

habs nun auch auf nem steckboard mit nem nietnagelneuen tiny26 
ausprobiert.
Minimalschaltung:

Masse auf beide GNDs
Vcc auf Vcc und AVCC
Vcc - LED - R1K - PA0

code hab ich noch einen im Netz gesucht - siehe unten.
Kanns sein dass meine avr-gcc zu alt is?

ii  avr-libc       1.0.3-1        Standard C library for Atmel AVR 
development
ii  avrp           1.0beta3-5     Programmer for Atmel AVR 
microcontrollers
ii  avrprog        0.2.1-9        Programmer for Atmel AVR 
microcontrollers
ii  binutils-avr   2.14-1         Binary utilities that support Atmel's 
AVR ta
ii  gcc-avr        3.3.2-1        The GNU C compiler (cross compiler for 
avr).
ii  simulavr       0.1.2.1-1      Atmel AVR simulator


Hier der Code. (Im Makefile habe ich -mmcu=attiny26 definiert.)

#include <avr/io.h>


#define true  1


// delay for a minimum of <millis>
// with a 1Mhz clock, the resolution is 1 ms
void delay_ms( unsigned int millis )
{
    // Note: this function is faulty, see avrm8ledtest-0.2.tar.gz for
    //       updated code.
    unsigned int  outer1;
    unsigned int  outer2;

    for ( outer1 = 50;  outer1;  outer1 -- )
    {
        for ( outer2 = 1000;  outer2;  outer2 -- )
        {
            while ( millis ) { millis --; }
        }
    }
}


int main( void )
{
    /* INITIALIZE */
    /* enable PA0 as output */
    DDRA |= _BV(PA0);

    /* BLINK, BLINK ... */
    while ( true )
    {
        /* switch the LED off */
        PORTA &= ~_BV(PA0);
        delay_ms( 500 );

        /* switch the LED on */
        PORTA |= _BV(PA0);
        delay_ms( 500 );
    }
}


ick wees nich mehr weiter...

danke fuer jeden Input!

gruesse,
Klaus

von Jörg X. (Gast)


Lesenswert?

Ja, ich glaube du solltest mal den AVR-GCC aktualisieren. Aktuell sind 
gcc 4.4.1 und avr-libvc 1.4.6, die sind doch SEHR VIEL neuer als deine 
Versionen ;)

scnr. Jörg

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.