mikrocontroller.net

Forum: Markt [V] Mitsubishi M16C Controller


Autor: Michael H. (turmalin)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe hier einen Posten M30624FGAFP zu verkaufen.
Es handelt sich um 120 Stück in der Originalverpackung.

Würde sie gerne "im Block" verkaufen.  Preisvorstellung 220,- € + 
Versandporto.

Die Teile sind nicht RoHS konform.

Gruß,
Michael

Autor: Daniel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

hast Du ne Ahnung wie alt die Teile sind?? Sind Sie überhaupt noch da?

Gruß Daniel

Autor: Michael H. (turmalin)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Daniel schrieb:
> Hallo,
>
> hast Du ne Ahnung wie alt die Teile sind?? Sind Sie überhaupt noch da?

Hallo Daniel,

ja ich habe noch welche. Sie stammen wohl aus 2000, wenn ich den 
(vermutlichen) Datecode auf der Verpackung richtig interpretiere.
Würde ja selbst gerne was mit machen, mir ist nur der Aufwand für die 
Einarbeitung zu groß, zumal es, glaube ich, keinen freien Compiler dafür 
gibt. Kennst Du Dich mit den Teilen aus?

Gruß
Michael

farwest--aet--gmx--punkt--de

Autor: Egon Spengler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wird von GCC unterstuetzt ...

Autor: Egon Spengler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sind uebrigens recht ueppig ausgestattet mit 256k Flash, 20K SRAM, A/D, 
D/A ...

Autor: Olaf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Würde ja selbst gerne was mit machen, mir ist nur der Aufwand für die
> Einarbeitung zu groß, zumal es, glaube ich, keinen freien Compiler dafür
> gibt.

Es gibt einen gcc dafuer. Ausserdem kannst du die Umgebung von Renesas
benutzen. Die wird nach einem Monat Nutzung auf eine maximale 
Codegroesse von 64kByte beschraenkt. Das ist zwar weniger als der 
Prozessor kann, aber
fuer die meisten Sachen sollte das reichen. und von soviel Ram koennen
die armen AVR User auch nur traeumen. :-P

Die Einarbeitung lohnt sich also! Ausserdem gibt es einen sehr
guten Debugger und man kann sie auch ueber RS232 brennen wenn man keinen
E8 hat. Und im Gegensatz zu einem AVR geht das auch mit USB-RS232 
Adapter.
Selbst unter Linux ist problemlose Entwicklung moeglich!
Wer loettechnisch mit dem kleinen Gehaeuse klarkommt der kann mit dem 
Prozessor viel Spass haben.

Fuer 20Euro wuerde ich uebrigens 20Stk nehmen. Ich weiss ist nicht viel, 
aber ich brauch sie nicht so dringend und wuerde sie nur fuer potentiell 
theoretische Zukunftsprojekte auf Halde legen. :-)

Olaf

Autor: LOLaf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Olaf, 20eur pro stk ?

Ein FoUSB geht auch zum debuggen / flashen. Sollte auch gebraucht 
günstiger sein als E8a oder E8.

Autor: Olaf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> 20eur pro stk ?

Noe. Fuer 20Euro wuerde ich ja schon 2Stk R32 mit doppelt soviel Flash, 
doppelt soviel Ram, doppelt soviel UART und doppelt soviel Bits 
bekommen. :-)

> Ein FoUSB geht auch zum debuggen / flashen.

Die lassen sich vermutlich mit so gut wie allem brennen.
Ich benutze den M30624 unter Linux. Da habe ich den einfach ueber einen 
Pegelwandler an RS232 haengen und brenne mit "make download" :)

Es koennte eventuell sein das man etwas mit dem Quarz beschraenkt ist 
wenn man einen async Uart zum brennen benutzt. Weiss ich jetzt aber 
nicht genau.

Olaf

Autor: Michael H. (turmalin)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Olaf schrieb:
> Ich benutze den M30624 unter Linux. Da habe ich den einfach ueber einen
> Pegelwandler an RS232 haengen und brenne mit "make download" :)

Hallo Olaf,

