ATTiny2313 mit 32kHz Uhrenquarz

Im Vergleich zu AVRs vor allem Interruptprioritaeten und eine groessere Innenausstattung. Also mehr Timer, die Moeglichkeit die RS232 oder einen INT auf einen anderen Port umzuschalten. Sie sind insgesamt deutlich flexibler. Und das gilt jetzt nur fuer die kleinen R8C. (z.B R8C/29)

Ein M16C hat von allem einfach zuviel. :-) Also z.B 16Timer, 3-4RS232,

2xSPI, I2C, DMA, CRC, DA. Kann man irgendwie nie alles aufbrauchen.

Olaf

Reply to
Olaf Kaluza
Loading thread data ...

Lieber drei Timer/UART zu viel als einer zuwenig.

Eine Toolchain, die unter Linux läuft, scheint es auch zu geben.

Mal sehen, vielleicht brauche ich bald eine preiswerte Alternative für einen ATMega168... mehr als UART, SPI, 1-2 Timer, Sleep und ein Interrupt wird nicht gebraucht.

Falk

Reply to
Falk Willberg

Sicher, einfach runterladen und uebersetzen. :-)

Olaf

Reply to
Olaf Kaluza

Olaf Kaluza :

Ja und anscheinend auch ordentlich RAM, immer ne "Zehnerpotenz" mehr als bei den westlichen Typen. Wie verhalten die sich beim Stromsparen? D.h. wie schnell wacht der aus einem uA Modus auf, bearbeitet ein paar Befehle und schläft dann wieder ein? Und wie sieht es mit den Bugs aus? (Compiler, Cpu etc., sind die total fehlerfrei bzw. hast Du da einen kompetenten Ansprechpartner wenn da was nicht koscher ist?)

M.

Reply to
Matthias Weingart

Und wenn man doch mal ein Projekt hat, wo das alles gebraucht wird, dann hat die Kiste a) zu wenig Rechenleistung und/oder b) nicht genügend Beinchen um das sinvoll rauszuführen. Naja, man kann nicht alles haben. Oder man hat alles, kann aber nicht alles benutzen. Was im Effekt dasselbe ist.

Gruß, Florian

Reply to
Florian Teply

Hmm, die scheine ich übersehen zu haben. Hast' nen Link dazu?

Gruß, Florian

Reply to
Florian Teply

snipped-for-privacy@usenet.cnntp.org (Florian Teply):

Hatte ich mal mit FPGA's, wollte da was rein serielles machen, die restlichen

100 Beinchen waren dann alle frei drinnen aber alle Zellen belegt ;-).

M.

Reply to
Matthias Weingart

Rafael Deliano :

Da hat TI mal mitgedacht, um das spezielle Segment A zu löschen, muss ein besonderes Flag (per Passwd gesichert) gesetzt werden. Erst dann wird es gelöscht (gilt auch bei MassErase). Kannst Du den QV4 nicht blockweise löschen und den einen Block auslassen? Mach ich bei den MSP's immer, ist zwar langsamer, aber da bleiben meine Parameter im NV wenigstens erhalten beim Debuggen.

M.

Reply to
Matthias Weingart

Pageweises Löschen wäre zwar möglich ist aber ziemlich langsam wenn man ganzen Speicher damit löschen will. MassErase hat eine ziemlich umfassende Reset-Funktion, gibt z.B. explizit den Ausleseschutz frei. D.h. wenn man bereit ist den Inhalt komplett zu löschen kommt man in jeden alten 68HC908 rein. Was recht erfreulich ist z.B. wenn man sich gebrauchte Controller über ebay beschafft.

MfG JRD

Reply to
Rafael Deliano

Hm...das ist der normale gcc-Source, binutils usw...

formatting link
formatting link
formatting link

Ich haenge mal an diese News die Notizen an die ich mir gemacht habe als ich meine Version uebersetzt habe. Die dort angefuehrten Befehlszeilen habe ich 1:1 aus der Shell kopiert. Wer also wirklich genau das haben will was ich hier habe der muss das nur 1:1 abtippern. Allerdings wuerde sich mittlerweile wohl eine neuere Version empfehlen.

Danach hat man einen kompletten Compiler, es fehlen einem aber noch die Linkerscripte. Die muss man sich passend zu seiner eigenen Zielhardware selber schreiben. Da steht ja drin wo und wieviel Ram/Rom der Controller hat, wieviel man fuer Stack braucht usw. Das muss man also wirklich selber machen weil es auch vom Projekt habhaengt was man da braucht.

Olaf

---------------------------------------------------------------------- Dies ist eine kleine Anleitung wie man sich einen Cross-Compiler baut:

  1. Binutils.

Das sind Hilfsprogramme wie sie der Compiler braucht. Dazu gehoert z.B der Assembler.

Aktuelle Version:

formatting link

Auspacken

tar xvjf binutils-051115.tar.bz2 cd binutils-051115

Konfigurieren fuer ein bestimmtes Target, hier im Beispiel fuer R8C/M16C/M32C. Wenn das System auf einem normalen Linux benutzt werden soll, so empfiehlt es sich ausserdem ein prefix anzugeben. Dieser wird allen erzeugten Programmen vorangestellt. Das sorgt dafuer das man spaeter problemlos den richtigen gcc aufrufen kann wenn man mehrere hat.

./configure --target=m32c-elf --program-prefix='m32c-elf-'

Uebesetzen:

make

Installieren nach /usr/local/bin. Letzeres koennte man eventuell noch aendern.

