attiny85 mit tl866ii plus flashen

Hallo miteinannder, hab hier ein tl866ii plus liegen das ich mir cup flashen von cpu´s gekauft hab,
kann mir jemmand erklären wie ich alsbeispiel das Blink auf auf dem attiny bekomm, also wie das flashen geht ist klar, aber das blink ist gut 8 mal länger als normal

Fabriksneue ATtiny85 laufen mit internem Takt 1 MHz (interner Takt 8 MHz und danach ein Teiler durch 8 ).
Das kann durch einstellen der Fuses verändert werden (z.B. den Teiler ausschalten).
Sieht so aus, als ob von einem 8 MHz Takt ausgegangen wird.

oje und wie mach ich das ?

Medolino73:
oje und wie mach ich das ?

Du kannst auf den ATtiny85 einen "Bootloader" flashen.
Da werden die Fuses gesetzt.
Je nach Boards-Einstellungen kannst du den 8 MHz oder 1 MHz Bootloader flashen.

Das geht auch aus der IDE heraus mit deinem Programmer.

mit dem tl866ii plus ?
einen anderen hab ich im moment leider nicht

Hi

Das geht auch mit 'Arduino_as_ISP' ... per ISP.
(wie ich dem ATtiny85 eh den Sketch einhauchen würde)
Deinen Brenner kenne ich nur vom Link oben.

MfG

Du könntest ja auch bei den 1 MHz bleiben.
Damit das Programm in der richtigen "Geschwindigkeit" ausgeführt wird, muss aber bekannt sein, mit welchem Takt der Mikrocontroller läuft. Wenn du in der Arduino IDE 1 MHz einstellst (Werkzeuge / Clock / 1 MHz internal), dann passt es auch wieder.

Medolino73:
mit dem tl866ii plus ?
einen anderen hab ich im moment leider nicht

Den kann ich nicht in der IDE finden.

Da solltest du schon (wie schon geschrieben) auf Arduino as ISP zurück greifen.
Das geht mit dem Uno oder auch Nano.

vielen dank, hab noch ein alten uno gefunden den ich dafür verwendet hab, mein tl866ii plus setzt jedes mal beim schreiben den Bootloader zurück, wär halt kompfortabler gewesen, aber so gehts auch

da hat sich leider ein weiteres Problem aufgetan, ich bekom einfach keine verbindung vom Teensy zum Attiny, oder hab ich da was falsch angeschlossen
hier der code vom Teensy

void setup() {
  Serial.begin(9600);
  Serial2.begin(9600);
}

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

und das vom attiny

#include <SoftwareSerial.h>
#define RX    3   // *** D3, Pin 2
#define TX    4   // *** D4, Pin 3


SoftwareSerial mySerial(RX, TX);


void setup()
{
  mySerial.begin(9600);
}
void loop()
{
  if (mySerial.available() > 0)
  {
    int b = mySerial.read();
    if (b == 1)
    {
      digitalWrite(0, HIGH);
    }
    else if (b == 0)
    {
      digitalWrite(0, LOW);
    }
    mySerial.flush();
  }
}

Also wenn Du es so angeschlossen hast wie auf Deinem Schaltbild, dann hast Du auf dem Attiny RX/TX vertauscht. Bei serieller verbindung immer RX --> TX und TX --> RX verbinden. Sonst funktioniert das nicht.

LG Stefan

ja hast recht, die Zeichnung hab ich wohl falsch angefertigt, aber angeschlossen ist TX zu RX und RX zu TX, Zeichnung aktualisiert

Hast du das Flashen der ATtiny85 denn jetzt gelöst ?
Und auch mit der richtigen Taktfrequenz für Bootloader und CPU-Takt ?

HotSystems:
Hast du das Flashen der ATtiny85 denn jetzt gelöst ?
Und auch mit der richtigen Taktfrequenz für Bootloader und CPU-Takt ?

ja, habs mit einem alten Uno geflasht

Medolino73:
ja, habs mit einem alten Uno geflasht

Ahh....super, danke.
Rückmeldungen sind immer wichtig.

ja das hat super funktioniert, auch ein Programm mal hochgeladen, funktioniert auch wunderbar, nur kann die beiden nicht dazu anregen, sich miteinannder zu unterhalten

Medolino73:
ja das hat super funktioniert, auch ein Programm mal hochgeladen, funktioniert auch wunderbar, nur kann die beiden nicht dazu anregen, sich miteinannder zu unterhalten

Du hast im ATtiny85-Sketch auch keinen Ausgang für den Pin0 definiert.

habs zwischenzeitlich geändert, aber auch ohne erfolg

#include <SoftwareSerial.h>
#define RX    3   // *** D3, Pin 2
#define TX    4   // *** D4, Pin 3

SoftwareSerial mySerial(RX, TX);


void setup()
{
  pinMode(0, OUTPUT); 
  mySerial.begin(9600);
}
void loop()
{
 if (mySerial.available() > 0)
 {
  int b = mySerial.read();
  if (b == 1)
  {
   digitalWrite(0, HIGH);
  }
  else if (b == 0)
  {
   digitalWrite(0, LOW);
  }
  mySerial.flush();
 }
}

Ich weiß ja nicht genau, was du wie sendest...

Aber wenn ich im seriellen Monitor der Arduino-IDE 0 bzw. 1 eintippe, dann geht am ATtiny die LED an PB0 aus bzw. an, wenn ich in deinem Programm folgendes ändere:
statt: if (b == 1)
if (b == '1')
und statt: else if (b == 0)
else if (b == '0')

alles klar, funktioniert,
eine weitere frage, sind die funktionen des eeprom genaus wie beim Uno ??
da hab ich ein weiteres Problem das beim attiny nicht funktioniert, jedoch der gleich scetch auf dem uno ohne weiteres