das klingt gut und beantwortet auch meine Frage die ich zu dem 
Controller noch hatte, nämlich nach dem Programmer. Wenn man ihn direkt 
per RS232 programmieren kann, um so besser. Eine GNU Toolchain für Linux 
bekommt man bei http://www.kpitgnutools.com/, wie ich gerade sehe. 
Fehlte mir nur noch eine Platine, um mal reinzuschnuppern. Hat jemand so 
etwas für kleines Geld anzubieten, oder ein erprobtes Eagle Layout 
(einseitig)? Ich hab' es nicht so mit dem Platinen ätzen, könnte mir 
aber ggf. eine mitfertigen lassen.

Olaf, wegen der Vergrößerung Deiner Projekthalde mail mich halt mal an.

Gruß,
Michael

farwest--aet--gmx--punkt--de

Autor: Olaf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Wenn man ihn direkt per RS232 programmieren kann, um so besser.

Das ist wirklich kein Problem. Man benoetigt nur einen Pegelwandler.

> Eine GNU Toolchain für Linux bekommt man bei
> http://www.kpitgnutools.com/, wie ich gerade sehe.

Ja, das bekommt man dort. Allerdings hat es mir nicht gepasst das
ich mich bei dem Laden registrieren sollte um die Arbeit anderer
Leute die sie vertreiben/nutzen zu bekommen. Deshalb habe ich mir 
einfach den gcc runtergeladen und ihn selber uebersetzt.
Die genau Anleitung dazu habe ich auch schonmal in diesem Forum
und auch in d.s.e gepostet. Kann ich aber jederzeit erneut versenden.

> Hat jemand so etwas für kleines Geld anzubieten, oder ein
> erprobtes Eagle Layout (einseitig)?

Ich selbst benutze den M16C60 nur auf einem Board das ich mir vor vielen
Jahren mal aus Japan mitgebracht habe. (sonst nutze ich R8C11, R8C1B, 
R8C29 und M16C29)

http://www.marutsu.co.jp/user/shohin.php?p=18684

Ich habe aber gerade gesehen das da der M30620FCAFP drauf ist. Ich muss 
gleich mal schauen wo die sich von deinem Typen unterscheiden. Der 
grosse Nachteil von Renesas ist das man sich die ganzen §$%§%"§$! 
Nummern nicht merken kann.

Der Schaltplan fuer obiges Board ist irgendwo im Netz beim Hersteller zu 
finden. Habe ich aber jetzt auf die schnelle nicht geschafft.
Wenn du aber alle Leitungen auf irgendwelche Pfostenstecker rausfuehren 
willst so wirst du das auf einem einseitigen Board nicht schaffen.
Was wohl zu schaffen waere, ein einseitiges Board fuer eine ganz 
spezielle Anwendung die du mit dem Prozessor machen willst, aber da 
nuetzt dir nichts fremdes.

Als Beschaltung braucht der Prozessor nicht mehr als einen Quarz, einen 
Kondensator an seiner Versorgungsspannung, einen Resettaster und einen 
Jumper zum umschalten zwischen Run und Flashmode. Du wirst das im 
Prinzip 1:1 von den zahllosen Beispielen (Elektor) fuer den R8C13 
uebernehmen koennen. Auch ein Pegelwandler wie ihn Burkhard damals in 
der Elektor gezeigt hat (mit zwei Transistoren) sollte funktionieren. 
Oder ersatzweise ein Inverterbaustein. Fuer 1m Kabel muss es nicht 
gleich ein MAX232 sein.
Man muss dann nur den Jumper stecken, reset druecken und er wird ganz
normal ueber echtes RS232 gebrannt.
Fuer Windowsprogrammierer gibt es im uebrigen auch noch ein Programm
mit dem man die Dinger brennen kann und das nicht von Renesas ist.
Das war viel besser zu bedienen. http://m16c.cco-ev.de/

Im Zweifel halt nochmal fragen. Ist vielleicht nicht so klug jetzt alles 
im Markt-Teil abzuhandeln.

> wegen der Vergrößerung Deiner Projekthalde mail mich halt mal an.

