AVR: Unterschied zwischen sleep_cpu() und sleep_mode()

Die zwei Methoden unterscheiden sich nur beim Handling des SE-Bit. Bei der Methode sleep_cpu() muss durch den Code sichergestellt werden, dass zuvor das SE-Bit gesetzt wird und nach dem Aufwachen der CPU das SE-Bit wieder gelöscht wird.

Beispiel mit sleep_cpu():


    sleep_enable();
    sleep_cpu();
    sleep_disable();

Beispiel mit sleep_mode():


    sleep_mode();

Nützliche Links

avr-libc: sleep

AVR: ATtiny13 / ATtiny25 / ATtiny45 / ATtiny85 Sammelsurium

Übersicht

Microcontroller with xKB of programable memory:
Attiny13 = Microcontroller with 1KB
Attiny25 = Micocontroller with 2KB
Attiny45 = Microcontroller with 4KB
Attiny85 = Microcontroller with 8KB

CPU-Geschwindigkeit:
Attiny13/13A: default: 1,2Mhz (Fuse bit set: CKDIV8)
Attiny25/45/85: default: 1Mhz (Fuse bit set: CKDIV8)
max: 20MHz

Anzahl der Pins: 8Pin(s)
Anzahl der Ein-/Ausgänge: 6I/O(s)
Embedded-Schnittstelle: I2C, SPI

Attiny13/25/45/85:
Versorgungsspannung, min.: 2.7V
Versorgungsspannung, max.: 5.5V

Attiny13A:
Versorgungsspannung, min.: 1.8V
Versorgungsspannung, max.: 5.5V

DC Current per I/O Pin: 40.0 mA
DC Current VCC and GND Pins: 200.0 mA

Pinout

ATtiny Pinout

ISP Programming

2x3-pin ISP headers
2×3-pin ISP headers

ISP Pins

Sleep Modes

Sleep-Modes


/*
 * The 5 different modes are:
 *     SLEEP_MODE_IDLE         -the least power savings
 *     SLEEP_MODE_ADC
 *     SLEEP_MODE_PWR_SAVE
 *     SLEEP_MODE_STANDBY
 *     SLEEP_MODE_PWR_DOWN     -the most power savings
 */ 
set_sleep_mode(SLEEP_MODE_IDLE);

sleep_enable(); // enables the sleep bit in the mcucr register

sleep_cpu();      // here the device is actually put to sleep
	
// -------------------------------------------------
// THE PROGRAM CONTINUES FROM HERE AFTER WAKING UP
// -------------------------------------------------
	
sleep_disable();	// disable sleep...

Power consumption

power consumption

Der Stromverbrauch wurde gemessen mit:

  • set_sleep_mode(SLEEP_MODE_PWR_DOWN);
  • ADC deaktiviert

Siehe folgender Artikel: technoblogy.com: ATtiny Low Power

Disable Analog to Digital Converter ADC:


ADCSRA &= ~(1 << ADEN);

Disable ADC Makro:


#define adc_disable() (ADCSRA &= ~(1 << ADEN)) // disable ADC

Arduino Methode:


power_adc_disable();

Interrupt


ISR(PCINT0_vect) {     // pin change interrupt
}
ISR(INT0_vect) {       // external interrupt
}
  • ISR needed for sleep to not reset program after interrupt
  • Every PCINTx will rise PCINT0_vect
  • Typically global variables are used to pass data between an ISR and the main program. To make sure variables shared between an ISR and the main program are updated correctly, declare them as volatile.

GIMSK |= (1 << INT0);          // Enable external Interrupt

MCUCR &= (0 << ISC01);	       // The low level of INT0
MCUCR &= (0 << ISC00);         // generates an interrupt request

Interrupt 0 sense control


sei();          // enable interrupts
cli();          // disable interrupts

Arduino Methode:


interrupts ();// enable interrupts
noInterrupts(); // disable interrupts

Libraries
315Mhz and 433Mhz Manchester encoding RF library which works on Arduino and ATTiny

