attiny84 und serial

hallo,

ich bekomme mit dem attiny momentan leider gar nichts hin(außer led blinken lassen und rc-switch) und hoffe hier kann mir jemand helfen.....

ich würde zur fehler suche gerne sachen vom attiny über den seriellen monitor ausgeben lassen.

ich verwende die neuste arduino ide und attiny 1.5.8-2.

ich habe es nach dem beispiel von attiny 1.5.8-2 versucht und bekomme nur €€€€€ €€€e usw ausgegeben.

dann habe ich es noch nach dem beispiel hier versucht und bekomme auch nichts vernünftiges ausgegeben........
http://playground.boxtec.ch/doku.php/arduino/attiny

das macht langsam echt keinen spaß mehr....umstecken, arduino isp neu aufspielen, sketch auf den tiny, sketch auf den arduino....... und das immer wieder, damits dann doch nicht funktioniert.....
kann mir vielleicht jemand ein programmiergerät für (fast alle) attinys empfehlen, das ich auch über die arduino ide nutzen kann ?

Auch wenn es ein klon ist und ich nicht gern Werbung dafür mache, aber für sowas nutze ich einen billigen arduino nano klon. Die kosten so um die 3 Euro.

Sicher, dass die Fuses richtig gesetzt sind, sowie auch dei Baudrate?

Nutzte zum flashen aller mir bekannten Attinys den AVR ISP mkii

danke für die antworten !

fuses sagt mir nichts ?........

baudrate hab ich 9600 uns 2400 probiert:

Atiny 84 sketch:

#include <SoftwareSerial.h>

#define RX_PIN 0
#define TX_PIN 1

SoftwareSerial mySerial(RX_PIN, TX_PIN);

void setup() {

mySerial.begin(2400);
}

void loop()
{

mySerial.print("Test");
delay (2000);
}

Arduino-sketch:

// pin 0 = rx und pin 1 = tx am arduino mega

void setup(){
Serial.begin(2400);
}

void loop(){
while (Serial.available()) {
Serial.write(Serial.read());
}
}

magictrips:
danke für die antworten !

fuses sagt mir nichts ?........

Dann stimmen die vermutlich auch nicht. Habe keine Ahnung, ob diese beim Upload überhaupt gesetzt werden. Aber wie schnell blinkt deine Led? Möglich, dass die 8x langsamer als üblich ist?

ich hab ein bootloader für einen attiny84 für 8mhz intern aufgespielt.....

ich hatte beim testen mit einer blinkenden led schon das gefühl, das da was mit der "zeit" nicht stimmt...
ich mein, die hat sogar zu langsam geblinkt, so das ich die zeit im delay verkürzt habe.

So wie es hier beschrieben ist sollte es auch mit einem attiny84 funktionieren.

Gruß
Peter

vielen dank !

die seite kenn ich schon bzw habs schon probiert, aber ich probiers noch mal........

man soll ja keine pwm pins nehmen ?

deswegen, nehme ich an meinem arduino mega den d31 und am attiny84 den d0.

ich hab also im sketch für den arduino isp die 4 durch eine 31 ersetzt (mit d0 hab ichs auch probiert) und im sketch für den attiny die 4 durch eine 0 (mit d1 hab ichs auch getestet) !

ich hab unter platine: attiny x4 ausgesucht und unter mirco: attiny84 @ 8mhz internal oscillator, bod disabled.

baudrate des serialen monitors auf 19200.

und ich bekomme leider nichts ausgegeben ):

fehlermeldungen usw gibts keine.

Abo ...

sschultewolter:
Dann stimmen die vermutlich auch nicht. Habe keine Ahnung, ob diese beim Upload überhaupt gesetzt werden. Aber wie schnell blinkt deine Led? Möglich, dass die 8x langsamer als üblich ist?

Hast du das gecheckt? Ich hatte ein ähnliches Problem, bei mir stimmte schlichtweg die BaudRate nicht mit der eingestellten überein... Ich habe original Chips verwendet und die Dinger mit einem selbstbau Programmer geflasht. K.A. ob der beim Upload die Fuses richtig setzt X) bzw. wie genau der interne Takt ist. Nach einer kurzen Spielerei mit den Baudraten hat sich das bei mir in mehr oder weniger Wohlgefallen aufgelöst. Eingestellt 9600, Serial-Monitor auf 2400... Klingt blöd, ist aber so...

LG

also das mit den fuses sagt mir leider nichts ?