Werde ich gleich mal machen. Aber 'Projekthalde' ist gemein. Meine SMD 
Bauteile nehmen nicht mehr als eine Ebene in einem Regal ein. :-D

Olaf

Autor: Olaf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab gerade mal kurz das Datenblatt ueberflogen.

Der Prozessor unterstuetzt in der Tat serialmode2, also RS232.
Die notwendige Quarzfrequenz fuer bestimmte Baudraten ist auch
angegeben, aber bei 16Mhz kann er alle Baudraten. Anschlussbelegung
zum brennen steht auch im Datenblatt.

Interessanterweise ist Mitsubishi in dem alten Datenblatt noch
sehr offenherzig. Die erklaeren das Flashprotokoll noch sehr genau
und gehen sogar kurz auf einem Parallelmode ein mit dem der Bootloader
bei der Herstellung reingebrannt wurde.

Fuer diejenigen die M16C noch nicht kennen, er ist Renesas/Mitsubishi 
typisch gut ausgestattet. Also 11Timer, 3-5uarts, (teilweise umschaltbar 
fuer I2C oder SPI), DMA, CRC, externes Businterface, 10Bit AD-Wandler, 
2x DA-Wandler, Watchdog, 2x Quarz, SIM-Mode(Handykarten).

Olaf

Autor: Olaf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich wollte noch anmerken das ich die Controller unter Linux
hiermit brenne:

[olaf] ~: m16c-flash
M16C-Flash Programmer Version 0.1
Programs an M16C/62 or R8C microcontroller in asynchronous mode.

Usage: flash [COM_DEV] [CPU_TYPE] [FILE] [ID1:...:ID7] [OPTIONS]
Examples:
         flash /dev/ttyS1 M16C simple.s 0:0:0:0:0:0:0
         flash /dev/ttyS1 R8C test.mot ff:ff:ff:ff:ff:ff:ff


Ich glaube das kann man hier bekommen:

http://packages.debian.org/de/sid/m16c-flash


Olaf

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Michael, die "Tafel Schokolade" ist angekommen :) Mal sehen, wann ich 
die Leckereien verbasteln kann...

Autor: Olaf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Michael, die "Tafel Schokolade" ist angekommen :)

What? Man bekommt Schokolade?

> Mal sehen, wann ich
> die Leckereien verbasteln kann...

Ich habe gerade ein kleines Testboard in der Mache. Hat aber 
Lowprioritaet und wird daher mindestens noch einen Monat dauern. Bei 
Interesse koennte ich es zur Verfuegung stellen. Allerdings habe ich es 
fuer den E8 designt und verwende z.b MAX233 als Pegelkonverter fuer die 
beiden RS232. Daher nuetzt es vielleicht nicht jedem. (der MAX233 ist 
hyperschweineteuer wenn man ihn nicht aus alten Platinen ausschlachten 
kann. :-P)
Und einer der microSD Sockel die hier letztens jemand angeboten hat ist 
auch drauf.

Mal schauen, ich muss nochmal darueber nachdenken ob man nicht auch 
einen Adapter von dem 14pol-E8 Stecker auf async-RS232 machen kann.

Olaf

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hehe, zum Glück für meine Bikinilinie ist keine Schoko dabei. 12 Stk. im 
Tray haben nur das gleiche Format. Also, mich interessiert dein Layout 
für ein Testboard. Aber nimm dir die Zeit, die du brauchst. Bei mir eilt 
das nicht.

Autor: Olaf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der erste Testaufbau gestern Abend hat leider schmaehlich versagt.
Ist doch besser wenn man erst das Datenblatt liesst und dann
die Platine layoutet, seufz.

Die hier im Thread angeboteten Controller sind sehr alte M16C/62A.
Das ist soweit kein Problem, die werden auch vom neusten Compiler
problemlos unterstuetzt. Aber sie werden NICHT vom E8/E8A unterstuetzt. 
Der erwartet mindestens einen 62P!

Man kann sie aber problemlos ueber RS232 brennen und debuggen.

Dafuer haben diese alten Controller noch einen grossen Pinabstand und 
lassen sich sehr einfach loeten.

Olaf

Autor: Thomas R. (tinman) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
böse falle.

