Forum: Mikrocontroller und Digitale Elektronik Welcher Microcontroller für i2c-Display


von Anfänger (Gast)


Lesenswert?

Hallo an die Wissenden,

ich mache derzeit meine ersten Gehversuche mit Mikrocontrollern, genauer 
gesagt mit einem ATTiny13A, einem Steckbrett, einem einfachen 
ISP-Programmer und softwareseitig unter C mit dem Atmel Studio 7.
Meine wichtigsten Informationsquellen sind das Datenblatt und viel 
nachlesen im Internet. Das sieht auch schon für meine bescheidenen 
Anfänge recht gut aus.

Der nächste Schritt für mich wäre der Anschluß eines einfachen Displays 
(diese OLED-Dinger mit 128x64 Pixeln, wie man sie für kleines Geld 
kaufen kann).

Ziel ist es, den ADC-Wandler mal experimentell zu erkunden und die 
Messwerte direkt auf dem Display anzeigen zu lassen.

Was ich bisher rausgefunden habe: Mein ATTiny13A kann das nicht, ein 
ATTiny85 wäre wohl das Minimum.

Jetzt meine Frage: Welche AVRs kommen in Frage? Ich hätte für später 
gerne ein paar mehr GPIOs als der ATTINY85 bietet. Was wäre die 
nächstgrößere Empfehlung? Bzw. was sind die Kriterien, nach denen ich 
entscheiden kann, wenn i2c ins Spiel kommt? Ich würde gerne bei der 
kleinstmöglichen MCU bleiben.
Auf der Website 
https://en.wikipedia.org/wiki/ATtiny_microcontroller_comparison_chart 
steht i2c bei vielen ATtinys dabei, aber ich habe im Internet praktisch 
ausschließlich den ATtiny85 für konkrete Beschaltung und Beispiele 
finden können. Sind die anderen ATtinies dafür nicht geeignet und falls 
ja - warum? Oder geht mein Vorhaben mit allen ATtinies, die in der 
Tabelle mit i2c gelistet sind?

Was den Anwendungsfall angeht: Es geht nicht um konkrete Projekte, 
sondern ausschließlich um learning by doing für einen Anfänger.

von Karl M. (Gast)


Lesenswert?

Hallo,

man findet als größer AVR die Familie der atmega328p,(mega48p, mega88p 
und mega168p) und der atmega1284p (mega644p, mega324p oder mega164p).

Das sind nur sehr gut beschaffbare und schon länger erhältliche AVRs.

Natürlich hat die Entwicklung weitere AVRs hervor gebracht.

http://www.microchip.com/design-centers/8-bit/avr-mcus

Nicht alle sind einfach über den den Handel preiswert und in kleinen 
Mengen beziehbar.

von Karl M. (Gast)


Lesenswert?

Zum I2C,

ob dies per Hardware unterstützt wird, steht wie immemr im Datenblat des 
Herstellers.

Anderen falls, lässt sich I2C auch reil mit Software implementieren.

von Anfänger (Gast)


Lesenswert?

> Anderen falls, lässt sich I2C auch reil mit Software implementieren.

Auf sowas würde ich als Anfänger gerne erst mal verzichten. Ich bin noch 
bei den Grundlagen, eine Implementierung einer Schnittstelle traue ich 
mir noch nicht zu.

von Karl M. (Gast)


Lesenswert?

Hallo,

Noch ist es wichtig zu wissen, dass I2C (Phillips)  in der Atmel-Welt 
als TWI zu finden ist.

Wie willst Du denn die ATMEL AVR programmieren, konkret mit welcher 
Programmiersprache?

Assembler, C, C++, LunaAVR, Pascal, Basic, Forth usw.

von Mitlesa (Gast)


Lesenswert?

Anfänger schrieb:
> Auf sowas würde ich als Anfänger gerne erst mal verzichten. Ich bin noch
> bei den Grundlagen, eine Implementierung einer Schnittstelle traue ich
> mir noch nicht zu.

Das ist nicht schlimm, dazu gibt es Vorlagen.

Anfänger schrieb:
> Was den Anwendungsfall angeht: Es geht nicht um konkrete Projekte,
> sondern ausschließlich um learning by doing für einen Anfänger.

Nimm einen Arduino Uno, Arduino Nano, oder wenn du später mal
debuggen willst, einen Arduino Mega2560. Die sind untereinander
sehr kompatibel und du brauchst nicht die Arduino IDE benutzen
um mit ihnen zu arbeiten.

von Mitlesa (Gast)


Lesenswert?

Anfänger schrieb:
> Ich bin noch
> bei den Grundlagen, eine Implementierung einer Schnittstelle traue ich
> mir noch nicht zu.

Du musst ja das Rad nicht neu erfinden (ich mache das manchmal)
Hier gibt es eine gute Vorlage:

Beitrag "Re: Soft I2C Master"

Man muss sie nur minimal erweitern für den eigenen Chip den
man ansteuern will.

von Anfänger (Gast)


Lesenswert?

Danke schonmal für die Antworten.

