RCSwitch code werkt niet op ATTiny85

Arduino specifieke Software
Berichten: 17
Geregistreerd: 31 Mei 2016, 13:07

RCSwitch code werkt niet op ATTiny85

Berichtdoor szjoin » 01 Jun 2016, 14:46

Hallo,

De volgende code:

Code: Alles selecteren
#include <RCSwitch.h>

#define TURN_LEFT  5246997
#define TURN_RIGHT 5246996

int myDelay = 5000;

RCSwitch mySwitch = RCSwitch();

void setup() {
  mySwitch.enableTransmit(2);
  randomSeed(analogRead(0)); // this starts Arduino's random number generator
}

void loop() {
  int myRandom = random(myDelay);
  if (myRandom < (myDelay / 2)) {
    mySwitch.send(TURN_LEFT, 24);
  } else {
    mySwitch.send(TURN_RIGHT, 24);
  }
  delay(myRandom);
}


werkt prima op mijn Arduino Uno. Ik gebruik de volgende RF433 transmitter en receiver:
Afbeelding

Echter, wanneer ik de code op een ATTiny85 zet, zie ik dat het signaal wel op de transmitter wordt aangeboden (LED op de DATA port knippert zoals verwacht) maar mijn receiver reageert niet.

Enig idee wat er aan de hand is?
De Uno loopt op 16MHz en de ATTiny85 op 8MHz.
Is dat het soms? En wat kan ik daar aan doen?

Ik ben erg benieuwd. Dit kost me veel tijd zonder wat hulp..
Dank alvast!

Advertisement

Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: RCSwitch code werkt niet op ATTiny85

Berichtdoor nicoverduin » 01 Jun 2016, 15:55

Hoe programmeer jij de Tiny?
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Berichten: 17
Geregistreerd: 31 Mei 2016, 13:07

Re: RCSwitch code werkt niet op ATTiny85

Berichtdoor szjoin » 01 Jun 2016, 18:50

Via een Arduino Pro mini ("Arduino as ISP").
Edit: of een Arduino Uno.

Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: RCSwitch code werkt niet op ATTiny85

Berichtdoor nicoverduin » 01 Jun 2016, 20:14

Er kunnen een aantal punten van belang zijn in deze:
a) de fuses staan op 1Mhz. die kun je testen met een blink programma met 0.5sec uit, 0.5sec aan. Ledje eraan en dan kun je het zien. Loopt hij veel trager dan is de software op 8 Mhz terwijl de hardware 8x zo langzaam loopt en alle timers niet meer kloppen.
b) de fuses staan op interne RC. En die is vrij onbetrouwbaar. Ik heb al eens met ATTiny84 gewerkt. Zonder een externe oscillator kon ik het wel vergeten. Nu gebruik ik bij die dingen een 8Mhz resonator.Wel jammer dat je dan gelijk 2 pinnen kwijt bent (voor mij toen de reden om van een 85 naar een 84 te gaan).
Verder werk ik altijd met een AVR programmertje en ISP 1.7.2 software. Kan ik gewoon alle fuses zetten zoals ik ze wil en meerdere achter elkaar flashen.
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Berichten: 17
Geregistreerd: 31 Mei 2016, 13:07

Re: RCSwitch code werkt niet op ATTiny85

Berichtdoor szjoin » 02 Jun 2016, 17:29

Ik heb het volgende gedaan:
Gebruik makend van deze handige site even de code gegenereerd voor 8MHz:
http://www.engbedded.com/fusecalc/

De commandostring voor de originele bootloader zou er als volgt uitzien:
Code: Alles selecteren
avrdude -U lfuse:w:0x62:m -U hfuse:w:0xdf:m -U efuse:w:0xff:m -p t85 -c arduino -P /dev/ttyUSB2


Met de CKDIV8 *uit* gezet, zie de commandostring er als volgt uit:
Code: Alles selecteren
avrdude -U lfuse:w:0xe2:m -U hfuse:w:0xdf:m -U efuse:w:0xff:m -p t85 -c arduino -P /dev/ttyUSB2


Resultaat:
Code: Alles selecteren
 $ avrdude -U lfuse:w:0xe2:m -U hfuse:w:0xdf:m -U efuse:w:0xff:m -p t85 -c arduino -P /dev/ttyUSB2

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x1e950f
avrdude: Expected signature for ATtiny85 is 1E 93 0B
         Double check chip, or use -F to override this check.