Nützliche Links
Atmel: ATtiny Datasheet pdf
The pinouts of the most popular AVR processors
mikrocontroller.net: AVR-Tutorial: Interrupts
gammon.com.au: Interrupts
ATtiny: Fuse Restore using HVSP
mikrocontroller.net: Sleep-Mode

Those who would give up essential Liberty …

Those who would give up essential Liberty to purchase a little temporary Safety, deserve neither Liberty nor Safety. (Benjamin Franklin)

“Wer grundlegende Freiheiten aufgibt, um vorübergehend ein wenig Sicherheit zu gewinnen, verdient weder Freiheit noch Sicherheit.”

Wikiquote: Benjamin Franklin

Esxi: Nützliche Konsolenbefehle

Esxi-Host Starten / Stoppen
Startet den Esxi-Host neu. VM’s werden heruntergefahren.

shutdown –r

Startet den Esxi-Host neu. Achtung:VM’s werden nicht sicher heruntergefahren!

reboot

Fährt den Esxi-Host herunter. Achtung:VM’s werden nicht sicher heruntergefahren!

poweroff


ESXi/ESX 4.x and ESXi 5.x/6.0 shutdown and reboot commands

DCUI in der Shell ausführen


>export TERM=linux
>dcui

  1. Farbeschema ändern (optional ;o)
  2. dcui starten

How to Add a Splash of Remote Color to ESXi Shell

NGINX: Command-line parameter -s

Mit dem Command-line paramter “-s” (signal) (ab version >= 0.7.53), kann der laufende Hauptprozess von nginx beeinflusst werden.

Lade die Konfigurationsdateien neu
Dieser Befehl lädt die Konfiguration neu, ohne den Betrieb von nginx
zu beinträchtigen.

nginx -s relaod

Danach werden neue Anfragen mit der neuen Konfiguration bedient.

Beendet nginx sofort

nginx -s stop

Beendet nginx “vorsichtig”

nginx -s quit

Keine neuen Anfragen werden mehr beantwortet, bestehende aber noch bedient.

Nützliche Links
nginx: command-line parameters
Starting, Stopping, and Restarting NGINX

Linux: Nano Command-Line Texteditor

Zum Bearbeiten von Dateien im Terminal oder in der Konsole gibt es einen einfachen Texteditor mit dem Namen “Nano”. Unter Ubuntu ist dieser standardmässig installiert. Ist man sich das Arbeiten mit Nano nicht gewohnt, gibt es doch ein paar kleinere Hürden.

Bearbeiten einer Datei in der Konsole / Terminal:

nano [OPTIONEN] [DATEI] 

Tastenkürzel: Datei Speichern

CTRL + O

Tastenkürzel: Datei schliessen

CTRL + X

Tastenkürzel: In der Datei suchen

CTRL + W

Tastenkürzel: Gleiche Suche wiederholen (Nächstes Resultat)

ALT + W

Tastenkürzel: Zu einer bestimmten Zeile springen

CTRL + G

Tastenkürzel: Textmarkieren

ALT + A

Tastenkürzel: Markiertentext in die Zwischenablage kopieren

ALT + 6

Tastenkürzel: Text aus der Zwischenablage einfügen

CTRL + U

Tastenkürzel: Text ausschneiden und in die Zwischenablage kopieren

CTRL + K

Nützliche Links
Ubuntu Wiki: Nano
GNU Nano Homepage

MFOS Alien Screamer Noise Box

Klänge beeinflussen die Menschen, sie können uns faszinieren, sie erzeugen Erwartungen in uns oder aber stimmen uns traurig oder freudig. Sie können also den Gemütszustand von Menschen beeinflussen. Wie aber entstehen eigentlich Klänge? Klar, diese können mit Hilfe von Gesang, Instrumenten (Blechdosen, Klavier, Gitarre, Computer Software, Synthesizers, usw.) erzeugt werden.