Zusammengefaßt heißt das - ich kann jeden beliebigen ATtiny nehmen, der 
in der Liste 
(https://en.wikipedia.org/wiki/ATtiny_microcontroller_comparison_chart) 
mit i2c gekennzeichnet ist, wenn ich ein Beispiel für den ATtiny85 nehme 
und die Ports entsprechend verdrahte?

von Mitlesa (Gast)


Lesenswert?

Anfänger schrieb:
> wenn ich ein Beispiel für den ATtiny85 nehme
> und die Ports entsprechend verdrahte?

Sei gewarnt dass dir so ein Tiny sehr bald zu klein wird.
Daher mein Arduino Vorschlag. Nimm was Grösseres!

von S. Landolt (Gast)


Lesenswert?

> Sei gewarnt ... Nimm was Grösseres!
Genau, und warum nicht gleich den größten für das Steckbrett, den 
ATmega1284P-PU?
  Kostet bei Reichelt gerade mal 4.60 EUR (nanu, letzte Woche waren das 
doch noch 3.99?).

von S. Landolt (Gast)


Lesenswert?

> ATTiny13A
> ATtiny85

Woher kommt nur bei Anfängern diese Vorliebe für die 8-Pinner? Die sind 
doch nur brauchbar, wenn man schon eine konkrete Anwendung in Planung 
hat und sicher weiß, dass sie ausreichend sind. Ansonsten sind sie wie 
ein zu enger Anzug - man ärgert sich schwarz und gerät ständig ins 
Schwitzen.

von Anfänger (Gast)


Lesenswert?

Woher die Vorliebe für die 8-pinner? Weiß ich auch nicht, aber ich halte 
das für schön übersichtlich und für die ersten Gehversuche für 
vollkommen ausreichend. D.h. - fast. Ein "14- oder 16-Pinner" wäre mir 
lieber.
Deshalb nochmal die Eingangsfrage: Kann ich jeden ATtiny nehmen, der 
laut Datenblatt eine i2c-Unterstützung bietet und warum finde ich 
praktisch nur Anleitungen für genau den "8-Pinner" ATtiny85 und nicht 
für die vielen anderen ATtiny-Typen?

von Norbert S. (norberts)


Lesenswert?

Moin,

Für solche Experimente drängt sich der Arduino Nano auf.
Mega328, der grösste aus der populärsten Familie ab Mega88.
Der hat alle Standard-Peripherie, 16MHz Quarz, 5V Regler (gibts auch in 
3,3V), USB-Uart-Wandler, strategische Debug-LED, ISP-Stecker. Alles 
fertig und Steckbrettkompatibel.
Den bekommst Du im 5er-Pack vom Chinamann für einen ähnlichen Preis wie 
sonst blanke µC bei Reichelt.
Von negativen Erfahrungen mit der Hardware der Nanos aus China liest man 
eigentlich nichts. Naja, manchmal ist da der Arduino-Bootloader nicht 
drauf aber das kratzt Dich ja nicht.
Der Vorteil der Mega88/168/328 Familie ist, daß sie praktisch alle 
Standardregister haben. Alle anderen Controller sind eher als 
Spezialisten zu betrachten, also abgespeckt, mit Spezialfunktionen oder 
einfach aufgebohrt.
Da würde ich mich am Anfang nicht mit Tinys und ihren Limits oder 
irgendeinem Boliden mit 6 Timern quälen.
Wenn Du damit fit bist, kannst Du Dich mit Spezialisten für einen 
bestimmten Zweck befassen. Da ist dann mal dies oder das anders aber 
alles was sie gemeinsam haben, findest Du genau so in den 88-328.

Gruß,
Norbert

von S. Landolt (Gast)


Lesenswert?

> ... und nicht für die vielen anderen ATtiny-Typen?

Weil die 'i2c-Unterstützung', also die TWI-Handhabung, bei allen AVR8 
(nahezu) identisch ist. Und ja, das gilt auch für die ATmega.

von Norbert S. (norberts)


Lesenswert?

S. Landolt schrieb:
> Weil die 'i2c-Unterstützung', also die TWI-Handhabung, bei allen AVR8
> (nahezu) identisch ist.

Nur der Vollständigkeit halber: Das gilt, solange I2C/TWI nicht in Form 
der USI daher kommt. Damit geht es zwar aber es ist ein Albtraum.

Gruß,
Norbert

von S. Landolt (Gast)


Lesenswert?

PS:
Für TWI muss man sich bei den kleinsten AVR8 mit dem 'USI' herumärgern, 
wenn man Hardwareunterstützung haben will, das ist etwas lästig - dann 
lieber gleich in Software.

von Mitlesa (Gast)


Lesenswert?

Mitlesa schrieb:
> Sei gewarnt dass dir so ein Tiny sehr bald zu klein wird.

Hinzu kommt dass mit so einer Display-Lib vielleicht schon bald
das Ende des Tiny-Speichers erreicht wird. Man will ja noch etwas
aussen herum programmieren und nicht nur die Display-Ansteuerung
in den Speicher quetschen. Ich sag jetzt nix mehr ....

Anfänger schrieb:
> Der nächste Schritt für mich wäre der Anschluß eines einfachen Displays
> (diese OLED-Dinger mit 128x64 Pixeln, wie man sie für kleines Geld
> kaufen kann).

von Wolfgang (Gast)


Lesenswert?

Anfänger schrieb:
> Zusammengefaßt heißt das - ich kann jeden beliebigen ATtiny nehmen, der
> in der Liste

Wer hat dir den Floh mit den ATtinys in den Kopf gesetzt?
Ein ATmega168 als fertig aufgebautes Modul kostet über eBay 1,50€ oder 
ein ATmega328 mit USB-Wandler vielleicht 2,50€

von Mitlesa (Gast)


Lesenswert?

Wolfgang schrieb:
> Wer hat dir den Floh mit den ATtinys in den Kopf gesetzt?

Ich hab's schon gemerkt, bei Betonköpfen hilft halt einfach
gar überhaupt nix mehr .....

von InFo (Gast)


Lesenswert?

S. Landolt schrieb:
> Für TWI muss man sich bei den kleinsten AVR8 mit dem 'USI' herumärgern

Falls dann doch mal echte TWI hardware vorhanden ist, kann die oft nur 
den Slave mode.
Manche va. neue Tinys unterstützen zwar auch master, aber viele davon 
müssen per UPDI programmiert werden, was nicht jeder Programmer 
unterstützt.


Mitlesa schrieb:
> Nimm einen Arduino

Anfänger schrieb:
> C mit dem Atmel Studio 7

Der TO will seinen µC kennenlernen und OHNE das Arduinoframework 
programmieren.

von Johannes S. (Gast)


Lesenswert?

zum abgucken gibts z.B. das hier: 
Beitrag "SSD1306/1309 Library zum Darstellen von Text auf OLED Displays"
Wenn das Display im Grafikmode mit Framebuffer betrieben werden soll 
braucht der schon 1 kB RAM und Fonts brauchen auch Platz.
Ich würde nicht mal mit einem 8 Bitter ein Display betreiben wollen.

von Dieter F. (Gast)


Lesenswert?

InFo schrieb:
> Der TO will seinen µC kennenlernen und OHNE das Arduinoframework
> programmieren.

Das kann er mit jedem beliebigen Arduino... . Die lassen sich alle 
(soweit mir bekannt) über das Atmel-Studio (und ISP) als "ganz normale 
Atmel-MCU" programmieren. Oft Steckbrett-tauglich und mit der 
minimal-Beschaltung versehen. Aus meiner Sicht ideal für einen Anfänger 
- auch für Steckbrett-Versuche manch etwas Fortgeschrittenen.

von Wolfgang (Gast)


Lesenswert?

InFo schrieb:
> Der TO will seinen µC kennenlernen und OHNE das Arduinoframework
> programmieren.

Ein Arduino ist eine Hardware mit meist einem ATmega µC drauf, was 
kommst du jetzt mit dem Arduino Framework?

von Bauform B. (bauformb)


Lesenswert?

Anfänger schrieb:
> warum finde ich praktisch nur Anleitungen für genau den "8-Pinner"
> ATtiny85 und nicht für die vielen anderen ATtiny-Typen?

Filterblase mit eingebauter Mitkopplung. Wobei hier nicht nur ein 
Einzelner gefangen wurde, sondern die Gruppe der Hobby-uC-Programmierer. 
Warum findet man überhaupt soviel AVR,  es gibt doch uC, die 
übersichtlicher und einfacher zu programmieren sind?

von Dieter F. (Gast)


Lesenswert?

Bauform B. schrieb:
> es gibt doch uC, die
> übersichtlicher und einfacher zu programmieren sind?

Ja - zeig mal bitte.

von S. R. (svenska)


Lesenswert?

Qemu emuliert einen Cortex-M3 von TI (lm3s811), der ist auch nicht 
komplexer als ein AVR, aber eben auch nicht viel fähiger. UART und 
Display sind in der Emulation auch mit drin.

von Dieter F. (Gast)


Lesenswert?

S. R. schrieb:
> Qemu emuliert einen Cortex-M3 von TI (lm3s811), der ist auch nicht
> komplexer als ein AVR, aber eben auch nicht viel fähiger. UART und
> Display sind in der Emulation auch mit drin

Schön - und ?

von S. R. (svenska)


Lesenswert?

Das ist ein übersichtlicher, einfacher Mikrocontroller, der zur 
Abwechslung mal kein AVR ist. Und dank großem Adressraum auch einfacher 
zu programmieren.

: Bearbeitet durch User
von Dieter F. (Gast)


Lesenswert?

S. R. schrieb:
> Das ist ein übersichtlicher, einfacher Mikrocontroller, der zur
> Abwechslung mal kein AVR ist.

Habe ich etwas verpasst - das ist ein Emulator - kein MC oder ?

von S. Landolt (Gast)


Lesenswert?

> ... großem Adressraum ...

Es wäre ja schon ein Erfolg, wenn wir den 'Anfänger' von seinem ATtiny85 
mit den 8 KiB Flash und 512 Bytes SRAM weggebracht hätten (vom ATtiny13 
ganz zu schweigen).

von Dieter F. (Gast)


Lesenswert?

S. Landolt schrieb:
> Es wäre ja schon ein Erfolg, wenn wir den 'Anfänger' von seinem ATtiny85
> mit den 8 KiB Flash und 512 Bytes SRAM weggebracht hätten (vom ATtiny13
> ganz zu schweigen).

Wohin - und zu welchem Zweck?

von Anfänger (Gast)


Lesenswert?

An dieser Stelle schon mal Danke für die zahlreichen Antworten.

Wie InFo richtig geschrieben hat:
> Der TO will seinen µC kennenlernen

Ich bin der Meinung, daß man erst mal laufen lernen sollte, bevor man 
sich an das Rennen wagt - deshab erst mal eine Nummer kleiner.

Und ich werde es jetzt ganz pragmatisch lösen - ich bestelle mir einfach 
ein paar verschiedene Typen, sowohl größere ATTinies als auch ein, zwei 
Atmegas. Bedenken, daß mir sowas mal zu klein wird, habe ich keine. Ich 
bin sehr weit entfernt davon, so ein Ding auch nur ansatzweise 
auszureizen.

von Sebastian S. (amateur)


Lesenswert?

Es gibt eine Menge Argumente, die für oder gegen den ATTiny sprechen, 
wenn Du ihn aber nutzen willst, spricht nichts dagegen.
Schnapp Dir einfach die oben angeführte Liste, der verfügbaren Bausteine 
und such Dir einen aus, Deine gewünschte Peripherie hat.

Vereinfacht gilt hier: Ein Einheitskern (was den ATTiny ausmacht) und 
eine variierende Peripherie. Also eine unterschiedliche Anzahl an 
I/O-Ports und verschiedene Goodies rund-herum.
Ist die Peripherie bekannt so kannst Du die Beispiele auch von anderen 
ATTinies verwenden. Ein paar Indexe können allerdings variieren.

von Stefan F. (Gast)


Lesenswert?

Anfänger schrieb:
> Jetzt meine Frage: Welche AVRs kommen in Frage?

Das hängt von Speicherbedarf deines Programmes ab. Du kannst ja mal ein 
Hello-World Programm mit printf() für den ATtiny85 compilieren und 
schauen, wie groß das wird.
1
int main()
2
{
3
   display initialisieren
4
   printf("Hello World %i",ADC);
5
}

Plane dann noch etwas Reserve für deinen persönlichen Code ein. Da Du 
nicht allzu viel vor hast schätze ich, dass du mit weiteren 4kB 
auskommen wirst.

> Ich hätte für später gerne ein paar mehr GPIOs als der
> ATTINY85 bietet. Was wäre die nächstgrößere Empfehlung?

ATtiny841. Ich würde aber gleich einen ATmega328P nehmen, falls der 
nicht zu groß ist. Eventuell in Form eines "Arduino Nano compatible" 
Modul.

> Bzw. was sind die Kriterien, nach denen ich
> entscheiden kann, wenn i2c ins Spiel kommt?

I²C ist nicht kritisch, das kann man notfalls durch eine 
Software-Routine emulieren.

> Auf der Website ... steht i2c bei vielen ATtinys dabei, aber
> ich habe im Internet praktisch ausschließlich den ATtiny85 für
> konkrete Beschaltung und Beispiele finden können.

Das liegt daran, dass die meisten Bastler entweder einen 8 Pinner als 
Minimal-Lösung verwenden wenn es besonders klein werden soll, oder 
gleich auf einen wesentlich größeren Wechseln.

Die "Arduino Nano compatible" Module bieten sich zum Experimentieren an, 
weil sie einen USB-UART, Quarz und ISP-Stecker mit drauf haben. Und sie 
passen auf Steckbretter ebenso, wie auf Lochraster-Platinen.

Bei der Wahl solltest du berücksichtigen, dass nicht alle ATtinies eine 
Debugger Schnittstelle (Debug Wire, DW) haben. Debugger können bei der 
Fehlersuche extrem hilfreich sein, denn damit kannst du quasi in den 
Chip hinein schauen und sehen, was er gerade macht. Der ATtiny26 hat zum 
Beispiel keine, der ATtiny261 aber schon.

Wenn du auf einem großen AVR das Programm fertig hast, kannst du in 
einem zweiten Schritt immer noch auf einen kleineren AVR wechseln. In 
der Regel muss man nur wenige Zeilen anpassen, wenn das Programm 
ordentlich strukturiert ist. Du weißt dann auch, wie viele Pins und 
Speicher benötigt werden.

von Mitlesa (Gast)


Lesenswert?

Anfänger schrieb:
> Bedenken, daß mir sowas mal zu klein wird, habe ich keine. Ich
> bin sehr weit entfernt davon, so ein Ding auch nur ansatzweise
> auszureizen.

Wir schon. Sehr sogar.

Mitlesa schrieb:
> Hinzu kommt dass mit so einer Display-Lib vielleicht schon bald
> das Ende des Tiny-Speichers erreicht wird. Man will ja noch etwas
> aussen herum programmieren und nicht nur die Display-Ansteuerung
> in den Speicher quetschen.

Wenn du es jetzt noch nicht kapiert hast dann muss ich leider
den dringenden Troll-Verdacht aussprechen.

von Stefan F. (Gast)


Lesenswert?

Der ATtiny13 ist schon mit

printf("Hello World %i",zahl);

überfordert.

von Anfänger (Gast)


Lesenswert?

Anfänger schrieb:
> Bedenken, daß mir sowas mal zu klein wird, habe ich keine. Ich
> bin sehr weit entfernt davon, so ein Ding auch nur ansatzweise
> auszureizen.

Wir schon. Sehr sogar.

Mein Name ist Programm. Ich mache das einzig und allein als reines Hobby 
in der Freizeit, einfach, weil es mich interessiert und Spaß macht. Da 
habe ich natürlich ganz andere "Anforderungen" als die Profis.

von Anfänger (Gast)


Lesenswert?

> Das liegt daran, dass die meisten Bastler entweder einen 8 Pinner als
> Minimal-Lösung verwenden wenn es besonders klein werden soll, oder
> gleich auf einen wesentlich größeren Wechseln.

Danke, das könnte das mit dem ATTiny85 erklären.


> Die "Arduino Nano compatible" Module bieten sich zum Experimentieren an,
> weil sie einen USB-UART, Quarz und ISP-Stecker mit drauf haben. Und sie
> passen auf Steckbretter ebenso, wie auf Lochraster-Platinen.

Ich habe meine Anregungen vorwiegend aus dem Buch von Stefan Frings 
(hier im Forum gefunden) - "Einstieg in die Elektronik mit 
Mikrocontrollern" (Band 1). Ich hielt mich zunächst sehr eng an das 
Buch, aber inzwischen schweife ich ab und fange an, selbst zu 
experimentieren. Genau das ist es, was für mich den Reiz ausmacht. 
Natürlich kann und will ich mich nicht mit den Profis vergleichen, 
deshalb auch lieber erst mal ganz klein anfangen. Die Ratschläge mit 
"nimm lieber gleich was richtiges" sind für mich erst mal nicht 
zielführend, weil ich die "richtigen" sowieso nicht mal im Ansatz nutzen 
würde.
Wie gesagt - ich stehe noch am Anfang und habe auch nur eine 
dementsprechende Ausstattung. Meine "Programmierplatine" ist Marke 
Eigenbau exakt nach dem Buch, das reicht mir auch völlig aus. Aber jetzt 
glaube ich, daß ich einen Schritt in Richtung "nächste Größe" gehen 
kann.

von Johannes S. (Gast)


Lesenswert?

Anfänger schrieb:
> Ich hielt mich zunächst sehr eng an das Buch, aber inzwischen schweife
> ich ab

Guter Weg, bleibe dabei. Das Forum hier hat seine eigenen Regeln und 
macht dich nur kirre.

von Mark (Gast)


Lesenswert?


von Norbert S. (norberts)


Lesenswert?

Stefanus F. schrieb:
> ATtiny841.

Super Scheissidee. Das ist ein Spezialist mit viel Kommunikation aber 
z.B. keinem ADC.
Was soll der Quatsch?
Ein Nano ist genau richtig.

Gruß,
Norbert

von Peter (Gast)


Lesenswert?

Ich nutze auch den Atmega 1284p. Der hat genug Platz für mich und 
einiges auf Reserve

von Dieter F. (Gast)


Lesenswert?

Stefanus F. schrieb:
> Der ATtiny13 ist schon mit
>
> printf("Hello World %i",zahl);
>
> überfordert.

Der nicht ... :-)