ich habe jetzt noch mal edliche englische threats gelesen über virtual wire und attiny...
da scheint es auch sehr oft probleme aus den selben gründen zu geben bzw das is ja eigentlich mein ursprüngliches problem, weswegen ich den serialen monitor als unterstützung nehmen möchte (;

leider hab ich da auch keine lösung gefunden.......

ich hab aber mal versucht nachzumessen und glaube (wenn ich den blink-led sketch auf den tiny lade), das dieser zu schnell blinkt so ca. 30ms pro 1000ms.
also 1000 tiny-ms sind 1030 "richtige"-ms.

ich probiers jetzt aber noch mal mit einer anderen baudrate aus, nur dneke ich nicht, dass das den "fehler" behebt bzw dann virtual wire läuft ?

wo hast du denn die 9600 eingestellt ?
im code für die ide ? oder im code für den tiny ? da is die ja schon auf 9600

also wenn ich die baudrate beim ide sketch verändere, bekomme ich den bootloader nicht gebrannt....

und wenn ich die bausrate im sketch für den attiny bei 9600 lasse und im monitor auf beliebige umstelle, tut sich gar nichts ):

magictrips:
wo hast du denn die 9600 eingestellt ?
im code für die ide ? oder im code für den tiny ? da is die ja schon auf 9600

im Code 9600
und beim Serialmonitor 2400

Das kann sich bei dir aber auch anders verhalten...
Ansonsten kannst du die am tiny die SendonlySoftwareSerial von Nick Gammon versuchen (sofern du nichts empfangen willst / musst) http://gammon.com.au/Arduino/SendOnlySoftwareSerial.zip

Hast du schon versucht mit einem UART USB Adapter das ganze mitzulesen?

hi, danke für die antwort.

und in welchem sketch ?
wenn ich im sketch, der auf den arduino kommt, die baudrate verändere, läßt sich, wie gesagt, nicht mal der bootloader brennen.....

ich habs jetzt noch mal mit genau der gleichen ide, wie im beitrag und genau dem gleichen core probiert.....
wieder nichts....

mir würde es reichen nur zu lesen, was der tiny mir sendet......

ein uart adapter hab ich leider nicht...

OK, wenn ich das jetzt richtig verstehe brennst du mit dem Arduino den TINY???
Wieso der bei 9600 zickt kann ich nicht nachvollziehen...

Du nutzt dann den Arduino (mit nachträglich neu geladenem Sketch) als USB UART Adapter?
D.h. die BAUDRATEN müssen übereinstimmen. Wenn sich das genauso verhält wie bei mir müsstest du die BR beim ARDUINO reduzieren. Aber ein richtiger USB <-> UART Adapter wäre natürlich zum eingrenzen des Fehlers hilfreich (kostet €7 oder sowas).

kannst du mal eine skizze anfertigen wie du das verschalten hast?
TX PIN TINY <-> RX ARDUINO? RX TINY frei und TX ARduino frei?

So wie es hier beschrieben ist sollte es auch mit einem attiny84 funktionieren.

Gruß
Peter

Wenn du danach vorgehst fehlt mir in deinem sketch die Software-Serial am Arduino.

magictrips:
kann mir vielleicht jemand ein programmiergerät für (fast alle) attinys empfehlen, das ich auch über die arduino ide nutzen kann ?

http://www.reichelt.de/AT-AVR-ISP/3/index.html?&ACTION=3&LA=446&ARTICLE=45040&artnr=AT+AVR+ISP&SEARCH=avr+isp

Zu Deinem Problem, dass Du nur wirre Zeichen aus dem ATtiny bekommst: Genau das gleiche Problem hatte ich auch im letzten Jahr. Ich habe den Arduino als Programmer benutzt und dann versucht, über ihn etwas auszulesen. Es kam nur Zeichensalat heraus. Erst nachdem ich ihn gegen einen TTL Adapter getauscht habe, kamen lesbare Ergebnisse raus.

Aktuell habe ich ein Projekt mit einem ATtiny85 umgesetzt. Auch dort brauchte ich die ausgegebenen Werte eines Pins. Die habe ich per SoftwareSerial ausgegeben, mit einem Arduino Uno ausgelesen und dann auf einem dort angeschlossenen LCD angezeigt. Das klappte sogar auf Anhieb. Hier habe ich die benötigten Infos gefunden:

Der Sketch auf dem Uno sah dann so aus:

#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 10, 9, 8, 7);
int val;

void setup() {
Serial.begin(9600);
lcd.begin(16, 2);
lcd.clear();
}