FoUSB geht natürlich auch, man kann es sogar nachbauen (schaltplan und 
firmware sind vorhanden) - allerdings der benötigte M37641F8HP ist 
schwer zu finden.

Autor: Olaf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> FoUSB geht natürlich auch, man kann es sogar nachbauen

Aber haette das irgendeinen Vorteil gegenueber direkter Anbindung
ueber RS232? Hm..ausser vielleicht wenn man den Controller mit einem
ungewoehnlichen Takt betreibt?

Ich hab den Controller uebrigens gestern noch ans laufen gebracht. 
(unter Linux mit gcc) Allerdings ist mir noch ein kleines Problem 
aufgefallen. Man kannst erstmal nur 192kb Flashrom nutzen. Will man die 
ganzen 256k benutzen so muss man noch das pm13 bit setzen weil der 
Prozessor sonst externen Speicher ab E0000 einblendet. Wenn ich aber dem 
gcc sage das der er Code fuer 256k erzeugen soll, dann liegt der Anfang 
des eigenen Programms leider genau da wo man erst keinen Zugriff hat. 
Kann man natuerlich auch irgendwie hinbiegen, aber ich denke mal 192kb 
sollte reichen.

Was mir noch aufgefallen ist, ich habe derzeit ein Programm laufen das 
zwei LEDs abwechselnd blinken laesst. Das funktioniert, aber der 
Prozessor zieht dabei 170mA und wird warm. Das finde ich erstaunlich. 
Ich kann mir eigentlich nicht vorstellen das an meinem Layout was falsch 
sein soll. Aber normal ist so ein hoher Verbrauch wohl eher nicht.

Olaf

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Normal sind 170 mA bei zwei LEDs hoffentlich nicht! Benutzt du zur 
Ausgabe eine Einzelpinansteuerung oder eine Gesamtportansteuerung? Falls 
Port: Ist an den LED-losen Pins des Ausgabeports vielleicht ein 
Kurzschluss gehen GND (Lötproblem)? Test: Wenn du die LEDs active low 
betreibst, also M16C als Senke (µC---###---|<---Vcc), zieht der dann 
deutlich weniger?

Autor: Olaf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Normal sind 170 mA bei zwei LEDs hoffentlich nicht!

Das ist klar. Wenn ich den Jumper stecke mit dem der Controller
in den Bootmode geht um neue Firmware zu laden verbraucht er auch
nur 10-20mA.

> Benutzt du zur Ausgabe eine Einzelpinansteuerung oder eine
> Gesamtportansteuerung?

Die LEDs haengen jeweils an einen eigenen Transistor mit 10k 
Basiswiderstand. Es ist also unmoeglich das da soviel Strom fliesst.
Naja, ich muss heute Abend mal schauen.

Olaf

Autor: Thomas R. (tinman) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Olaf schrieb:
>> FoUSB geht natürlich auch, man kann es sogar nachbauen
>
> Aber haette das irgendeinen Vorteil gegenueber direkter Anbindung
> ueber RS232? Hm..ausser vielleicht wenn man den Controller mit einem
> ungewoehnlichen Takt betreibt?
>

Wenn ich mich richtig erinnere waren mehr BPs möglich, und natürlich 
schöne bunte Flash-over-USB software die mich überzeugt haben um es zu 
kaufen.

Autor: Olaf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So ich hab das Problem gefunden.

Es ist sehr wichtig das PM13 Bit zu setzen, auch dann wenn man nur 192k 
Flash verwendet. Macht man das nicht so kann man nur 15k Ram nutzen. Ich 
hatte aber den Stack an dem Ende der 20k liegen. Man muss dieses Bit 
unbedingt vor der Initialisierung des Stackpointers setzen sonst stuerzt 
der Prozessor ab.

Ich finde es aber lustig das er bei mir bis auf die extreme 
Stromaufnahme funktioniert hat. Dabei verwendet mein Hauptprogramm das 
die LEDs blinken laesst naemlich einen Call auf eine Delayroutine die 
wiederum wartet bis ein Timer-IRQ auf null gezaehlt hat. Der Stack wird 
also reichlich verwendet, dabei sollte der Prozessor mit falsch 
gesetztem Bit auch externes Ram einblenden.

Mit richtig gesetztem Bit braucht der Prozessor 60mA (davon 20 fuer die 
LEds) und mit falsch gesetztem Bit sind es 170mA. Da war wohl ein 
Bondingdraht kurz vor dem gluehen. :-)