von Norbert S. (norberts)


Lesenswert?

Stefanus F. schrieb:
> ATtiny261

Nächste Scheissidee.
Schau Dir mal die PCI-Register genau an. Das tut man sich nur an, wenn 
man die 6 PWM-Ausgänge braucht. (Welche allerdings ziemlich geil sind, 
wenn man es im Griff hat)
Die PCI-Register sind da total zerwürfelt, das sollte sich ein Anfänger 
nicht wirklich antun.

Gruß,
Norbert

von Stefan F. (Gast)


Lesenswert?

Norbert S. schrieb:
> Stefanus F. schrieb:
>> ATtiny841.
> Super Scheissidee. Das ist ein Spezialist mit viel Kommunikation aber
> z.B. keinem ADC.
> Was soll der Quatsch?


Da habe ich gepennt. Ohne ADC hätte ich den nicht vorschlagen sollen.

von Finger weg (Gast)


Lesenswert?

Was soll überhaupt der AVR Quatsch. Nimm was moderneres und ärgere  dich 
nicht mit dem alten scheiss rum.

Beim AVR ist der Weg das Ziel. Das geht heute viel einfacher, pnp, keine 
teueren Adapter, kein verfusen!

von Stefan F. (Gast)


Lesenswert?

Anfänger schrieb:
> Ich habe meine Anregungen vorwiegend aus dem Buch von Stefan Frings
> (hier im Forum gefunden) - "Einstieg in die Elektronik mit
> Mikrocontrollern" (Band 1).

Da habe ich einen ganz heißen Tipp für dich: Auf den letzten Seiten des 
Buches findest du eine Auflistung von AVR Mikrocontrollern, die man im 
DIP Gehäuse kaufen kann. Da steht auch, wie viele analogen Eingänge sie 
haben, und welche das von Dir gewünschte TWI Interface haben.

Meine Meinung zum TWI Interface ist allerdings, dass es nicht einfacher 
zu handhaben ist, als eine selbst geschriebene Software-Emulation.

Dieser ominöse Stefan (kenn ich den? -:) ) hat in seinem Buch Kapitel 
12.2 Quelltext für die TWI Schnittstelle veröffentlicht.

In diesem Arduino Projekt 
(http://stefanfrings.de/esp8266/WIFI-Kit-8-Test2.zip) findest du C++ 
Code, um so ein Display über eine per Software emulierte I²C 
Schnittstelle anzusteuern. Von dort kannst du abgucken.

Finger weg schrieb:
> Beim AVR ist der Weg das Ziel.

Das sehe ich anders. Und wenn schon? Bei einem Hobby ist eigentlich 
immer der Weg das Ziel.

> Das geht heute viel einfacher, pnp, keine  teueren Adapter

Programmieradapter für AVR bekommt man ab 1,50 Euro inclusive 
Versandkosten. Abgesehen davon, hat der TO bereits einen.

> kein verfusen!

Man kann AVR Mikrocontroller auch ohne herumfummeln an den Fuses 
sinnvoll einsetzen. Bei mehr als der Hälfte der Modelle kann man sogar 
die Taktfrequenz per Software ändern. Außerdem passiert Dir das mit dem 
Verfusen höchstens zwei mal, wenn du zurechnungsfähig bist. Diese 
Übungen hat der TO bereits an einem 90 Cent Controller hinter sich.

von Christian S. (roehrenvorheizer)


Lesenswert?

 "der Anschluß eines einfachen Displays (diese OLED-Dinger mit 128x64 
Pixeln, wie man sie für kleines Geld kaufen kann)."


Das ist doch nicht einfach. Nimm ein normales Text-LCD.
Tiny2313, tiny4313 sollten Deine Favoriten zu Anfang sein.

MfG

von S. R. (svenska)


Lesenswert?

Dieter F. schrieb:
>> Das ist ein übersichtlicher, einfacher Mikrocontroller, der zur
>> Abwechslung mal kein AVR ist.
>
> Habe ich etwas verpasst - das ist ein Emulator - kein MC oder ?

Völlig überraschend emuliert der Emulator einen real existierenden 
Mikrocontroller, den man sogar kaufen kann. Stell dir vor.

Was ich damit ausdrücken wollte, nachdem du mich so vollständig 
absichtlich missverstehen wolltest: Es gibt auch wenig komplexe 
Mikrocontroller jenseits von AVR. Zum Beispiel den LM3S811 von TI (64 KB 
Flash, 8 KB RAM, Cortex-M3). Der wird sogar von Qemu emuliert (inklusive 
I2C-Display).

Verstehst du jetzt, was ich von dir wollte?

von Stefan F. (Gast)


Lesenswert?

Norbert S. schrieb:
>> ATtiny261
> Nächste Scheissidee. Schau Dir mal die PCI-Register genau an.

Meinst du die Pin-Change Interrupts?

Falls dich diese Pillepalle erschreckt, solltest du vielleicht besser 
was ganz anderes machen, als µC zu programmieren. Für die oben genannte 
Aufgabe benötigt der TO keine Pin Change Interrupts.

Ich hoffe, du meinst etwas anderes.

von Christian S. (roehrenvorheizer)


Lesenswert?


von Norbert S. (norberts)


Lesenswert?

Stefanus F. schrieb:
> Meinst du die Pin-Change Interrupts?
>
> Falls dich diese Pillepalle erschreckt, solltest du vielleicht besser
> was ganz anderes machen, als µC zu programmieren. Für die oben genannte
> Aufgabe benötigt der TO keine Pin Change Interrupts.
>
> Ich hoffe, du meinst etwas anderes.