make install

Als naechsten braucht man newlib. Gibt es hier:

formatting link

oder:

cvs -z 9 -d :pserver: snipped-for-privacy@sources.redhat.com:/cvs/src login {enter "anoncvs" as the password} cvs -z 9 -d :pserver: snipped-for-privacy@sources.redhat.com:/cvs/src co newlib

Das sind spezielle Anpassungen des Compilers an die Zielhardware.

Hier gibt es den neuesten gcc:

formatting link

Auspacken des Compilers: tar xvjf gcc-core-4.1-20051112.tar.bz2

Newlib und libgloss da reinkopieren: cp -r src/newlib gcc-4.1-20051112/ cp -r src/libgloss gcc-4.1-20051112/

Verzeichnis im gcc-Verzeichnis erzeugen wo der Compiler erzeugt wird mkdir m32c-elf-gcc

Configurieren des Compilers.... cd m32c-elf-gcc/ ../gcc-4.1-20051112/configure --target=m32c-elf \ --program-prefix='m32c-elf-' \ --enable-languages=c \ --with-gnu-as --with-gnu-ld \ --with-newlib

Uebersetzen make

Falls es zu einem Fehler mit lib-gloss kam. make install-target-libgloss

make make install

Reply to
Olaf Kaluza

Dazu kann ich leider nichts sagen da in meinen Anwendungen der Stromverbrauch immer piepegal ist. Ich hab sowieso immer einen Ofen mit

100-200W Leistung im System und da interessiert es nicht ob der Prozessor 0.1W oder 1W braucht.

  1. Compiler

Ich hab bis jetzt noch nie einen Fehler im Compiler gefunden, weder in dem Teil von Renesas, noch in dem gcc den ich Privat verwende. Es mag welche geben, aber sie scheinen mir in der Praxis nicht vorzukommen.

  1. Oberflaeche.

Die Oberflaeche von Hitachi (HEW) war vor ein paar Jahren das nackte grauen. Wenn man danach sucht findet man auch recht schnell eine News von mir wo ich da voll drueber ablaester. :-) Mittlerweile laeuft sie weitestgehend problemlos. Schwierigkeiten gibt es schonmal wenn man den neuesten Prozessor verwendet, dann sollte man auch wirklich regelmaessig mal updaten.

Es gibt derzeit eine kleine Macke die mich etwas nervt, es passiert manchmal (1x pro Woche) das die Eingabe in ein anderes Fenster landet. Also nehmen wir mal an man hat 10 Sourcefenster offen, programmiert aber nur in einem davon. Ploetzlich stellt man fest das ein Zeichen das man zu getippt hat nicht zu sehen ist. Wenn man dann die anderen Fenster durchblaettert so kann man es dann in einem anderen Source finden!

Insgesamt problemloser als AVR wo ich nach einem Update schonmal meine Programme nicht mehr liefen.

Privat verwende ich Emacs und Make. Da gibt es keine Fehler.

  1. CPU

Ich habe vor kurzem mal einen kleinen Bug im R8C29 gefunden. Wenn man ein Zeichen auf eine RS232 ausggibt und wartet bis das letzte Bit ausgegeben ist und direkt danach den RS422 Treiber abschaltet, dann scheint der Prozessor dies _manchmal_ schon zu melden wenn das letzte Bit noch gesendet wird. Man schaltet dann unter Umstaenden den Treiber genau in der Mitte des letzten Bits ab. Ich habe mich beim R8C29 SEHR mit dem I2C rumgeaergert. Das Inteface ist hoellisch kompliziert weil es gleichzeitig MAster, Slave und SPI kann. Ein winzigster Fehler und die Statemachine im Prozessor kackt ab und zieht einem dauerhaft die SCL-Leitung auf Masse. Wegen des komplizierten Interface kann ich nicht genau sagen ob der Fehler im Prozessor oder bei mir liegt. Ich tendiere aber eher dazu den Prozessor die Schuld zu geben. Ich habs aber mittlerweile hinbekommen. I2C beim M16C/28 ist die totale Hoelle mit seinem Multimaster +Slave interface. Der Prozessor kann viel, aber das Datenblatt koennte mindestens 50Seiten mehr zu diesem Thema gebrauchen. Wegen seiner Vielseitigkeit ist nicht immer klar welches Bit jetzt gerade welche Bedeutung hat.

  1. Support

Der wird von Glyn gemacht. Die machen einen kompetenten und hilfbereiten Eindruck. Kann ich weiterempfehlen. Man bekommt auch relativ unkritisch kleine Stueckzahlen wenn man mal nur 10Prozessoren braucht.

Olaf

Reply to
Olaf Kaluza

Du kannst bei Renesas relativ einfach von einem kleinen M16 auf einen dicken M32 upgraden weil die darauf achten weitestgehend pincompatibel zu sein.

Ach? An Beinchen mangelt es mir normalerweise nicht. Es gibt die Teile ja auch in Gehaeuse mit >100Pinnen. Ich komme bisher aber mit 64Beinen locker aus. Wenn ich demnaechst mal was richtig dickes nehme dann eigentlich nur weil ich leider externes Ram brauche.

Was schoen ist und ich wichtig finde, das sind viele identische Timer. Damit man Source von einer alten Anwendung einfach so in eine neue kopieren kann und der nach 1-2 kleinen Aenderungen laeuft. Das klappt sonst nicht wenn eine Hardware vielleicht bereits von einer anderen Sache belegt ist.

Olaf

Reply to
Olaf Kaluza

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.