Olaf

Autor: Michael H. (turmalin)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Olaf schrieb:
> Mit richtig gesetztem Bit braucht der Prozessor 60mA (davon 20 fuer die
> LEds) und mit falsch gesetztem Bit sind es 170mA. Da war wohl ein
> Bondingdraht kurz vor dem gluehen. :-)

Hallo Olaf,

wenn du Nachschub brauchst, melde dich ;-).

Klasse dass du den Teilen auf den Zahn fühlst. Wenn daraus mal eine 
usertaugliche Platine werden sollte, hätte ich Interesse. Momentan backe 
ich aber kleinere Brötchen, beschäftige mich gerade mit 'ner winzigen 
Atmega8 Platine.

Gruß,
Michael

Autor: olaf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> wenn du Nachschub brauchst, melde dich ;-)

Mich beschlich auch gerade schon so ein Gedanke, ich konnte den aber 
erstmal in den hintersten Winkel meiner man-kann-alles-gebrauchen 
Schublade zurueckdruecken. :-)

> Wenn daraus mal eine
> usertaugliche Platine werden sollte, hätte ich Interesse.

Ich haette ja im Prinzip jetzt eine. Allerdings sind derzeit nur die 
beiden LEDs darauf angetestet. Die hat allerdings keinen wirklichen 
Sinn. Ich habe einfach mal ein paar Sachen auf eine Platine geworfen 
damit man was zum rumspielen und kennenlernen hat.

Das sind im einzelnen:
Der Prozessor selber,
ein MAX233 fuer den Port zum flashen und einen zweiten RS232,
ein 24lc16 und LM75 am I2C-bus,
eine microSD Karte am SPI-bus,
ein Anschluss fuer eine DS1820,
16Mhz Generator fuer den Takt,
4pol PWM ausgang fuer PC-Luefter
2pol PWM Ausgang fuer normale Luefter oder Motore.
externer I2C-Bus,
externer GBUS fuer Grafik-LCD,
16pol Pfostenstecker mit diversenen IO-Ports

http://www.criseis.ruhr.de/m16c62a.jpg (noch nicht alles bestueckt)

Das Layout koennte ich sicher unter die Leute werfen, allerdings wird 
das den meisten nichts nuetzen weil doch ein paar exotische Bauteile 
drauf sind.

> 'ner winzigen Atmega8 Platine.

Du hast so tolle Prozessoren rumliegen und willst DAMIT deine Zeit 
verschwenden?
Ueberlege mal, 16Bit, bergeweise Timer, 2-3RS232, 20kRam.
Dein M16C hat nur einen Nachteil, man schlaeft irgendwie schlecht wenn 
50% alle Pinne unbelegt sind weil man garnicht weiss was man an die 
ganzen IO-Leitungen haengen soll. :-)

Falls hier jemand den gcc unter Linux verwendet um die M16C zu 
programmieren, koennte ich auch ein kleines Beispielproject rauswerfen 
das die LEDs blinken laesst. Das nimmt gerade Anfaengern einiges an 
Schweiss ab weil die ganzen prozessorspezifischen Sachen bereits geloest 
sind. (Initialisierung Ram/Rom, linker-script, Installation 
Interrupttabelle)

Olaf

Autor: Michael H. (stronzo83)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Olaf,

über dein Beispielprojekt würde ich mich freuen, kannst du es zur 
Verfügung stellen?
Ich habe die M16C bisher nur mit dem NC30 Compilter beackert, der 
Umstieg auf GNU würde so sicher leichter fallen.

Viele Grüße
Michael

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, Yahoo oder Facebook? Keine Anmeldung erforderlich!
Mit Google-Account einloggen | Mit Facebook-Account einloggen
Noch kein Account? Hier anmelden.