Hallo, nachdem ich jahrelang mit PIC-Controllern gearbeitet habe, möchte ich jetzt etwas mit dem ATiny841 realisieren. Dabei sind mir einige Dinge im Vergleich zu aktuellen PICs aufgefallen, bei denen ich Euch fragen möchte, ob ich es vielleicht nicht richtig erkannt habe: 1. Im Assembler vermisse ich einen Multiplikationsbefehl 2. Die internen RC-Oszillatoren sind recht ungenau, möchte ich eine Kommunikation mittels UART aufbauen, dann muss ich einen Quarz nehmen 3. Nicht benötigte Hardwareblöcke lassen sich nicht abschalten 4. Besitzt nur einen 10Bit-ADC Ich möchte hier keine neuen Konflikte Atmel vs. Microchip entfachen, sondern nur einige Zusatzinfos zu meinen Beobachtungen enthalten. Die Trolls mögen sich also bitte zurückhalten.
Jens_F schrieb: > nachdem ich jahrelang mit PIC-Controllern gearbeitet habe, möchte ich > jetzt etwas mit dem ATiny841 realisieren. > Dabei sind mir einige Dinge im Vergleich zu aktuellen PICs aufgefallen, ATiny841 im Vergleich zu welchem PIC?
Jens_F schrieb: > 1. Im Assembler vermisse ich einen Multiplikationsbefehl Dann nimm einfach einen controller mit multipliert? Atmega oder die neueren ATtinies. > 2. Die internen RC-Oszillatoren sind recht ungenau, möchte ich eine > Kommunikation mittels UART aufbauen, dann muss ich einen Quarz nehmen Hängt von der Baudrate ab. Du kannst den Oscillator per Software trimmen. > 3. Nicht benötigte Hardwareblöcke lassen sich nicht abschalten Natürlich geht das. > 4. Besitzt nur einen 10Bit-ADC Nimm einen größeren Controller? Du kannst außerdem Mitteln, um die Auflösung zu erhöhen. Bei den meisten Anwendungen hat das Analogsignal sowieso nicht die erforderlichen 60dB SNR, um die 10 Bit auszunutzen.
Jens_F schrieb: > 1. Im Assembler vermisse ich einen Multiplikationsbefehl Programmiere einfach in C, dann macht der Compiler das für Dich. Mit 8kB Flash ist C kein Thema. > 2. Die internen RC-Oszillatoren sind recht ungenau, möchte ich eine > Kommunikation mittels UART aufbauen, dann muss ich einen Quarz nehmen Soll es zuverlässig sein, nimm einen Quarz. Fürs Hobby geht aber auch der interne RC. Jens_F schrieb: > 3. Nicht benötigte Hardwareblöcke lassen sich nicht abschalten Nach dem Reset sind alle IO-Pins in tristate. Sonderfunktionen müssen erst eingeschaltet werden. Jens_F schrieb: > 4. Besitzt nur einen 10Bit-ADC Mit MUX auf alle IO-Pins und Gain.
:
Bearbeitet durch User
Was hindert Dich eigentlich daran, mal ins Datenblatt zu schauen? Da wirst Du sowieso nicht darum herumkommen, wenn Du den Tiny841 programmieren willst.
Ich finde die 441/841 Klasse. 2 Uarts in einem sehr kleinen Controller und zumindest teilweise mögliches routing der Hardware auf die Pins - sehr schön.
> 1. Im Assembler vermisse ich einen Multiplikationsbefehl Richtig > 2. Die internen RC-Oszillatoren sind recht ungenau, möchte ich eine > Kommunikation mittels UART aufbauen, dann muss ich einen Quarz nehmen Ode reinen Keramik Resonator. Ja, der R/C Oszillator ist nicht genau genug. Man kann ihn justieren, aber seine Abhängigkeit von Temperatur und Spannung ist trotzdem hinderlich. 3. Nicht benötigte Hardwareblöcke lassen sich nicht abschalten Im PRR Register kannst du einige Komponenten deaktivieren. Beim ADC lohnt es sich am meisten. 4. Besitzt nur einen 10Bit-ADC Ja. Alle ATmega und ATtiny (die ich kenne) haben einen 10bit ADC. Die XMega Serie bietet 12 bit.
Jens_F schrieb: > 1. Im Assembler vermisse ich einen Multiplikationsbefehl Ja außer einen wenigen topaktuellen ATtinys, die auf einem XMega-Kern basieren, können die Tinys leider wirklich nicht in Hardware multiplizieren. Das ist für eine ganze Menge Anwendungen, für die die Tinys ansonsten sehr gut geeignet wären (Regelung, Signalverarbeitung) tatsächlich ein recht hinderliches Manko. Multiplikation in (optimierter) Software kostet etwa Faktor 20 mehr Rechenzeit und auch deulich mehr Speicherplatz, weil man, um auch nur diesen Faktor zu erreichen, jeder 8x8-Multiplikation eine eigene Code-Instanz gönnen muß. Ansonsten ist man eher bei einem Faktor irgendwo um die 30. > 2. Die internen RC-Oszillatoren sind recht ungenau, möchte ich eine > Kommunikation mittels UART aufbauen, dann muss ich einen Quarz nehmen Nein, musst du nicht, jedenfalls nicht zwingend. Kommt auf die Anwendung an. Es gibt jedenfalls etliche Möglichkeiten, die Verwendung eines Quarzes zu umgehen. Alle wurden hier schon hundertfach diskutiert. > 3. Nicht benötigte Hardwareblöcke lassen sich nicht abschalten Doch, das allermeiste schon. SPI, I2C, alle UARTs, alle Timer, ADC, AC, BOD, interne Referenz, Digitaleingangsstufen aller Pins und auch den MCU-Core selber. Was bleibt denn da eigentlich noch über, was sich nicht abschalten ließe? Mir scheint fast: GARNIX. > 4. Besitzt nur einen 10Bit-ADC Ja. Allerdings sind ADCs mit höherer Auflösung in einem µC meist sowieso nur schöner Schein. Es ist nämlich unwahrscheinlich schwierig bis fast unmöglich, für ein hinreichend rauschfreies Analogsignal zu sorgen, um höhere Auflösungen tatsächlich sinnvoll nutzen zu können, wenn so eine Super-EMV-Schleuder, wie sie ein µC-Core darstellt, nur Bruchteile von Millimetern entfernt liegt...
c-hater schrieb: > Es ist nämlich unwahrscheinlich schwierig bis fast unmöglich, für ein > hinreichend rauschfreies Analogsignal zu sorgen, um höhere Auflösungen > tatsächlich sinnvoll nutzen zu können, wenn so eine Super-EMV-Schleuder, > wie sie ein µC-Core darstellt, nur Bruchteile von Millimetern entfernt > liegt... Das Problem lässt sich in den Griff bekommen, indem man während der Messung die EMV-Schleuder abschaltet (d.h. schlafenlegt) und sie z.B. durch einen Interrupt des ADC nach Abschluss der Messung wieder aufweckt. Es gibt µC-Architekturen, die ohne Interaktion des CPU-Kerns auch den Eingangsmultiplexer des ADCs bedienen können, und eine ganze Latte von Messungen bei deaktivierter CPU durchführen können. Und damit sind, ein sauberes restliches Schaltungsdesign vorausgesetzt, tatsächlich auch deutlich höhere Auflösungen als 10 Bit realistisch verwendbar.
Jens_F schrieb: > nachdem ich jahrelang mit PIC-Controllern gearbeitet habe, möchte ich > jetzt etwas mit dem ATiny841 realisieren. Warum ausgerechnet Tiny? Nimm lieber Mega, die sind besser. Du nimmst Tiny, die ohne MUL sind, statt Mega, die MUL haben, und dann beschwerst du dich, daß du kein MUL hast... Solch Witz verstehe ich schlecht... Für durchschnittliche Verwendung könnte ich dir zwei Mega nennen: die Reihe 48-88-168-328 (alle mit PA) und die Reihe 324-644-1284 (alle außer letzten mit PA, letzte mit P). Man kann damit meistens leben, falls nicht, dann nimm Mega2560. Mehr Sortiment brauchst du eigentlich nicht, Tiny schon gar nicht. Ja, ab und zu kommen besondere Wünsche, z.B. DAC 12 bit oder ADC 18 bit. Für solche Wünsche gibt es viele externe Chips, das sollte eigentlich reichen. Für alltäglichen Gebrauch ist 10 bit ADC mehr als ausreichend. Große Vorteil von Mega gegen 8 bit PIC ist RAM ohne Banking. Somit sind viel größere Arrays gut realisierbar, als bei PIC. Aber das wirst du mit Assembler kaum spüren, dafür brauchst du C. Daß C-compiler für AVR kostenlos ist und für PIC relativ teuer, das weiß du schon sicher? Das ist zweite wichtigste Vorteil von AVR.
:
Bearbeitet durch User
> 1. Im Assembler vermisse ich einen Multiplikationsbefehl gibt es beim ATtiny841 nicht. Die neuen 3000/4000 ATmegas haben einen, die könntest du dir vielleicht anschauen. > 2. Die internen RC-Oszillatoren sind recht ungenau, möchte ich eine > Kommunikation mittels UART aufbauen, dann muss ich einen Quarz nehmen stimmt so nicht. Die sind sogar sehr genau. Sind für 3,3V ab Werk kalibriert. Für andere Ub kann man die per Register nachjustieren > 3. Nicht benötigte Hardwareblöcke lassen sich nicht abschalten direkt abschalten geht nicht, aber Sleepmode Zustände kennt er schon > 4. Besitzt nur einen 10Bit-ADC hat mehrere Eingänge > Ich möchte hier keine neuen Konflikte Atmel vs. Microchip entfachen Atmel wurde von Microchip gekauft
Hi >> 1. Im Assembler vermisse ich einen Multiplikationsbefehl >gibt es beim ATtiny841 nicht. Die neuen 3000/4000 ATmegas haben einen, >die könntest du dir vielleicht anschauen. Haben aber den Nachteil, das man sie nicht mehr mit einfachem ISP programmieren kann. Die brauchen UPDI. MfG Spess
Veit D. schrieb: >> 4. Besitzt nur einen 10Bit-ADC > hat mehrere Eingänge Das "nur" bezieht sich auf die 10 Bit.
spess53 schrieb: > Haben aber den Nachteil, das man sie nicht mehr mit einfachem ISP > programmieren kann. Die brauchen UPDI. Einfacher ist mit nur noch einem Pin UPDI. Zeit, daß das olle ISP endlich abgelöst wird. Maxim B. schrieb: > Warum ausgerechnet Tiny? Nimm lieber Mega, die sind besser. Pauschale Empfehlungen sind unsinnig weil es immer auf den konkreten Einsatzfall ankommt. Braucht man 2 Uarts in einem schmalen SMD 14Pinner ist der 4/841 meines Wissens der günstigste AVR.
Jens schrieb: > Pauschale Empfehlungen sind unsinnig weil es immer auf den konkreten > Einsatzfall ankommt. Genau, mindestens genauso schwachsinnig, wie der ursprüngliche Troll-Post, bei dem irgendein PIC mit einem ATtiny verglichen wird.
HI >Einfacher ist mit nur noch einem Pin UPDI. >Zeit, daß das olle ISP endlich abgelöst wird. Ich habe damit keine Probleme. Aber inwieweit die hier oft oft empfohlenen Programmier-Clone damit klarkommen entzieht sich meiner Kenntnis. MfG Spess
Leute, kommt mal wieder runter. Der TO hat sich einen ATtiny angeschaut und dort sind ihm Unterschiede zu den Mikrocontrollern aufgefallen, die er bisher kannte. Nur darum geht es. Warum phantasiert ihr hier dazu, er habe einen falschen µC gekauft und bräuchte zwei UART? Warum behauptet ihr, er habe das Datenblatt nicht angeschaut? Ohne Erfahrung mit den Modellen fällt es jedem Anfänger schwer, aus den hunderten Seiten die Infos heraus zu ziehen, die er braucht. Da darf man doch wohl mal nachfragen, ohne gleich doof angemacht zu werden.
Jens_F schrieb: > nachdem ich jahrelang mit PIC-Controllern gearbeitet habe Stefanus F. schrieb: > Ohne Erfahrung mit den Modellen fällt es jedem Anfänger schwer fällt Dir was auf?
Stefanus F. schrieb: > Der TO hat sich einen ATtiny angeschaut und dort sind ihm Unterschiede > zu den Mikrocontrollern aufgefallen, die er bisher kannte. Nur darum > geht es. Na ja. Ich finde die Liste der Dinge, die er bemäkelt, schon etwas merkwürdig. Ob die ALU einen Befehl für die Multiplikation hat, ist ja nun wirklich vollkommen nebensächlich. 99% aller Programmierer werden Code, der Multiplikationen (oder Divisionen) verlangt, in C schreiben. Daß ein Hardware-Multiplier schneller ist, ist unbestritten. Aber wie relevant ist das in der Praxis? Und falls es relevant sein sollte, spricht das dann nicht lediglich gegen die getroffene Wahl des µC? Denn es gibt ja AVR mit einem solchen Multiplier. Beim 10-Bit ADC sei festzuhalten, daß das in dieser Klasse state of the art ist. Die 8-Bit PICs haben mehrheitlich auch nichts anderes. Und das "Abschalten von Hardwareblöcken" machen die AVR lediglich etwas anders und möglicherweise etwas weniger konsequent als die PICs. Nicht daß es praktische Relevanz hätte. Wenn man vom Marketinggeschrei absieht, kann man mit einem AVR genauso stromsparende Lösungen bauen wie mit einem PIC. > Warum behauptet ihr, er habe das Datenblatt nicht angeschaut? Weil man nach der Lektüre des Datenblatts solche Fragen nicht stellen würde?
:
Bearbeitet durch User
Jens schrieb: > Pauschale Empfehlungen sind unsinnig weil es immer auf den konkreten > Einsatzfall ankommt. > Braucht man 2 Uarts in einem schmalen SMD 14Pinner ist der 4/841 meines > Wissens der günstigste AVR. Je nachdem. Ist man ein Profi, hat man ganz bestimmte Vorgaben - dann sollte man genau richtige Variante von AVR aussuchen, aus vielen Tausenden möglichen. In Hobby ist das nicht so sinnvoll. Als Hobbyist kann man schwer zu große Sortiment parat zu Hause halten. So sollte man am besten ein paar möglichst universelle Varianten wählen, sie bestens einstudieren, mit allen ihren Problemen - und sie immer für alles benutzen, es sei denn, geht gar nicht. Aber für typische Aufgaben reichen Megas 328... und 1284P... völlig aus. Das gilt auch für andere Teile. Transistoren, Trimmer usw. Als Hobbyist sollte man sich etwas in Sortiment beschränken, um alles besser zu kennen. So denke ich. Zu viele Varianten - das ist nicht immer gut. Am Ende wird man nur Datenblätter lesen und lesen, zu wirklicher Neubau kommt es nie.
:
Bearbeitet durch User
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.