Doch, genau das meinte ich.
Du willst doch nicht behaupten, daß die PCI-Register bei den 261-861 
kein Problem sind? Schau mal ganz genau ins Datenblatt.
Das ist komplett anders als üblich, ein paar Bits sind per Default 
gesetzt usw..
Ich komme damit klar und ich brauche die 6 PWM-Ausgänge aber das sollte 
man keinem Anfänger empfehlen.
Warum zum Teufel sollte er einen TinyX61 nehmen?
Da hat man auch gleich den Spaß mit der USI.
Läuft alles, USI als TWI-Slave, 3-Phasen PWM mit Deadtime. Das kann das 
Ding aber bitte nicht für Anfänger!

Gruß,
Norbert

von Stefan F. (Gast)


Lesenswert?

Norbert S. schrieb:
> Das (Pin Change Interrupts) ist komplett anders als üblich,
> ein paar Bits sind per Default gesetzt usw..

Finde ich nicht schlimm. Wenn man nicht nur eine µC Serie programmiert, 
gewöhnt man sich daran, immer das jeweilige Datenblatt zu Rate zu 
ziehen.

Im 32bit Umfeld kämpft man mit ganz anderen Sachen. Schau Dir mal die 
I²C Schnittstelle vom STM32F103 und die dazugehörige Application Note 
an. Oder dessen USB Interface. Dann darfst du gerne kotzen.

> Da hat man auch gleich den Spaß mit der USI.

Die USI Schnittstelle finde ich auch ätzend.

von Peter (Gast)


Lesenswert?

Hallo Stefanus
Hast du dir mal den SAM D21 und I2C angesehen? Finde ich fast einfach.

von Stefan F. (Gast)


Lesenswert?

Peter schrieb:
> Hallo Stefanus
> Hast du dir mal den SAM D21 und I2C angesehen? Finde ich fast einfach.

Nein habe ich nicht. Ich sehe, dass Conrad ein Evaluation Kit mit Namen 
ATSAMD21-XPRO hat. Ziemlich teuer und unhandlich für den Einbau in eine 
Bastelei, finde ich.

Da sind mir Module im Format des Arduino Nanos sympathischer. Mehr Pins 
brauche ich ohnehin nur selten.

von Norbert S. (norberts)


Lesenswert?

Stefanus F. schrieb:
> Norbert S. schrieb:
>> Das (Pin Change Interrupts) ist komplett anders als üblich,
>> ein paar Bits sind per Default gesetzt usw..
>
> Finde ich nicht schlimm. Wenn man nicht nur eine µC Serie programmiert,
> gewöhnt man sich daran, immer das jeweilige Datenblatt zu Rate zu
> ziehen.
>
> Im 32bit Umfeld kämpft man mit ganz anderen Sachen. Schau Dir mal die
> I²C Schnittstelle vom STM32F103 und die dazugehörige Application Note
> an. Oder dessen USB Interface. Dann darfst du gerne kotzen.

Moin,

Daß mal was anders ist mag ja ok sein aber bei den X61 ist die 
Bezeichnung der PCI-Register teilweise wirklich unlogisch und daß da 
(einige, nicht alle!) Bits per default gesetzt sind ist auch sehr 
überraschend.
Daß das bei 32bittern alles noch viel schlimmer sein kann glaube ich 
gerne aber das ist doch keine Entschuldigung.
Wenn man von den M88-328 kommt sind vieleicht mal die Timer anders, der 
WDT und so Zeug aber dann sind das andere Features, mehr oder weniger 
Modi usw.. Aber so komisch anders wie die PCI bei den X61 habe ich bei 
den AVR8 sonst noch nicht erlebt. Das ist auch in sich unlogisch. Im 
Datenblatt liest sich das fast wie ein C&P-Fehler.

Wie auch immer, einen Anfänger sollte man nicht gleich in diese Richtung 
schubsen. Die x61 braucht man nur, wenn man die PWM zwingend braucht. 
Sonst sind die Dinger nur Mist.
Wenn man auf den 88-328 lernt, also einem Nano, dann ist das wie VW-Golf 
als Fahrschulwagen. Alles da, wo man es erwartet. Bei allen anderen 
Autos ist das meiste auch so. Details weichen ab aber so grob bleibt das 
Prinzip. Was allen gemeinsam ist, ist im Golf komplett so abgebildet.
Auf einem Auto zu lernen, bei dem die Handbremse ein Fußpedal ist und 
der Scheibenwischer mit Knöppen auf dem Armaturenbrett bedient wird ist 
eben nicht sinnvoll.

Wenn der Hobbybastler dann irgendwnn mit dem M328 auf dem Nano an 
Grenzen stösst, kann er sich immer noch umsehen. Dann ist er aber auch 
fit genug, um die Fallen beim Umstieg zu meistern.

Gruß,
Norbert

: Bearbeitet durch User
von Stefan F. (Gast)


Lesenswert?

> einen Anfänger sollte man nicht gleich in diese Richtung schubsen.

Hat ja auch keiner gemacht. Der ATtiny261 wurde nur im Vergleich zum 
ATtiny26 genannt und zu zeigen, dass nicht alle Modelle einen Debug Wire 
Pin haben.

Empfohlen wurde der ATmega328.

von Peter (Gast)


Lesenswert?

Du hast Recht, das Teil kostet so ca 58 Euro. es handelt sich um das 
Emtwicklungsboard des Herstellers, also original. Es gibt noch ein parr 
zusätzliche Platinen dazu. Egal.
Habe mir bei Rodenhausen eine Platine mit dem SAM D21 geholt, da kostet 
es ca. 25 Euro. Noch ein paar Steckerleisten dazu und es kann losgehen. 
Es ist aufwendiger und braucht noch ein paar zusätzliche Teile. Einen 
Arduino packst du aus und los geht es. Kann aber die kastrierte 
Programmierung nicht leiden. Mache alles mit C
Peter

von S. R. (svenska)


Lesenswert?

Peter schrieb:
> Kann aber die kastrierte
> Programmierung nicht leiden. Mache alles mit C

Ich benutze inzwischen nur Arduino(-Klone), habe aber die Arduino-IDE 
noch nie angefasst. Funktionierende Hardware in der Hand zu haben macht 
vieles einfacher, und AVR ist mir trotz allem sympathisch.

von Finger weg (Gast)


Lesenswert?

Schade das du jeden Thread enterst und nur Geschwafel schreibst:
Beitrag "Re: Welcher Microcontroller für i2c-Display"

Aber du bestätigst, dass die avr alte Kamellen sind. Und das die Dinger 
einfach abzuschießen sind, verfusen.

Also ist der beste Tipp: Nimm einen modernen uC und lass die Finger von 
dem alten Scheiss. Die Zeit der avr ist vorbei.

von Manfred (Gast)


Lesenswert?

Norbert S. schrieb:
> Wenn der Hobbybastler dann irgendwnn mit dem M328 auf dem Nano an
> Grenzen stösst, kann er sich immer noch umsehen.

Ich lese immer Nano - für Anwendungen ohne Arduino-IDE scheint mir 
doch der Pro-Mini passender. Einen AT328 mit Quarz dran und einem 
Spannungsreglerchen davor bekommt man nicht billiger hin, von der 
Bauform her passt auch der sehr gut in die Lochrasterplatte.

Im Gegensatz zum Nano kann man den ProMini sinnvoll schlafen legen, weil 
eben kein USB-Interface drauf ist. Ich nutze beide, allerdings mit der 
A*-IDE.

von S. R. (svenska)


Lesenswert?

Ich hatte auch meine Freude mit den Pro Micro - dank Atmega32U4 können 
die ordentliches USB. Ein paar Pro Mini habe ich aber auch.

von Manfred (Gast)


Lesenswert?

Peter schrieb:
> Ich nutze auch den Atmega 1284p. Der hat genug Platz für mich

Wenn ich etwas baue, mache ich zuerst die Mechanik, Gehäuse, Display, 
Taster ..., bevor auch nur ein einziges Bauteil auf der Lochrasterkarte 
ist. Dann kommt die Elektronikhardware, bevor ich beginne, die Software 
zu schreiben - einfach "über den dicken Daumen geguckt", dass es schon 
passen wird.

So begab es sich, dass die Hardware komplett fertig war, als Hirn ein 
A*-Nano drin und der Compiler "135%" Speicherbedarf meldete :-(

Ja, hätte ich es erahnt, hätte ich einen A*-Mega-Clone draufgepackt. 
Umbau unmöglich, also anderer Weg: Ich schaue mal, wie beschissen ich 
denn eigentlich programmiert habe! Ich werfe redundante Programmteile 
weg und rufe mit Parametern auf, ich ermittele den Platzbedarf 
verschiedener Variablentypen und und und - das Gerät ist seit ein paar 
Monaten in Betrieb, der Speicher vom AT328 genügt und ich habe viel 
dabei gelernt!

Wenn nun der TO 'Anfänger' mit kleinen AT-Tinys loslegt, wird er 
sicherlich auch vor die Wand fahren, weil die Hardware knapp wird. Das 
kann er umgehen, indem er mit einem größeren µC losmacht. Es bietet ihm 
aber auch die Chance, von Anfang an zu lernen, effektiv zu programmieren 
- welchen dieser beiden Wege soll man ihm nun empfehlen?

von S. R. (svenska)


Lesenswert?

Manfred schrieb:
> welchen dieser beiden Wege soll man ihm nun empfehlen?

Den Führerschein der Klasse B macht man üblicherweise auf einem Auto der 
Mittelklasse, nicht auf einem Trabant oder einem Porsche. Aus gutem 
Grund.

von Manfred (Gast)


Lesenswert?

S. R. schrieb:
> Manfred schrieb:
>> welchen dieser beiden Wege soll man ihm nun empfehlen?
>
> Den Führerschein der Klasse B macht man üblicherweise auf einem Auto der
> Mittelklasse, nicht auf einem Trabant oder einem Porsche. Aus gutem Grund.

Also empfehlen wir einen AT-168?

Den Auto-Vergleich sehe ich hier leider nicht als passend, der Umstieg 
auf ein größeres Fahrzeug bei mangelnder Erfahrung birgt ein erhebliches 
Risiko. Ein größerer / schnellerer µC rechnet dann eben schneller, aber 
bringt meine Schaltung nicht um.

von Wolfgang (Gast)


Lesenswert?

Peter schrieb:
> Einen Arduino packst du aus und los geht es. Kann aber die kastrierte
> Programmierung nicht leiden. Mache alles mit C

Was hindert dich daran, ein Arduino Board in C zu programmieren?
Auf den Boards sind ganz normale Atmel Prozessoren drauf und den 
Bootloader darf man, wenn er einem nicht passt, überschreiben.

von Peter D. (peda)


Lesenswert?

Anfänger schrieb:
> Der nächste Schritt für mich wäre der Anschluß eines einfachen Displays
> (diese OLED-Dinger mit 128x64 Pixeln, wie man sie für kleines Geld
> kaufen kann).

Es gibt nicht das eine OLED. Daher immer den konkreten Typ oder besser 
einen Link auf das Datenblatt posten.

Ein Grafidisplay überfordert den ATtiny13 völlig, Du brauchst viel Platz 
für Schriftarten. Selbst mit 8kB Flash (Attiny85) ist kaum mehr als ein 
5*7 Font drin. Da kannst Du auch gleich ein Textdisplay nehmen.

von S. R. (svenska)


Lesenswert?

Manfred schrieb:
>>> welchen dieser beiden Wege soll man ihm nun empfehlen?
>>
>> Den Führerschein der Klasse B macht man üblicherweise auf
>> einem Auto der Mittelklasse, nicht auf einem Trabant oder
>> einem Porsche. Aus gutem Grund.
>
> Also empfehlen wir einen AT-168?

Den wirst du schwerlich irgendwo finden. Auch 286er sind sowohl 
unpassend wie historisch. Den Führerschein macht man schließlich auch 
nicht auf einem Ford Model T.

> Den Auto-Vergleich sehe ich hier leider nicht als passend, der Umstieg
> auf ein größeres Fahrzeug bei mangelnder Erfahrung birgt ein erhebliches
> Risiko.

Ich wollte damit ausdrücken, dass ein Atmega328p eine gute Balance ist. 
Es ist nicht der größte AVR (mit dem man verschwenderisch umgehen 
würde), es ist nicht der kleinste AVR (mit dem man ständig gegen Wände 
rennt) und es ist nicht der seltsamste AVR.

> Ein größerer / schnellerer µC rechnet dann eben schneller, aber
> bringt meine Schaltung nicht um.

Innerhalb der AVR-Klasse sind die Rechenleistungen alle ziemlich gleich. 
Ein Atmega328p ist nicht schneller oder langsamer als ein Atmega88 oder 
Atmega1284p, und auch nur geringfügig schneller als ein Attiny (dank 
HW-Multiplizierer).

Einen anderen Mikrocontroller-Typen (z.B. ARM) bekommst du in die 
gleiche Schaltung vermutlich nicht rein, die sind hier aber auch nicht 
Thema.

von Florian S. (sevenacids)


Lesenswert?

Warum eigentlich unbedingt mit dem kleinsten MCU beginnen? Also ich gehe 
seit jeher so vor, dass ich eher zum Größten (oder eine Stufe darunter) 
greife und damit anfange ein Projekt umzusetzen. Wenn ich dann 
abschätzen kann, mit wieviel Speicher/SRAM/Pins/etc. bzw. Peripherie ich 
auskomme, steige ich bei Bedarf auf einen entsprechend kleineren, 
ausreichenden MCU um. Den Code, in C, muss man dafür oft ja nur 
geringfügig anpassen. Wobei ich mich momentan auch eher weg von AVR hin 
zu ARM bewege. So ein SAM D21 kostet im Vergleich zu einem z.B. 
mega328PB in etwa dasselbe und man macht damit einen ersten Schritt in 
die (u.U. durchaus komplexe) "moderne" ARM-Welt.

Wenn ATtiny, dann bitte einen mit modernerem Kern, z.B. einen 1616er. 
Der bringt hardwareseitig echtes UART, I2C und SPI mit (die alten haben 
ja oft nur ihr seltsames USI) und den gibt es als 20-SOIC - noch nicht 
zu groß und relativ einfach auf ein entsprechendes Breakout-Board 
(SOIC-zu-DIP) gelötet kann man ihn gut auf dem Steckbrett einsetzen. Die 
externe Beschaltung hält sich auch sehr in Grenzen, man braucht nur den 
üblichen Abblockkondensator an VCC, einen externen Taktgeber benötigt 
man für einfache Sachen nicht unbedingt. Der Pullup für den Reset ist 
bereits integriert. Einziger Nachteil ist die zwingende Programmierung 
über die UPDI-Schnittstelle. Das können noch nicht so viele OSS-Adapter. 
Wenn man aufs Debugging verzichten kann, reicht aber u.U. schon ein 
USB-UART-Umsetzer und Python-Skript (pyupdi, mit Anpassung) aus.

: Bearbeitet durch User
von Stefan F. (Gast)


Lesenswert?

Florian S. schrieb:
> Warum eigentlich unbedingt mit dem kleinsten MCU beginnen? Also ich gehe

Ich fühle mich wohler, mit kleinen Brötchen zu beginnen. Je weniger 
Features und Pins das Ding hat, umso sicherer fühle ich mich am Anfang. 
Direkt danach habe ich dann ganz ohne Probleme einen ATmega644 
verwendet.

Die Unterschiede zwischen den ATmega und ATtiny Modellen sind gering. 
Man könnte sagen: Wenn du einen kennst, kennst du alle.

Wegen der wenigen Pins sind in einer realen Schaltung die Debugging 
Möglichkeiten beim ATtiny13 recht beschränkt. Aber bei den ersten 
Versuchen freue ich mich schon, eine LED blinken zu lassen und einen 
einzigen Eingang abzufragen. Dafür reicht es dann doch (incl. 
Debugging).

Im Nachhinein denke ich, dass ich ebenso gut z.B. mit einem Arduino Nano 
Modul hätte anfangen können. Damals gab es die aber noch nicht im Laden 
vor Ort, und im Versand hatte ich nur selten Bauteile eingekauft. Auch 
das hat sich in den letzten 10 Jahren drastisch verändert.

Die Diskussion AVR versus 32bit halte ich an dieser Stelle für 
unangebracht, dafür gibt es genug eigene Threads. Der TO hat sich für 
AVR entschieden und das ist ganz sicher kein Griff ins Klo. Man kann sie 
problemlos kaufen, sie funktionieren tadellos, sie sind preisgünstig und 
die Entwicklungstools dazu sogar kostenlos.

Es wird immer irgendwelche "besseren" Controller geben. Auch dein 
zweifellos guter SAMD21 ist nicht das ultimative Maß aller Dinge.

von c-hater (Gast)


Lesenswert?

Stefanus F. schrieb:

> Ich fühle mich wohler, mit kleinen Brötchen zu beginnen. Je weniger
> Features und Pins das Ding hat, umso sicherer fühle ich mich am Anfang.

Das gilt gerade bei den AVR8 eigentlich eher nicht. Hier ist es 
sicherlich am einfachsten, mit einem üppig ausgestatteten Mega zu 
beginnen, wenn auch nicht unbedingt mit den allergrößten. Ideal wäre 
meiner Meinung nach der 644/644P. Da hat der Anfänger einerseits erst 
mal lange Zeit Ruhe vor Resourcenmangel, andererseits braucht er sich 
aber auch noch nicht mit den Spezifika "übergrößer" ;o) Speicherbereiche 
rumzuschlagen. Und er kann so ziemlich alles an Peripherie ausprobieren, 
was es bei einem AVR8 üblicherweise so gibt. Er muss es aber nicht. Wenn 
er irgendwas davon noch nicht benutzt, bleibt's halt einfach tot und 
stört nicht weiter (bekannteste und wohl auch einzige Ausnahme von 
dieser Regel: die paar JTAG-Pins an PortC).

> Wegen der wenigen Pins sind in einer realen Schaltung die Debugging
> Möglichkeiten beim ATtiny13 recht beschränkt.

Der Mangel an Pins macht nicht nur das Debugging schwieriger, sondern 
generell das Anbinden von Hardware. Gerade, wenn einer nicht nur keine 
Ahnung von der AVR8-Programmierung hat, sondern außerdem auch nicht 
gerade erfahren bezüglich des Elektronik-Designs ist, was ihm eigentlich 
erst ermöglichen würde, z.B. die ISP-Pins zu sharen. Und ohne die 
bleiben beim Tiny13 nur noch zwei GPIOs. Damit kann man dann endgültig 
nicht mehr wirklich viel anfangen...

Nö, der Tiny13 ist sicher nicht das, was ich einem Anfänger empfehlen 
würde.

von Harry L. (mysth)


Lesenswert?

c-hater schrieb:
> Nö, der Tiny13 ist sicher nicht das, was ich einem Anfänger empfehlen
> würde.

Volle Zustimmung!

Der gut gemeinte Rat "fang erstmal klein an!" ist hier gründlich daneben 
gegangen.

Mit Klein ist nicht die Bauform gemeint!

von S. R. (svenska)


Lesenswert?

Florian S. schrieb:
> Warum eigentlich unbedingt mit dem kleinsten MCU beginnen? Also ich gehe
> seit jeher so vor, dass ich eher zum Größten (oder eine Stufe darunter)
> greife und damit anfange ein Projekt umzusetzen.

Ich empfehle einen Mittelwert, um ein Gefühl für Größe, 
Leistungsfähigkeit und Projektbedarf zu bekommen. Wenn man direkt mit 
der Oberklasse anfängt, kann man sich relativ schnell in eine Ecke 
manövrieren, aus der man nur schwer wieder herauskommt - oder sich 
unnütze Probleme aufhalsen.

Ein m328p (oder m644p) ist eine angemessene Einstiegsgröße und dank 
vielen Arduino-Projekten kann man auch die (als Anfänger erreichbare) 
Leistungsfähigkeit besser abschätzen. Zudem gibt's Boards billig en 
masse zu kaufen.

von Finger weg (Gast)


Lesenswert?

Interessant, es gibt nur ARM oder AVR? Ihr lebt in einer sehr kleinen 
Welt. :'(

von Stefan F. (Gast)


Lesenswert?

Finger weg schrieb:
> Interessant, es gibt nur ARM oder AVR?

Natürlich nicht, aber für diese sind zahlreiche Evaluation Kits und 
Boards für Endverbraucher preisgünstig bis billig verfügbar. Außerdem 
gibt es zahlreiche Präsentationen von Hobbyprojekten mit AVR, von denen 
sich andere Hobbyelektroniker inspirieren lassen.

Das ist so ähnlich, wie bei Whatsapp. Kaum jemand nutzt die 
Alternativen, obwohl sie auch gut sind.

> Ihr lebt in einer sehr kleinen Welt. :'(

Na und, ist das etwa schlecht? Der Mikrocontroller ist Mittel zum Zweck, 
nicht der Weg. Wenn ich mit einem einzigen auskäme, was wäre daran 
falsch, nur einen einzigen zu verwenden?

Wenn ich im Supermarkt Margarine kaufe, ist mir auch egal, dass sie nur 
eine Sorte haben, solange diese gut ist.

von Peter D. (peda)


Lesenswert?

c-hater schrieb:
> Nö, der Tiny13 ist sicher nicht das, was ich einem Anfänger empfehlen
> würde.

?

von W.S. (Gast)


Lesenswert?

Anfänger schrieb:
> ich mache derzeit meine ersten Gehversuche mit Mikrocontrollern, genauer
> gesagt mit einem ATTiny13A, einem Steckbrett, einem einfachen
> ISP-Programmer und softwareseitig unter C mit dem Atmel Studio 7.

Hmm. Das Sprichwort vom "klein anfangen" sollte man besser korrigieren 
in "einfach anfangen".

Also:
Wenn dein Atmelstudio gut funktioniert, du damit auch zurecht kommst und 
dein Programmiergeschirre dazu paßt und funktioniert, dann ist das OK 
und du kannst dabei erstmal bleiben.

Ich selber habe für kleinere Dinge bislang PIC's genommen, da geht 
manches ganz anders - und sonst bei µC der ARM-Riege nehme und empfehle 
ich bevorzugt solche, die man über einen fest eingebauten Bootlader 
programmiern kann, weil dadurch das Programmiergeschirre wesentlich 
vereinfacht ist. Die Alternative wäre JTAG/SWD und das bedeutet 
spezielle Adapter, die entweder teuer Geld kosten oder auf bestimmte 
µC-Sorten eingeschränkt sind oder mit Lizenzproblemen behaftet sind oder 
in der Benutzung wackelig und hakelig sind, so daß man entweder zahlen 
darf oder sich mit der Programmiersoftware herumschlagen muß, bis es 
passabel läuft.

Wenn du dir nun schon die Atmel-AVR's ausgesucht hast, dann wähle dir 
eine Sorte, die pin- und inhaltsmäßig im Mittelfeld liegt.

Und fange nicht als allererstes mit einem Grafik-OLED an, sondern fange 
an mit einem klassischen 2 zeiligen Alpha-LCD und mit einer seriellen 
verbindung zum PC.

Du mußt nämlich auch erstmal lernen, deine noch zu erfindende Firmware 
strukturiert aufzubauen und nicht zu allererst wild drauflos zu 
programmieren.

W.S.

von S. R. (svenska)


Lesenswert?

Finger weg schrieb:
> Interessant, es gibt nur ARM oder AVR?
> Ihr lebt in einer sehr kleinen Welt. :'(

Ob AVR, PIC oder 8051 ist relativ egal.
Ich bevorzuge AVR (kenne die PICs aber kaum).

Ob ARM, MIPS32 oder Renesas ist relativ egal.
Dort ist ARM aber am weitesten verbreitet.

Habe ich (außer MSP430) noch irgendwas Relevantes vergessen?

von Roland F. (rhf)


Lesenswert?

Hallo,
Stefanus F. schrieb:
>> Da hat man auch gleich den Spaß mit der USI.
>
> Die USI Schnittstelle finde ich auch ätzend.

Darf ich mal fragen warum?

rhf

von Stefan F. (Gast)


Lesenswert?

Roland F. schrieb:
>>> Da hat man auch gleich den Spaß mit der USI.
>> Die USI Schnittstelle finde ich auch ätzend.
> Darf ich mal fragen warum?

Weil sie im Grunde genommen nur aus einem Schieberegister besteht. 
Daraus wird erst mit Software eine vollwertige serielle Schnittstelle. 
Man muss in der ISR einiges "zu Fuß" programmieren, was sonst die 
Hardware von alleine macht.

von c-hater (Gast)


Lesenswert?

Stefanus F. schrieb:

> Weil sie im Grunde genommen nur aus einem Schieberegister besteht.

Das ist sicher eine Tatsache. Zumindest, wenn man mal die 
OD-Pincontrolle in der TWI-Betriebsart außen vor läßt. Und die 
Möglichkeit, den Takt direkt in Hardware von einem Timer serviert zu 
bekommen.

> Daraus wird erst mit Software eine vollwertige serielle Schnittstelle.

Ja, klar: Deswegen auch das U in USI. Die Hardware unterstützt alles 
denkbare soweit, wie es halt in einer universellen 
Hardware-Implementierung möglich ist.

> Man muss in der ISR einiges "zu Fuß" programmieren, was sonst die
> Hardware von alleine macht.

Oh Schreck, oh Grausen. Man muß tatsächlich selber etwas 
programmieren...

Ich lach' mich tot. Was sind das nur für "Programierer"?

von Stefan F. (Gast)


Lesenswert?

c-hater schrieb:
> Ich lach' mich tot. Was sind das nur für "Programierer"?

Je mehr die Software machen muss, umso aufwändiger ist die 
Programmierung und umso mehr Performance kostet das. Man muss bei 
Verwendung der USI auch sehr vorsichtig mit dem (temporären) Sperren von 
Interrupts umgehen, damit das Timing nicht versaut wird.

Ich habe nicht gesagt, dass es unmöglich ist. Aber wer die USI toll 
findet, der sollte auch C toll finden, meinst du nicht?

von Norbert S. (norberts)


Lesenswert?

Moin,

Ich musste die USI bisher nur als I2C/TWI-Slave nutzen und das ist ein 
ziemliches Gefrickel.
Als Uart mag das gehen aber warum haben wir das dann nicht gemacht? Der 
Gegenpart war ein AVR8-Bolide (Mega2560 oder 1) und jetzt ein STM32, 
daran kann es nicht gelegen haben.
Vielleicht war das noch ekliger. Egal, ich mache einen Bogen drum wenn 
es geht.

Gruß,
Norbert

von Ralph S. (jjflash)


Lesenswert?

Ich möchte einmal resumieren (auch wenn der TO schon lange nichts mehr 
geschrieben hat):

Er wollte (ursprünglich) auf einem ATiny13, dann auf einem ATtiny85 per 
I2C ein OLED Display mit 128x64 Pixeln ansprechen, einen ADC auslesen 
und diesen Wert auf dem Display anzeigen.

Tatsache ist, dass es nicht so wirklich geschickt ist mit den kleinsten 
der kleinen anzufangen, aber er wollte ja auch den Chip klein halten 
(ich denke mal er meinte die äußeren Abmessungen) und wahrscheinlich 
wollte er keinen SMD Baustein verwenden (dann wäre wohl die 
Standardaussage, einen ATmega48-328 zu nehmen, wohl wirklich nicht 
schlecht).

In Abmessungen klein wäre ein STM8S103 (der aber als SMD und müßte erst 
noch auf einen Adapter gelötet werden)... aber es soll ja AVR sein (und 
prinzipiell nicht wirklich schlecht, weil es sehr große Unterstützung im 
Netz gibt und der kostenfreie AVR-GCC Compiler von einer sehr guten 
Qualität ist).

Wenn er also wenig Pins mag, aber dennoch ein paar mehr GPIOS und es AVR 
sein soll:

ATTiny44

Das USI (egal was oben geschrieben ist), ist wirklich zum abgewöhnen. 
Und ja, ich hab das schon programmiert... als UART. Eine I2C 
Implementation habe ich mir gespart und das mittels Bitbanging gemacht. 
Für ein 128x64 OLED reicht es jedenfalls, zumindest als Textdisplay 
(Grafik ist aufgrund des sehr geringen RAMS nicht oder nur sehr 
eingeschränkt machbar.

Der ATtiny44 hat:

DIP14 oder SOIC14 Gehäuse (schnuckelig klein)
4 kByte Flash
256 Byte RAM
256 Byte EEProm
10 Bit
läuft bei internem Taktgeber mit 8MHz

kostet bei Reichelt 1,15 Eur (DIP14) oder 0,62 Eur (SOIC14)
Aus China gibts das 5er Pack in SMD für 2,86 EUR
https://www.ebay.de/itm/5PCS-New-Original-ATTINY44A-SSU-SOP-14-IC/201539508026?epid=1504665788&hash=item2eecb0d73a:g:c1wAAOSwr7ZW4pLa
(Hab ich jetzt einfach mal bestellt, sollte mir bei meinem Basteltrieb 
den ich jetzt im Kopf habe mein einziger verfügbarer Tiny44 zerstört 
werden)

Hat, wenn man den Resetpin nicht als GPIO verwendet (was man nicht tun 
sollte, da dann kein ISP-Flashen mehr geht) bei internem Takt noch 11 
GPIO's übrig. Hiervon würden 2 für das I2C des Displays benötigt werden 
wonach nach Adam Riese 9 GPIOs zur freien Verfügung, wobei 8 davon als 
analoge Eingänge verwendet werden können (wenn bspw. PB0 und PB1 für ein 
Bitbanging I2C verwendet werden könnten).

Opfert man 2 weitere GPIOs, könnte man daran auch ein OLED Display mit 
SPI-Interface anschließen (und sich dann, wenn es denn sein muß auch 
noch einmal mit dem USI beschäftigen).

Die Aussage dass auf einem Tiny der Font des Displays zuviel Speicher 
fressen würde stimmt nur bedingt:

Auf diesem Display ist ein 8x8 Font noch gut lesbar. Geht man davon aus, 
dass man die Ascii Zeichen 0-31 wegläßt und mit dem Leerzeichen (Ascii 
32) bis Ascii 127 den Zeichensatz abbildet, hat man 96 Zeichen zu je 8 
Byte was einen Speicherbedarf von 768 Bytes für den Zeichensatz 
bedeutet.

Ein Programm hat also noch mehr als 3 kByte zur Verfügung.

Reicht der Flash-Speicher nicht, kann auf den ATtiny84 mit 8 kByte Flash 
umgestiegen werden (der dann auch 512 Byte Ram anstelle von 256 Byte 
hat, was aber immer noch nicht für den Grafikbetrieb reicht).

----------------------------------------------------

Am We werde ich mich mal dran setzen und sehen, wie gut so etwas 
implementierbar ist.

Beitrag #5553707 wurde vom Autor gelöscht.
von M. K. (sylaina)


Lesenswert?

Ralph S. schrieb:
> Am We werde ich mich mal dran setzen und sehen, wie gut so etwas
> implementierbar ist.

Meine Library für ein OLED-Display mit SSD1306 oder SH1106 Controller 
braucht incl. Font weniger als 2 kByte Flashspeicher im Textmode. Sollte 
also eigentlich auch für ein Attiny44 noch gut gehen.

http://www.github.com/Sylaina/OLED-Display/

von Finger weg (Gast)


Lesenswert?

> Das ist so ähnlich, wie bei Whatsapp. Kaum jemand nutzt die Alternativen, obwohl 
sie auch gut sind.

Nö, what's App ist einfach bedienbar. Ein avr im Vergleich mit modernen 
uCs nicht. Der AVR hat zuviele unnötige Stolperfallen.

von Ralph S. (jjflash)


Lesenswert?

M. K. schrieb:
> Meine Library für ein OLED-Display mit SSD1306 oder SH1106 Controller
> braucht incl. Font weniger als 2 kByte Flashspeicher im Textmode. Sollte
> also eigentlich auch für ein Attiny44 noch gut gehen.

Smile, Dankeschön, ich kenne deine .c *.h Software. Ich hatte hier zuvor 
meine eigene veröffentlicht gehabt (für STM8) die, zugegebenerweise, 
irgendwie wenig Beachtung fand. Ich werde mich für die Versuche daraus 
bedienen und bspw. die Grafikfähigkeiten natürlich strippen.

Prinzipiell glaube ich nicht, dass das für einen Tiny44 lange dauern 
wird (es sei denn, ich will unbedingt I2C mit USI machen - irgendwann 
hatte ich das mal gemacht gehabt für einen 2313, muß ich sehen, ob ich 
das in meinem Datenwust wieder finde).

von Stromverdichter (Gast)


Lesenswert?

Es gibt auch noch günstige 8051er für um die 20 Cent. Da gibt es dann 
18kB FLASH und 1kB RAM. Damit kann man recht viel erschlagen. Ich mag 
es, genug Pins zur Verfügung zu haben und einen C-Compiler verwenden zu 
dürfen.

Die hier funktionieren für mich und sind schon länger sehr günstig zu 
haben.
https://www.nuvoton.com/hq/products/microcontrollers/8bit-8051-mcus/low-pin-count-8051-series/n76e003/

von Peter D. (peda)


Lesenswert?

Stromverdichter schrieb:
> Die hier funktionieren für mich und sind schon länger sehr günstig zu
> haben.
> 
https://www.nuvoton.com/hq/products/microcontrollers/8bit-8051-mcus/low-pin-count-8051-series/n76e003/

Womit programmiert man die?
Gibt es da was zum selber bauen?

von Bauform B. (bauformb)


Lesenswert?

S. R. schrieb:
> Ob ARM, MIPS32 oder Renesas ist relativ egal.
> Dort ist ARM aber am weitesten verbreitet.
>
> Habe ich (außer MSP430) noch irgendwas Relevantes vergessen?

Auf jeden Fall alles von Motorola aka Freescale aka NXP. Die 
UARTs/SPIs/ADCs/... der 8-Bitter sind wirklich übersichtlich und machen 
genau, was man erwartet.

von stromverdichter (Gast)


Lesenswert?

Peter D. schrieb:
> Womit programmiert man die?
> Gibt es da was zum selber bauen?

Als Compiler für die 8051 verwende ich den SDCC. Es gibt von Nuvoton ein 
paar Beispielprogramme für die Keil IDE, die habe ich mir angepasst. Als 
IDE habe ich momentan die MCU_8051_IDE. Die verpackt mir den 
SDCC-Compiler und erleichtert somit das compilieren. Den FLASH schreibe 
ich mit einem Programmer von Nuvoton, den gab es mal recht günstig. 
Debugging mache ich im Moment nur über eine serieller Schnittstelle die 
praktischerweise auf der Programmierleitung liegt.
Einen Programmer kann man sich imho auch aus den Demo-Boards 
rausbrechen.

https://en.wikipedia.org/wiki/MCU_8051_IDE
https://en.wikipedia.org/wiki/Small_Device_C_Compiler
https://github.com/OpenNuvoton/N76E003-BSP
https://direct.nuvoton.com/de/nu-link-pro

von Ralph S. (jjflash)


Lesenswert?

... der Nuvoton hört sich (extrem) interessant an (aus nostalgischen 
Gründen... irgendwie habe ich den MCS51 Core immer gemocht).

Das Datenblatt jedoch gibt nichts darüber her, wie das Teil programmiert 
wird... und einen Programmer habe ich schlicht nicht gefunden.

von stromverdichter (Gast)


Lesenswert?

Ralph S. schrieb:
> Das Datenblatt jedoch gibt nichts darüber her, wie das Teil programmiert
> wird... und einen Programmer habe ich schlicht nicht gefunden

Einen Programmer habe ich gerade oben verlinkt, der nu-link-pro. Weiter 
kannst du auch ein Developer-Board schlachten. Programmiert wird über 
die 3 Leitungen SDA[P1.6],SCL[P0.2],Reset[P2.0].

von Ralph S. (jjflash)


Angehängte Dateien:

Lesenswert?

stromverdichter schrieb:
> Einen Programmer habe ich gerade oben verlinkt, der nu-link-pro.

Ui, der ist ganz schön teuer bis der hier wäre...  Für mich nicht 
einsehbar, warum im Datenblatt nichts davon steht, wie der geflasht 
wird, aus einem AVR oder ein STM32 könnte man sicherlich einen Flasher 
machen wenn man die Infos hätte... schade.

Zum eigentlichen Thread: Hab ich mich hingesetzt und für den Tiny44 das 
OLED-Display implementiert (mittels Bitbanging I2C), dem Tiny44 mittels 
USI Uart und SPI beigebracht und meine eigene, rudimenträre printf 
Funktion (die kein float kann, aber einen "neuen" Formater bekommen hat: 
%k. Der zeigt eine Dezimalzahl an - wie %d - nur, dass an einer 
wählbaren Stelle ein Punkt eingefügt wird, sodass auf einer Anzeige eine 
Festkommazahl darstellbar ist).

ADC-Funktion ist ebenfalls implementiert.

Und weil ich dabei bin, wird auch noch ein N5110 SPI-Display 
implementiert. Wenn ich alles beschrieben hab, kann ich das bei Bedarf 
hier (oder in Projekte & Code) als "Miniframework" einstellen.

Irgendwie hatte das mit der mickrigen MCU Charme (und mein gerade erst 
fertig gestelltes Flashershield war auch im Einsatz)

von Ralph S. (jjflash)


Lesenswert?

PS: das Demoprogramm, dass den Spannungswert (ueber einen 
Spannungsteiler) einliest, in einen Spannungswert umrechnet und diesen 
via "kastriertem" printf auf dem OLED anzeigt ist 3389 Bytes groß.

Smile, mann hätte also noch gut 700 weitere Bytes um das zu erweitern.

von Norbert S. (norberts)


Lesenswert?

Moin,

Der.Fragesteller.ist.Anfänger

Alles schön und gut aber was soll er damit?
I2C per Bitbanging? Ganz klasse für den Anfänger.

Gruß,
Norbert

von Ralph S. (jjflash)


Lesenswert?

Norbert S. schrieb:
> Moin,
>
> Der.Fragesteller.ist.Anfänger
>
> Alles schön und gut aber was soll er damit?
> I2C per Bitbanging? Ganz klasse für den Anfänger.
>
> Gruß,
> Norbert

... und warum nicht? I2C werde ich mit USI wohl doch noch machen, aber 
immer Sinn macht das nicht.

Bitbanging ist immer dann gut, wenn man das erste mal einen neuen Chip 
evaluiert. In diesem Falle hier hab ich ein I2C Busscanner gemacht, der 
mir die Busbelegung mittels UART mitgeteilt hat ... und hierfür war dann 
das USI schon belegt.

Beides gleichzeitig geht mit USI nicht.

Außerdem: für einen Anfänger ist doch die Schnittstelle wichtig (hier 
zum OLED) und nicht, wie die Schnittstelle mit dem Device kommuniziert. 
Ein Anfänger sieht nicht ob ein OLED_init() über Hardware I2C oder 
Software I2C ausgeführt wird. Er verwendet init, clrscr, gotoxy, putchar 
etc.

von Norbert S. (norberts)


Lesenswert?

Ralph S. schrieb:
> Außerdem: für einen Anfänger ist doch die Schnittstelle wichtig (hier
> zum OLED) und nicht, wie die Schnittstelle mit dem Device kommuniziert.

Das sehe ich genau anders herum. Da muss er sich um nix kümmern und das 
ist für den lernenden Anfänger zielführend? Wohl kaum.
Per Bitbanging rappelt die Software da herum, mit echter Hardware kann 
das im Hintergrund per Interrupts laufen.

Kann man machen aber da kommt der Tiny schnell an die Grenzen wenn es 
ums Timing geht und das Problem wird mit einem STM32 beworfen, der 
schafft das dann ja. Der Anfänger weiß ja gar nicht, daß ihm das 
Bitbanging das Timing versaut.
Dabei würde es ein moderater Mega mit I2C Hardware auch locker machen. 
Nicht immer, das ist klar. Aber oft. Das geht auch mit der USI als 
TWI-Slave aber das ist einfach eklig.

Gruß,
Norbert

von M. K. (sylaina)


Lesenswert?

Ralph S. schrieb:
> PS: das Demoprogramm, dass den Spannungswert (ueber einen
> Spannungsteiler) einliest, in einen Spannungswert umrechnet und diesen
> via "kastriertem" printf auf dem OLED anzeigt ist 3389 Bytes groß.
>
> Smile, mann hätte also noch gut 700 weitere Bytes um das zu erweitern.

Das finde ich grad spannend. Mir mangelt es aktuell so dermaßen an Zeit, 
wäre am Programm als Bleistift aber dennoch interessiert. Ich will ja 
schon seit geraumer Zeit meine Lib erweitern sodass sie auch am 
Attiny45/85 nutzbar ist. Vielleicht schau ich mir was ab ;)

von Stefan F. (Gast)


Lesenswert?

Norbert S. schrieb:
> Alles schön und gut aber was soll er damit?
> I2C per Bitbanging? Ganz klasse für den Anfänger.

Das ist überhaupt kein Problem. Das Protokoll ist nicht sehr kompliziert 
und man sollte sich ohnehin damit befassen.

> Da muss er sich um nix kümmern

Doch, er muss das TWI Interface programmieren. Und das ist weitaus 
komplexer, als zwei I/O Pins "zu Fuß" zu steuern.

> Der Anfänger weiß ja gar nicht, daß ihm das Bitbanging das Timing versaut.

I²C darf man beliebig langsam betreiben. Ich kann Dir mit 100% 
Sicherheit bestätigen, dass auch dieses Display mit "versautem" Timing 
gar kein Problem hat.

Ich habe I²C genau auf diese Weite (allerdings mit einem A/D Wandler) 
kennen gelernt. Zwei LED's dran, und schon kann man es im Debugger schön 
langsam durchsteppen.

Im übrigen nutzen sogar viele kommerzielle Produkte Bitbanging, obwohl 
der µC passende Hardware-Interface hat. Ein prominentes Beispiel ist zum 
Beispiel der Computer von Lego Mindstorms NXT.

von Ralph S. (jjflash)


Lesenswert?

Norbert S. schrieb:
> ist für den lernenden Anfänger zielführend?

Genau das ist die Frage! Ich bin auch Ausbilder und es ist immer die 
Überlegung, was schon vorgefertigt ist und auf was didaktisch aufgebaut 
werden kann um dann das vorgefertigte zu verstehen.

Ich erinnere mich noch sehr genau (wir reden von 1979) wie damals in 
Maschinencode mit einem Z80 ein serielles Protokoll realisiert wurde, 
nur um später einen 8250 an diesen anzukoppeln.

Als Philipps dann I2C herausgebracht hatte, war das ein 80C31 (Werkzeug 
war ein EProm Emulator) und da hast du dann grundlegend gelernt (weil 
selbstgemacht) was Startcondition, Stopcondition und das Ack ist. Das 
war dann sehr sehr hilfreich als es erste Chips gab, die das in Hardware 
konnten und du wußtest relativ schnell, was die Register der Hardware 
bewirken.

Heute kannst du mittels DMA den Hardware-I2C befeuern und in deinem 
Hauptprogramm steht dann nur drin: "Send via DMA und I2C". Lerneffekt ?

In der Lehre mußte ich einen LM741 mit BC107 Transistoren nachbauen 
(würde heute sicherlich niemand mehr tun), der Lerneffekt und das 
Verständnis für Verstärker (auch für Endstufen) war enorm.

Wie weiter oben schon geschrieben wurde: Ein ATtiny ist für einen 
Einsteiger / Anfänger sicherlich nicht die beste Wahl und eignet sich 
für kleine spezialisierte Aufgaben bei denen du die Software ganz 
speziell auf dein Problem zuschneidest (und meist alles ohne 
irgendwelche vorgefertigten Softwaremodule).

@sylaina:
M. K. schrieb:
> Ich will ja
> schon seit geraumer Zeit meine Lib erweitern sodass sie auch am
> Attiny45/85 nutzbar ist.

Ich glaube nicht, dass du von meiner Lösung viel abgucken kannst, ich 
kenne deine Lösung und sie ist, prinzipbedingt, deiner ähnlich. Meine 
Initialisierung ist anderst und ich habe nichts integriert, was bspw. 
den Kontrast einstellen kann. In Ermangelung von RAM habe ich sämtliches 
grafisches weggelassen und meinen in anderen Controllern benutzten 
Framebuffer dann ebenfalls.

Im besten Fall wäre für dich für die Ausgabe noch das my_printf 
interessant welches in der derzeitigen Ausführung ca. 700 Byte vom 
Codespeicher benötigt oder die von my_printf benutzte Funktion putint, 
die einen Integer mit einfügbarem Komma bereitstellt und sehr sehr 
schmal ist (ich glaube es waren ca. 120 Byte).

Ich werde mal das, was ich habe in ein Archiv packen und dir den Link 
zum Herunterladen schicken.

von Peter D. (peda)


Lesenswert?

stromverdichter schrieb:
> https://direct.nuvoton.com/de/nu-link-pro

Was ist der Vorteil gegenüber:
https://direct.nuvoton.com/de/isp-icp-programmer

stromverdichter schrieb:
> Als Compiler für die 8051 verwende ich den SDCC.

Den SDCC habe ich in Erinnerung, daß er nicht sonderlich optimiert und 
keine Bitvariablen erlaubt.
Man kann aber auch den freien Wickenhäuser nehmen.
Schade, daß das ISP nicht dokumentiert ist.
Besonders der 12Bit-ADC klingt sehr interessant. Und natürlich die 4 
Interruptlevel.

: Bearbeitet durch User
von Peter D. (peda)


Lesenswert?

Peter D. schrieb:
> Was ist der Vorteil gegenüber:
> https://direct.nuvoton.com/de/isp-icp-programmer

Der kann den N76 nicht, muß wohl doch der teure sein.

von c-hater (Gast)


Lesenswert?

Stefanus F. schrieb:

> I²C darf man beliebig langsam betreiben

...wenn man der alleinige Master ist.

Dann (und nur dann) ist I2C tatsächlich trivial und auch timingmäßig 
völlig unkritisch, da muss man sich eher darum kümmern, dass nix zu 
schnell passiert.

Aber bei der vom TO gegebenen Aufgabe wäre ja tatsächlich das "single 
master szenario" anzunehmen. Also kein Problem für eine Implementierung 
in Software. Sinnvollerweise timer-driven state machine. Damit sicher 
nix zu schnell passiert.

von S. R. (svenska)


Lesenswert?

c-hater schrieb:
>> I²C darf man beliebig langsam betreiben
> ...wenn man der alleinige Master ist.

Du darfst es auch dann beliebig langsam betreiben, wenn du nicht der 
alleinige Master bist. Die anderen Master müssen dann halt beliebig 
lange warten - was je nach Anwendungsfall auch akzeptabel ist.

von Ralph S. (jjflash)


Lesenswert?

c-hater schrieb:
> Damit sicher
> nix zu schnell passiert.

... ich bin ja dabei das mit USI zu implementieren. Läuft aber noch 
nicht so ganz korrekt. Wieviel schneller es werden wird, werde ich 
sehen...

@sylaina:

Das was ich bisher jetzt für den T44 gemacht hab kannst in Projekte & 
Code gucken... also Displays und das printf ist dort schon verfügbar

von Norbert S. (norberts)


Lesenswert?

Moin,

Der Slave kann es auch langsamer machen. Clockstretching...

Gruß,
Norbert

von Finger weg (Gast)


Lesenswert?

Bitte lest den Eingangsbeitrag und fragt euch, ob ihr noch "on topic" 
seid.

von S. R. (svenska)


Lesenswert?

Anfänger schrieb:
> Jetzt meine Frage: Welche AVRs kommen in Frage?

Die Frage wurde bereits deutlich genug beantwortet:
Atmega328p
Atmega1284p

Ein Attiny geht auch, ist aber eher ungeeignet. Der TO will das aber so 
und des Menschen Wille ist nunmal sein Himmelreich. Auch wenn es nach 
Kloake stinkt, zu warm ist und eklig suppt.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.