void loop() {
int incoming = Serial.available();

if (incoming > 0)
{
val = Serial.parseInt(); //Reads integers as integer rather than ASCI. Anything else returns 0
Serial.println(val);
lcd.setCursor(0,0);
lcd.println(val);
delay(300);
}
}

kannst du mal eine skizze anfertigen wie du das verschalten hast?
TX PIN TINY <-> RX ARDUINO? RX TINY frei und TX ARduino frei?

"ich hab also im sketch für den arduino isp die 4 durch eine 31 ersetzt (mit d0 hab ichs auch probiert) und im sketch für den attiny die 4 durch eine 0 (mit d1 hab ichs auch getestet) !"

31 = d31
0 = d0

ich habe mein virtual wire sketch jetzt noch mal mit einem nano getestet....
funktioniert auf anhieb....

da es ja anscheinend so einige schaffen auf dem tiny virtual wire und softseriall zum laufen zu kriegen, denke ich mal da muss irgendwas sein, was man noch einstellen oder ändern muss.......

ich lese immer was von fuses ? oder davon, das die zu schnell oder zu langsam sind (vom delay) oder das die nur einen timer haben oder das es am compiler liegt.....
vielleichts liegts auch an der ide oder der core version ?

komisch ist ja, das rc-switch problemlos läuft und das der led-blink sketch auch läuft, aber etwas schneller (;

wäre echt schön, wenn sich mal jemand melden würde, der ahnung hat oder der es wirklich geschafft hat, VW oder softserial auf dem attiny84 zum laufen zu kriegen.......

wäre schön, wenn jeman die genaue version der ide und des cores usw posten könnte, damit man zum rumprobieren mal ein funktionierendes setup als ausgangsbasis hat (;

magictrips:
komisch ist ja, das rc-switch problemlos läuft und das der led-blink sketch auch läuft, aber etwas schneller (;

Ja, und das ist einfach nur Mist! Wenn delay bereits nicht richtig läuft, brauchst du an der Stelle noch garnicht erst auf die SoftSerial eingehen. Das geht so dann nicht. Für die Baudratenberechnung benötigst du den korrekten Takt. Vorzugsweise 8MHz bei den Attiny.

Ich habe zig Attiny84 sowie auch 841 (der hat eine richtige Hardware Serielle Schnittstelle). Dein Takt passt nicht. Warum muss es zwingend direkt ein Attiny sein? Wenn dir die Grundlagen fehlen, macht es mehr Sinn, auf offiziel unterstützte AVRs umzusteigen (ProMini (Atmega328P), Pro Micro(Atmega32U4)).

Beschreibe einmal deine genaue(!!) Vorgehensweise, wie du ran gegangen bist. (und nicht auf irgendein Tutorial verweisen)

hmmmmm das is aber blöd..........

für den attiny hab ich mich entschieden, weil er in etlichen anleitungen für die übertragung von messwerten verwendet wird und weil ich ihn mit der arduino ide programmieren kann.....

meine genaue vorgehensweise (was jetzt das seriale angeht, hab ich doch shcon beschrieben)

"
man soll ja keine pwm pins nehmen ?

deswegen, nehme ich an meinem arduino mega den d31 und am attiny84 den d0.

ich hab also im sketch für den arduino isp die 4 durch eine 31 ersetzt (mit d0 hab ichs auch probiert) und im sketch für den attiny die 4 durch eine 0 (mit d1 hab ichs auch getestet) !

ich hab unter platine: attiny x4 ausgesucht und unter mirco: attiny84 @ 8mhz internal oscillator, bod disabled.

baudrate des serialen monitors auf 19200.
"
der rest bzw die scetche sind aus der verlinkten seite kopiert.....

ansonsten:
"
ich hab aber mal versucht nachzumessen und glaube (wenn ich den blink-led sketch auf den tiny lade), das dieser zu schnell blinkt so ca. 30ms pro 1000ms.
also 1000 tiny-ms sind 1030 "richtige"-ms.
"
gemessen hab ich mit der atomuhr und einer millisekundenstoppuhr, von einer homepage....

"ich habs jetzt noch mal mit genau der gleichen ide, wie im beitrag und genau dem gleichen core probiert.....
wieder nichts...."

also ides hab ich die 1.5.8 und die 1.6.4 ausprobiert......
und zwei cores

ist es denn überhaupt möglich solche "falsch" getackteten attinys zu verwenden ? gibts da was zum einlesen, wie man das korrigiert ?