ATtiny416 Startschwierigkeiten

OP #6138272
Lesenswert?

Salli

Ich habe viel Programmiererfahrung mit 8-Bit Mikrocontrollern von Atmel. 
Jetzt habe ich den ATtiny416 entdeckt, welcher einen "Peripheral Touch 
Controller" integriert hat. Dazu verwende ich ein "ATtiny416 XNANO" Kit. 
Jedoch scheitere ich schon an einem normalen Blink Programm.

Kann mir jemand weiterhelfen?

Hier der Code:
1
#include <avr/io.h>
2
#include <util/delay.h>
3

4

5
int main(void)
6
{
7
   PORTB_DIR |= (1<<1);
8
   PORTB_OUT = 0x00;
9
    while (1) 
10
    {
11
     PORTB.OUTSET = PIN1_bm;
12
     _delay_ms(500);
13
    PORTB.OUTCLR = PIN1_bm;
14
     _delay_ms(500);
15
    }
16
}
Gast #6138309
Lesenswert?

Felix schrieb:
> Erstmal bei Portb oben Punkte statt _ nutzen. Und dann mal schreiben,
> was für ein Fehler vorliegt.

Ich denke, das ist Mumpe, da per Define das Eine auf das Andere 
umgesetzt wird. Der Compiler scheint ja auch ohne Gemecker durch zu 
laufen.

Wie sieht es denn bei den Fuse-Bits aus ?
- richtige Taktquellle gewählt
- Watchdog lahm gelegt
- Crc - Check lahm gelegt
Gast #6138311
Lesenswert?

Wie wurde die Led angeschlossen (soll leuchten bei High/Low)?
Leuchtet die Led nach Konfiguration des Ports zu Beginn des Programms?
Mal die Konfiguration oben so geändert, dass die Led leuchten müsste?
Die Unterstriche durch Punkte ersetzt?
Mal in die  Lss-Datei geschaut, was im Assemblercode steht?
Richtige Taktquelle eingestellt?
Mit Oszilloskop geprüft, wenn möglich?

Bitte gebt doch mal Infos heraus. Es ist doch bestimmt möglich, selbst 
zu sehen, was Außenstehende nicht wissen können...
OP #6138340
Lesenswert?

Vielen Dank für die vielen Antworten!

fop schrieb:
> Wie sieht es denn bei den Fuse-Bits aus ?
> - richtige Taktquellle gewählt
> - Watchdog lahm gelegt
> - Crc - Check lahm gelegt

Die Fuse-Bits sollten korrekt sein. Habe sie noch angehängt.

Felix schrieb:
> Wie wurde die Led angeschlossen (soll leuchten bei High/Low)?
> Leuchtet die Led nach Konfiguration des Ports zu Beginn des Programms?
> Mal die Konfiguration oben so geändert, dass die Led leuchten müsste?

Die LED leuchtet bei Low. Im Main will ich mit "PORTB_OUT = 0x00;" den 
ganzen Port B auf Low schalten. Theoretisch sollte sie zu beginn 
leuchten.

Felix schrieb:
> Die Unterstriche durch Punkte ersetzt?

Habe ich ersetzt.

Felix schrieb:
> Mal in die  Lss-Datei geschaut, was im Assemblercode steht?

Kenne mich leider mit Assembler nicht so gut aus, dass ich die Lss-Datei 
komplett verstehe. Soll ich diese noch hochladen?

Felix schrieb:
> Richtige Taktquelle eingestellt?

Jap, 20MHz intern.

Felix schrieb:
> Mit Oszilloskop geprüft, wenn möglich?

Am Ausgang tut sich gar nichts. Der Ausgang ist konstant hochohmig.

Sebastian R. schrieb:
> für in diesem Fall 8MHz (bitte entsprechend deinem Aufbau anpassen) kann
> auch schon mal sehr hilfreich sein.

Habe ich mit 20MHz angepasst, hat leider nichts geändert.





Ich glaube ich habe soweit alles gepostet, was ich weiss. Ich nehme an, 
dass ich den Pin 1 von PORTB nicht richtig als Ausgang konfiguriere, 
weshalb er auch hochohmig ist. Wie konfiguriere ich den PORT Richtig? 
Mit dem Datenblatt wurde ich auch nicht schlauer. Ich kenne nur die art 
mit DDRx, diese funktioniert hier jedoch nicht.
Angehängte Dateien:
Gast #6138358
Lesenswert?

Nur nochmal zur Sicherheit nachgefragt : Du hast eine zusätzliche Led 
mit Vorwiderstand an Port B 1 angeschlossen ?
Die Led, die schon auf dem "ATtiny416 XNANO" Kit drauf ist, hängt 
nämlich an Port B 5.
OP #6138376
Lesenswert?

fop schrieb:
> Nur nochmal zur Sicherheit nachgefragt : Du hast eine zusätzliche
> Led
> mit Vorwiderstand an Port B 1 angeschlossen ?
> Die Led, die schon auf dem "ATtiny416 XNANO" Kit drauf ist, hängt
> nämlich an Port B 5.

Jup habe eine zusätzliche LED an Port B 1 angeschlossen

AVR schrieb im Beitrag #6138368:
> Hallo Fabian,
>
> ich musste mich vor kurzem auch in die neue AVR Reihe einarbeiten. Mir
> haben die „Getting startend“ von Microchip sehr geholfen:
> https://www.microchip.com/wwwproducts/en/ATTINY416
> Dort unter Documents die TB3209 bis TB3218.

Danke, werde mir die Dokumente einmal anschauen.
Gast #6138423
Lesenswert?

Ich habe auch das ATTINY416-XNANO verwendet und folgender Code hat super 
funktioniert:
[c]
#include <avr/io.h>
#include <util/delay.h>

#define F_CPU 3333333UL

int main(void)
{
  PORTF.DIR |= PIN5_bm;
    while (1)
    {
    PORTF.DIRSET = PIN5_bm;
    _delay_ms(500);
    PORTF.DIRCLR = PIN5_bm;
    _delay_ms(500);
    }
}

Die eingebaute LED ist an PINB5 angeschlossen.
Gast #6138429
Lesenswert?

Für die Taktfrequenz sollte man im Datenblatt den Punkt "Main Clock 
after Reset" beachten - nach dem Reset startet der ATTiny nur mit 1/6 
der eingestellten Frequenz. Die LED sollte aber trotzdem blinken - nur 
langsamer...

Ansonsten sollte

PORTB.DIRSET = PIN1_bm;
PORTB.OUTSET = PIN1_bm; oder
PORTB.OUTCLR = PIN1_bm;
PORTB.OUTTGL = PIN1_bm;

funktionieren
OP #6138522
Lesenswert?

Hatte plötzlich Probleme, mit dem programmieren des ATtiny416. Konnte 
feststellen, dass dieser keine Antwort mehr auf den ATmega32 gab. Habe 
den Tiny kurz ausgewechselt und jetzt funktioniert es.

OT512 schrieb:
> Für die Taktfrequenz sollte man im Datenblatt den Punkt "Main Clock
> after Reset" beachten - nach dem Reset startet der ATTiny nur mit 1/6
> der eingestellten Frequenz. Die LED sollte aber trotzdem blinken - nur
> langsamer...

Habe ich auch soeben festgestellt, dass er mit einer Taktfrequenz von 
3.33MHz läuft. Habe die zwei Zeilen von m.n. in meinen Code integriert. 
Funktioniert jetzt mit 20MHz.

Danke für die Hilfe!

Noch eine weiter Frage. Kennt sich jemand mit dem "Peripheral Touch
Controller" bzw. mit der QTouch Library aus?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren