1 / 49

Welcome to Workshop 88’s

Welcome to Workshop 88’s. Tiny85 Class. Please download Tiny core libs from: http://code.google.com/p/arduino-tiny/ (for Arduino 1.0, not 1.5!) Unzip and stash the ‘tiny’ folder for later. ver 1.1 2/1/14. Objective of class.

lyndon
Download Presentation

Welcome to Workshop 88’s

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Welcome to Workshop 88’s Tiny85 Class Please download Tiny core libs from: http://code.google.com/p/arduino-tiny/ (for Arduino 1.0, not 1.5!) Unzip and stash the ‘tiny’ folder for later. ver 1.1 2/1/14

  2. Objective of class You walk out with a Tiny85 with code that you wrote and that you burned into the chip.

  3. What we’ll cover • Why use a Tiny85 (or friends)? Why not? • How Arduino IDE works with Tinys • Putting new core libs on your IDE • Put a Tiny blinkie on your breadboard • Write your own blinkie • Porting code to Tiny85 • Mapping Tiny85 pins to Arduino pins • How to burn code to a Tiny: programming, programmers, programs… • Burn your blinkie! • Fuses and avrdude • Using RESET as a 6th I/O pin • Commercial Tiny85s • Other Tinys: 84, 4313

  4. Atmel 8 bit AVR familes AVR stands for Alf (Egil Bogen) and Vegard (Wollan)'s RISC processor • Mega family • AtMega328P (Arduino!) • AtMega2560 (Mega) • more • Tiny family • AtTiny25/45/85 • AtTiny24/44/84 • AtTiny2313/4313 • more (There’s also an Xmega family, as well as a 32 bit family.)

  5. What’s inside Mega328P • 32K program flash • 2K RAM • 1K EEPROM • Two 8-bit counters • One 16-bit counter • Six PWM channels • Serial USART • I2C/TWI interface • 8 channel A/D converter • 23 I/O lines • SPI interface • Analog comparator • Watchdog timer

  6. What’s inside Mega328PTiny85 • 32K 8K program flash • 2K 512B RAM • 1K 512 B EEPROM • Two 8-bit counters • One 16-bit counter • Six Two PWM channels • Serial USART • I2C/TWI USI interface • 8 4 channel A/D converter • 23 6 I/O lines • SPI interface • Analog comparator • Watchdog timer

  7. From code to flash

  8. From code to flash

  9. From code to flash libraries compiler/linker Binary executable Usually as a Hex File

  10. From code to flash: ascii hex file

  11. From code to flash ? Hex File on host Chip

  12. From code to flash Hex File Hardwareprogrammer Chip

  13. From code to flash Hex File programming software (avrdude) Hardwareprogrammer usually serial Chip

  14. From code to flash Hex File programming software (avrdude) Hardwareprogrammer programminginterface usually serial Chip

  15. From code to flash Hex File programming software (avrdude) Hardwareprogrammer wires! programminginterface usually serial Chip

  16. From code to flash We’ll do it this way for Tiny85! Hex File programming software (avrdude) Hardwareprogrammer wires! programminginterface usually serial Chip

  17. From code to flash We’ll do it this way for Tiny85! Hex File programming software (avrdude) wires! programminginterface USB serial! Hardwareprogrammer Chip

  18. From code to flash We’ll do it this way for Tiny85! Hex File programming software (avrdude) wires! programminginterface USB serial! running “ArduinoISP” sketch Chip

  19. From code to flash: Arduino Hex File programming software (avrdude) programmeremulatorprogram programminginterface serial! Chip

  20. From code to flash: Arduino Hex File Arduino bootloader! programming software (avrdude) programmeremulatorprogram programminginterface serial! Chip

  21. From code to flash: Arduino Hex File Arduino bootloader! programming software (avrdude) programmeremulatorprogram serial USBserial driver programminginterface USB-serial chipon Arduino USB Chip

  22. Arduino bootloader burner

  23. From code to flash

  24. From code to flash

  25. Get your Tiny on! • Refer to pinout and connect +5V and ground • The Tiny is preprogrammed with a blink sketch on pin 5 • Put an LED on pin 5 and verify that it works!

  26. Installing Tiny core libs • Unzip if needed • Copy “tiny” directory to the “hardware” directory either: • In main Arduino installationWin: Program Files/arduino-1.0.5/hardwarelinux: /usr/share/arduino/hardware • In your Arduino directory (make dir “hardware” if needed)Win: My Documents/Arduino/hardwarelinux: $HOME/sketchbook/hardware

  27. boards.txt • Contains definitions for all available boards • In top “tiny” directory, copy “Prospective Boards.txt” to “boards.txt” • I suggest cleaning up your new “boards.txt”, leaving only stanzas for • ATtiny85 @ 8 MHz • ATtiny85 @ 1 MHz

  28. Write your blinkie! • Recognizable pattern • 1-3 LEDs (5 max) • Use variables or #defines for pins

  29. Porting Tiny has: • Digital pins 0-5 • Analog pins A0-A3 • Change your pin numbers to ones Tiny has • Find the mapping in the Tiny core libs at hardware/tiny/cores/tiny/pins_arduino.c • Figure out which physical pins you’re using!

  30. Connecting Arduino as ISP to your Tiny85 You need 6 wires: • Power and ground • SPI lines MISO, MOSI, SCK • Reset Line names are marked on the mini-shield

  31. Using Arduino as ISP • Plug in your Arduino • Select the board type of your Arduino • Load ArduinoISP from Examples • Upload to your Arduino • Plug in mini-shield (must be AFTER loading ArduinoISP!) • Select Tiny85 board • Select Arduino as ISP as Programmer • Load your code • Click Upload!

  32. avrdude: path • Windows: try \Program Files\arduino1.0.x\hardware\tools\avr\bin • Linux: try<arduino-root>/hardware/tools(mine was /usr/share/arduino/hardware/tools)

  33. avrdude: command line $ avrdude • P /dev/ttyUSB0 (/dev/ttyACM0) • P COM4 (or whatever) • b 19200 • p t85 • c <path to avrdude.conf> • t

  34. avrdude: stop complaining! part id = "t85"; desc = "ATtiny85"; has_debugwire = yes; flash_instr = 0xB4, 0x02, 0x12; eeprom_instr = 0xBB, 0xFF, 0xBB, 0xEE, 0xBB, 0xCC, 0xB2, 0x0D, 0xBC, 0x02, 0xB4, 0x02, 0xBA, 0x0D, 0xBB, 0xBC, 0x99, 0xE1, 0xBB, 0xAC; ## next 2 are fakes so avrdude won't complain pagel = 1; bs2 = 1; ## no STK500 devcode in XML file, use the ATtiny45 one stk500_devcode = 0x14;

  35. Fuses • (Not what it sounds like) • Nonvolatile configuration bits • There are 3: • FUSE LOW BYTE • FUSE HIGH BYTE • FUSE EXTENDED BYTE • Logic values confusing:1 (not programmed) = FALSE

  36. FUSE LOW BYTE

  37. FUSE HIGH BYTE

  38. FUSE EXTENDED BYTE

  39. HV programmer/fuse resetter

  40. HV programmer/fuse resetter https://sites.google.com/site/wayneholder/attiny-fuse-reset

  41. Other Tiny85s: Babygnusbuino

  42. Other Tiny85s: DigiSpark

  43. Other Tiny85s: Gemma

  44. Other Tiny85s: Trinket

  45. Other Tiny85s: EezeeTiny

  46. Other Tiny85s: PicoDuino

  47. Other Tiny85s: my dollhouse nodes

  48. Other Tinys There are lots more, but these are a fine starting place.

  49. Architectures

More Related