Und endlich sind wir beim Thema angekommen. Dem elektronischen Erzeugen von Klängen. Wer im Internet über dieses Thema recherchiert, wird kurze Zeit später auf den Begriff “DIY-Synth” stossen. Damit ist nichts anderes als “Do it yourself – Synthesizer” gemeint. Klar, wer will den nicht seinen eigenen Synthesizer bauen!? Früher oder später stösst man auf die Webseite von Ray Wilson: Music From Outer Space.

Wow, die Webseite wirkt wirklich wie aus einer anderen Welt, oder doch eher aus einer anderen Zeit? Und vermutlich ist sie es auch! Den wo findet man sonst noch solche wertvollen Informationen rund um dieses Thema? Dazu stellt der Autor auch gleich viele seiner Projekte mit Schemas und Bauteillisten, mit vielen Erklärungen, zum Nachbauen zur Verfügung. Vielen herzlichen Dank Ray Willson!

Als Einstiegs-Projekt habe ich mich für die “MFOS Alien Screamer Noise Box” entschieden, denn wie Ray Willson schreibt:

This is a fairly simple project and is perfect for a synth-diy newbie or a young person interested in synth-diy or making noise boxes. This project results in a little LO-FI noise maker you’ll find yourself playing with again and again. You will need to know how to: Read a schematic, Relate schematic diagrams to physical components, Solder, Populate a PC board, Wire the unit’s front panel components together and to the PC board., Make a simple case or build the board into something unusual.

Seine Aussage kann ich nur bestätigen, hat man sich einwenig mit seinen Plänen auseinandergesetzt und konnte alle Bauteile besorgen, ist es kein grosses Problem mehr die “Noise Box” zu bauen. Da dürfte das beschaffen des Transistors “2N5457 N Channel JFET” schon das grössere Problem sein. :o)

Die Schemas und Erklärungen findet ihr alles unter MFOS Alien Screamer Noise Box. Wünsche viel Spass beim Nachbauen und Ausprobieren!

Meine Version der “Noise Box”
Die Anordnung der Regler und Knöpfe, sowie das Design habe ich einwenig anders gestaltet, da ein Dinosaurier meinen kleinen Kindern mehr sagt als ein Alien. :o)

Screaming Dino: Meine Version der MFOS Alien Screamer Noise Box
Screaming Dino: Meine Version der MFOS Alien Screamer Noise Box
Innenansicht der "Noise Box"
Innenansicht der “Noise Box”
Verkabelung
Verkabelung

Anmerkung zu den verwendeten Bauteilen:

  • Anstelle des “2N5457 N Channel JFET” kann auch die SMD-Version “MMBF5457” verwendet werden
  • Anstelle der “1N914 High Speed Sw. Diode” kann man die standard Diode 1N4148 verwenden, da diese die ältere Diode 1N914 ersetzt

Wird als Transistor die SMD-Version “MMBF5457” von “2N5457” verwendet, sieht das ganze so aus:

SMD Version „MMBF5457“
MMBF5457 das kleine schwarze Quadrat

Erweiterungen “Switched Jack Amplifier Bypass”
Wie auf der Seite MFOS beschrieben, muss man das Schema des Verstärkers einwenig anpassen, wenn der Lautsprecher bei der Verwendung des “Jack” ruhig sein soll.

Modifizierte Verstärkerschaltung
Modifizierte Verstärkerschaltung
Jack Bypass
Jack Bypass

Nützliche Links:
Webseite von Ray Wilson: Music From Outer Space
MFOS Alien Screamer Schematik
Interessantes über Potis

„Es ist unmöglich, einen Mann, dem durch seine Art zu verfahren viel geglückt ist, zu überzeugen…“

„Es ist unmöglich, einen Mann, dem durch seine Art zu verfahren viel geglückt ist, zu überzeugen, er könne gut daran tun, anders zu verfahren. Daher kommt es, dass das Glück eines Mannes wechselt; denn die Zeiten wechseln, er aber wechselt nicht sein Verfahren.“

Niccolò Machiavelli