avrdude done.  Thank you.


Vervolgens de '-F' optie meegegeven.

Resultaat:

Code: Alles selecteren
$ avrdude -U lfuse:w:0xe2:m -U hfuse:w:0xdf:m -U efuse:w:0xff:m -p t85 -c arduino -P /dev/ttyUSB2 -F

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x1e950f
avrdude: Expected signature for ATtiny85 is 1E 93 0B
avrdude: reading input file "0xe2"
avrdude: writing lfuse (1 bytes):

Writing |                                                    | 0% 0.00s ***failed; 
Writing | ################################################## | 100% 0.07s

avrdude: 1 bytes of lfuse written
avrdude: verifying lfuse memory against 0xe2:
avrdude: load data lfuse data from input file 0xe2:
avrdude: input file 0xe2 contains 1 bytes
avrdude: reading on-chip lfuse data:

Reading | ################################################## | 100% 0.00s

avrdude: verifying ...
avrdude: verification error, first mismatch at byte 0x0000
         0x00 != 0xe2
avrdude: verification error; content mismatch

avrdude: safemode: lfuse changed! Was e2, and is now 0
Would you like this fuse to be changed back? [y/n] y
avrdude: stk500_recv(): programmer is not responding


Wat is hier precies aan de hand? Ik schrijf een '0xe2' naar de lfuse maar kennelijk is dat niet gelukt.

Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: RCSwitch code werkt niet op ATTiny85

Berichtdoor nicoverduin » 02 Jun 2016, 17:52

De signature die AVRdude leest is die van een Atmega328P(De pro mini dus) en niet van een tiny85. Ik heb ook geen idee of het met een pro mini (of welke Arduino dan ook) gaat lukken. AVRDude zie nu gewoon de Arduino pro mini en niet de Attiny85. Vandaar dat ik een keer die paar euro heb uit gegeven voor een avr programmertje. Ben je van al het gedonder af. Je zult dus moeten googelen hoe je via een Arduino de fuses van een tiny kan veranderen.

@edit: Hier staan wat mogelijkheden. http://electronics.stackexchange.com/qu ... o-as-a-pro
Maar lees ook dat je een tiny kan "bricken" waarna je een high Voltage programmer nodig hebt (High voltage =12V). ik heb er ooit een printje voor gemaakt (Het ontwerp is overigens niet van mij) :http://www.verelec.nl/?page_id=394
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Berichten: 17
Geregistreerd: 31 Mei 2016, 13:07

Re: RCSwitch code werkt niet op ATTiny85

Berichtdoor szjoin » 02 Jun 2016, 20:30

Dank voor je reactie.

Ik heb toevallig vorige week een AVR programmer besteld; Dan wacht ik wel daar op.
Op een brick zit ik namelijk niet te wachten.

Ik laat wel horen als het binnen is en wat mijn bevindingen zijn.
Dankjewel voor jouw informatie.

Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: RCSwitch code werkt niet op ATTiny85

Berichtdoor nicoverduin » 02 Jun 2016, 21:21

Welke programmer? link?
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Berichten: 17
Geregistreerd: 31 Mei 2016, 13:07

Re: RCSwitch code werkt niet op ATTiny85

Berichtdoor szjoin » 03 Jun 2016, 07:38

Nee - veel obscuurder. Geen idee wat het precies is maar de prijs vond ik een gokje waard:
http://www.aliexpress.com/item/Pluggabl ... 45647.html
En nog wat extra ATTiny's erbij :D Gewoon.. omdat het kan ;)

Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: RCSwitch code werkt niet op ATTiny85

Berichtdoor nicoverduin » 03 Jun 2016, 07:59

En gewoon omdat je er niets aan hebt......
Dit is geen programmer. Dit is gewoon een ontwikkel bordje. En de USB heeft alleen de + en - aangesloten.
Dit is een programmer:
Afbeelding
http://nl.aliexpress.com/item/1LOT-New- ... fe38a04ef8

En dan nog een verloopstekker van 10 naar 6 pins:
Afbeelding

http://nl.aliexpress.com/item/New-10-Pi ... 27cb924f8e

En deze Software :
Afbeelding

http://www.electrodragon.com/w/ProgISP
Die ook in het Engels in de RAR file zit.
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Volgende

Terug naar Arduino software

Wie is er online?

Gebruikers in dit forum: efroraha, ikahufaamaqs en 89 gasten