1

i have some trouble to use i2c and the other pins at the same time.

im tring to control the attiny over i2c with a arduino and the attiny should control a 28byj-48 stepmotor.

i started to setup the i2c connection pin 0 and pin 2 is use for that. it is working fine but then i connected the stepmotor driver on pin 1,3,4,5 after connecting the 5 pin i lose my i2c connection.

here is the code from the attiny, nothing special

#include <TinyWireS.h>                // wrapper class for I2C slave routines

#define I2C_SLAVE_ADDR  0x29            // i2c slave address (38)
#define A 1
#define B 3
#define C 4
#define D 5
#define NUMBER_OF_STEPS_PER_REV 512


void setup(){
  pinMode(1,OUTPUT);
  pinMode(3,OUTPUT);
  pinMode(4,OUTPUT);
  pinMode(5,OUTPUT);
  TinyWireS.begin(I2C_SLAVE_ADDR);      // init I2C Slave mode
}


void loop(){
  byte byteRcvd = 0;
  if (TinyWireS.available()){           // got I2C input!
    byteRcvd = TinyWireS.receive();     // get the byte from master
    //Blink(byteRcvd);           // master must wait for this to finish before calling Wire.requestFrom
    //byteRcvd += 10;                                                    // add 10 to what's received
    //TinyWireS.send(byteRcvd);           // send it back to master

    //             Blink(1);                  // show we transmitted
  }
}

2 Answers 2

3

There is no such Digispark board as the Rev 3. There was going to be, but there was a mistake, so they went straight from Rev 2 to Rev 4. However unscrupulous Chinese counterfeiters are making "Rev 3" boards.

So... your mileage may vary since the components used on there could be of any dubious quality.

But to your problem: P5 is also the RESET pin. If the fuses on that chip are set correctly then it can be used as an IO port. But being a counterfeit, who knows what they set the fuses to?

But if you do change the fuses you will have to rely on the power-on reset (plugging it in) to trigger uploads.

3

As an addition to Majenko's answer I can report having used many of the "Rev.3" counterfeits, every single one came with chip default fuses thereby reset enabled.

You can set the RSTDISBL fuse with your Arduino, plus update the micronucleus bootloader in the process (freeing 0.4k).

Keep in mind setting this fuse will disable ISP programming, so you will need a working bootloader to reprogram the chip unless you revert it via HV programming.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.