23.04.2013 Aufrufe

EVBM16C/USB - Glyn

EVBM16C/USB - Glyn

EVBM16C/USB - Glyn

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

<strong>EVBM16C</strong>/<strong>USB</strong><br />

MANUAL<br />

© 2003 by <strong>Glyn</strong> GmbH & Co KG, Mikrocontroller Group<br />

History<br />

11 th December 02 EW15 V1.0 started<br />

07 th April 03 EW15 V1.1 new Editor for the TM Toolmanager<br />

31 th July 03 EW15 V1.2 new Tasking Firmware<br />

16 th October 06 DP115 V1.3 UIC Programmer added


Inhaltsverzeichnis<br />

Inhalt Seite<br />

1.0 Einleitung 3<br />

1.1 Lieferumfang 3<br />

1.2 Kurzanleitung 3<br />

2.0 Hardware 4<br />

2.1 technische Daten 4<br />

2.2 Spannungsversorgung 4<br />

2.3 Jumper 4<br />

2.4 Anschlüsse 4<br />

2.5 Memory mapping 5<br />

2.6 Anwenderhinweise 5<br />

3.0 Software 6<br />

3.1 mitgelieferte Software 6<br />

3.2 Beschreibung der Monitorsoftware 6<br />

3.3 Beschreibung der Flashersoftware Fousb 7<br />

3.4 Beschreibung der Flashersoftware Flashsta 9<br />

3.5 Der UIC – Programmer 12<br />

3.6 Beschreibung des Debuggers 13<br />

3.7 Der Tasking C-Compiler 14<br />

3.8 Der Renesas C-Compiler V2.0 16<br />

3.9 Der Renesas C-Compiler V5.10 17<br />

3.10 Das <strong>USB</strong>-Demoprogramm 18<br />

3.11 Die <strong>USB</strong>-Firmware 21<br />

4.0 Tipps und Tricks 22<br />

Anhang<br />

<strong>EVBM16C</strong>/<strong>USB</strong> Bauteilliste 24<br />

<strong>EVBM16C</strong>/<strong>USB</strong> Schaltplan 26<br />

<strong>EVBM16C</strong>/<strong>USB</strong> Board 27<br />

© 2003 <strong>Glyn</strong> GmbH & Co. KG<br />

Alle Rechte vorbehalten. Kein Teil dieser Dokumentation darf in irgendeiner Form darf in irgendeiner<br />

Form (Druck, Fotokopie, Mikrofilm oder einem anderen Verfahren) ohne schriftliche Genehmigung der<br />

<strong>Glyn</strong> GmbH & Co. KG, D-65510 Idstein reproduziert oder unter Verwendung elektronischer Systeme<br />

verarbeitet, vervielfältigt oder verbreitet werden.<br />

Microsoft and MS-DOS are registrated trademarks of Microsoft Corporation.<br />

Bezüglich des Inhalts dieser Dokumentation und des <strong>EVBM16C</strong>/<strong>USB</strong> Software-Paketes übernimmt die<br />

<strong>Glyn</strong> GmbH & Co. KG, D-65510 Idstein keinerlei Haftung oder Garantie. Die Firma <strong>Glyn</strong> GmbH & Co.<br />

KG, D-65510 Idstein behält sich das Recht der Überarbeitung dieses Werkes oder des<br />

<strong>EVBM16C</strong>/<strong>USB</strong> Software-Paketes vor. Alle Programme und Beschreibungen wurden nach bestem<br />

Wissen erstellt und mit Sorgfalt getestet. Dennoch können wir Fehler nicht ganz ausschließen. Aus<br />

diesem Grund übernimmt die <strong>Glyn</strong> GmbH & Co. KG keine Garantie für mögliche Fehler oder<br />

Folgeschäden, die in Verbindung mit der Bereitstellung, Leistung oder Verwendung dieses Materials<br />

stehen.<br />

2


1.0 Einleitung<br />

Das <strong>Glyn</strong> <strong>EVBM16C</strong>/62P Evaluation Board ist ein Mini-Emulator um einfach und preiswert mit den<br />

Features des M16C Mikrocontrollers eigene Applikationen zu entwickeln. Diese Mikrocontrollerfamilie<br />

wird von Renesas (ehemals Mitsubishi Electric) seit 1996 gefertigt und ist seit 2002 auch mit <strong>USB</strong>-<br />

Schnittstelle erhältlich.<br />

Das Applikationsprogramm darf bis zu 112Kbytes groß sein und dürfte für die meisten Applikationen<br />

ausreichen.<br />

Zu den mitgelieferten Entwicklungswerkzeugen gehören KD30 Source-Level Debugger, Renesas C-<br />

Compiler, sowie 2 Flasher Programme (<strong>USB</strong> und seriell). Auf der CD sind speziell für dieses Tool<br />

vorbereitetes Beispiele, die mit dem Renesas C-Compiler compilierbar sind.<br />

Im Verzeichnis 'cdrom:\samples\m30245firmware' befindet sich ein Testprogramm, mit dem ein<br />

vollständiges <strong>USB</strong>-Gerät (LED- und Eingabetest) zum laden und debuggen enthalten ist.<br />

1.1 Lieferumfang<br />

Dem <strong>EVBM16C</strong>/<strong>USB</strong> Board liegt folgendes bei:<br />

1. dieses Manual<br />

2. eine CD mit allen Softwaretools<br />

3. das Board mit geflashtem Monitor.<br />

4. RS232 Kabel<br />

5. <strong>USB</strong> Kabel<br />

6. zwei 50-polige Stiftleisten zum auflöten<br />

1.2 Kurzanleitung<br />

Um die Firmware schnell auszutesten geht man folgendermaßen vor:<br />

1. <strong>USB</strong>-Stecker nicht ins Board stecken, sondern nur serielles Kabel und Spannung (8-15V)<br />

anschliessen<br />

2. KD30 starten und dann unter Environ Init Run-Mode Freerun-Mode einstellen<br />

3. unter CDROM:\Sample_Code\m30245firmware\Firmware\<strong>USB</strong>-Firmware.x30 laden.<br />

4. GO im KD30 drücken.<br />

5. <strong>USB</strong>-Stecker mir dem Board verbinden.<br />

Der Windows-Rechner findet dann ein neues Gerät.<br />

Den <strong>USB</strong>-Treiber unter CDROM:\Sample_Code\m30245firmware\<strong>USB</strong> Driver<br />

verwenden und dann das Demoprogramm<br />

CDROM:\Sample_Code\m30245firmware\Mit_<strong>USB</strong>.exe<br />

starten.<br />

Wichtige Links:<br />

MCU Datenblätter http://www.renesas.com/eng/products/mpumcu/index.html<br />

Aktuelle M16C und Board Infos http://www.m16c.de<br />

M16C Forum http://www.m16c-forum.com/<br />

MCU Tools http://www.renesas.com/eng/products/mpumcu/tools/index.html<br />

Renesas allgemein http://www.eu.renesas.com<br />

Tasking C-Compiler http://www.tasking.com<br />

RTOS http://www.segger.com<br />

TCP/IP-Stack http://www.segger.com<br />

B/W, Color Display Treiber http://www.segger.com<br />

Mikrocontroller Forum / Beispiele http://mikrocontroller.cco-ev.de/de/m16c.php<br />

EMIT TCP/IP Software http://www.emware.com<br />

IAR C-Compiler http://www.iar.com<br />

Programmbeispiele http://www.m16canz.com/sampcode.htm<br />

3


2.0 Hardware<br />

2.1 technische Daten<br />

Das Board wird mit 16MHz getaktet und verfügt über einen 3V Spannungsregler. Der nötige<br />

RS232 Pegelwandler MAX3222 befindet sich ebenfalls auf der Platine. Für den Flash-<br />

Programming Modus ist ein spezieller Jumper, JP6 vorhanden und wird mit einer roten<br />

Leuchtdiode angezeigt. Ist kein <strong>USB</strong> Stecker angeschlossen, schaltet der Bootloader vom<br />

flashen über <strong>USB</strong> auf flashen über die serielle Schnittstelle um.<br />

2.2 Spannungsversorgung<br />

Das Board wird über die 2 polige Anreihklemme angeschlossen. Eine unstabilisierte<br />

Spannung von 8-15V ist ausreichend. Es wird ein Strom von bis zu 100mA benötigt. Das<br />

Board kann man auch direkt über die Pfostenfeldstifte mit 3,3V speisen (dazu JP8 ziehen),<br />

oder auch über den <strong>USB</strong>-Anschluss mit Strom versorgen. Dazu muß nur die Verbindung zum<br />

Spannungsregler umgeschaltet werden (JP26). Liegt Spannung an, so leuchtet die grüne<br />

Leuchtdiode.<br />

2.3 Jumper<br />

JP9 Jumper für die Power LED. Damit kann für Strommessungen die LED<br />

ausgeschaltet werden.<br />

JP23 Stiftleistenanschluß für die CPU-Pins 1-50<br />

JP24 Stiftleistenanschluß für die CPU-Pins 51-100<br />

JP10 Zwei Jumper für den SUB-Oszillator. Werden gesteckt, um die 32KHz<br />

Oszillatorschaltung auf dem Board zu verwenden. Wenn diese offen sind,<br />

werden P86 und P87 nur als Port-Pins verwendet.<br />

JP5 Ist nur zum flashen notwendig, nicht zum debuggen.<br />

JP12 Verbindet dir RXD0-Leitung mit dem MAX232. Sollte P62 aber als Port<br />

verwendet werden, so muß dieser offen sein.<br />

JP11 Verbindet dir TXD0-Leitung mit dem MAX232. Sollte P63 aber als Port<br />

verwendet werden, so muß dieser offen sein.<br />

JP21 Verbindet den VREF-Pin mit VCC. Bei Verwendung anderer Spannungen muß<br />

dieser offen sein.<br />

JP8 Verbindet den Ausgang vom Spannungsregler mit der Schaltung. Sollte das<br />

Board über die Stiftleistenanschlüsse JP23/JP24 mit anderer Spannung gespeist<br />

werden (z.B. für eine Strommessung), so muß der Jumper offen sein.<br />

JP7 / damit kann ein Reset ausgelöst werden.<br />

RESET<br />

JP6 Jumper zum programmieren. Im geschlossenen Zustand wird die MCU nach<br />

einem RESET in den Bootloadermode gebracht.<br />

MAX3222 der Chip ist gesockelt, um Strommessungen an der MCU zu ermöglichen<br />

(MAX3222 Chip aus dem Sockel ziehen)<br />

2.4 Anschlüsse<br />

Auf dem Board befinden sich zwei Reihen mit je 50 Anschlüssen. Jeder Anschluß entspricht<br />

dem jeweiligen Pin der MCU. Dem Board sind zwei 50-polige Stiftleisten begefügt, die man<br />

unter- oder auf das Board löten kann. Je nach Anwendungsfall.<br />

Zwei 9-polige D-SUB Buchsen X2 und X3 ermöglichen Kommunikation mit der Umwelt. Zum<br />

debuggen muß das mitgelieferte Kabel mit X2 verbunden werden (UART1). Der Anschluß X3<br />

ist mit der UART0 verbunden, kann aber mit den Jumpern JP11 und JP12 wieder von dieser<br />

getrennt werden.<br />

4


2.5 Memory mapping<br />

00000h<br />

00400h<br />

02BFFh<br />

E0000h<br />

FFFFFh<br />

SFR<br />

RAM<br />

10KB<br />

Flash Memory<br />

128KB<br />

02B00h<br />

FC000h<br />

FFFDCh<br />

User RAM Area<br />

10KB<br />

Monitor RAM Area<br />

128 Byte<br />

User ROM Area<br />

112KB<br />

Monitor ROM Area<br />

16KB<br />

Fixed Interrupt<br />

Vector Area<br />

do not use<br />

do not use<br />

do not use<br />

do not use<br />

do not use<br />

do not use<br />

do not use<br />

do not use<br />

Für eigene Programme steht das SRAM von 0400h bis 2AFFh zur Verfügung. Das Flash ist<br />

für eigene Applikationen im Bereich von E0000h und FBDFFh nutzbar.<br />

2.6 Anwenderhinweise<br />

Reset<br />

Bei jedem Download wird die MCU geflasht. Entgegen den Daten im Users Manual ist die<br />

MCU nicht 100 mal, sondern 100.000 mal flashbar.<br />

Die Watchdog-, Adress Match-, NMI-, Overflow- und Undefined Instruction Interrupts sind bei<br />

dem Monitor nicht verwendbar.<br />

5


3.0 Software<br />

3.1 mitgelieferte Software<br />

Tasking C-Compiler V2.3r1....... Windows 95/98/2000/NT4/XP Ansi C-Compiler von Tasking mit<br />

integrierter Benutzeroberfläche, Simulator und Monitor Debugger.<br />

Ohne zeitliche Begrenzung für C-Code bis 16Kbytes und Assembler-<br />

Code bis 2Kbytes.<br />

NC30 C-Compiler V2.00............Ansi C-Compiler mit Assembler von Renesas. Ältere DOS-Version<br />

ohne Limitierung. Läuft nicht unter Win NT. Im Unterverzeichnis<br />

Sample_Code befinden sich fertig compilierte Demos für das<br />

<strong>EVBM16C</strong>/<strong>USB</strong> Board.<br />

NC30 C-Compiler V5.10r1........ Neuste Version des Ansi C-Compilers von Renesas als Trial Version.<br />

Diese läuft 4 Monate. Bitte nicht in das NC30V2.00 Verzeichnis<br />

kopieren. Wird diese Version verwendet, müssen die Pfade zur V2.00<br />

in der Autoexec.bat gelöscht werden. Zusätzlich die Vollversion des<br />

Toolmanagers für Windows.<br />

KD30_Debugger ...................... Windows 98/2000/NT4 Source Level Debugger für Renesas-,<br />

Tasking- und IAR C-Compiler und Assembler.<br />

EMI, EMV.................................. EMI und EMV Design-Hinweise für Mikrocontroller<br />

Datasheets................................ Datenblätter für den M16C/24 Mikrocontroller inkl. Software Manuals.<br />

M16CFlasher.............................Flash Programm von Renesas für das serielle asynchrone Flashen<br />

der Mikrocontroller. Ist notwendig um bei 'leeren', neuen MCUs den<br />

ROM-Monitor zu flashen, oder um später das eigene Programm ohne<br />

ROM-Monitor zu flashen.<br />

Flasher...................................... Batchfähiges Flash Programm, ebenfalls für das serielle asynchrone<br />

Flashen der Mikrocontroller.<br />

Tasking Flasher............................... Flash Programm von Tasking. Ebenfalls für das serielle asynchrone<br />

Flashen der Mikrocontroller.<br />

UIC Programmer........................Flasher der Firma EDX. 45 Tage Trial Version.<br />

Application Notes...................... Hier sind 2 Application Notes: Flash programming und I²C<br />

Schnittstelle beschrieben.<br />

Packages.................................. Gehäusemaßzeichnungen<br />

Monitor V2.00.03....................... ROM Monitor mit Source, fertig mit dem AS30 (Renesas) assembliert<br />

für den M30245FCGP<br />

Sample_Code............................Programmbeispiele für die Peripherie der MCUs. Für den NC30 C-<br />

Compiler von Renesas vorbereitet.<br />

Editor......................................... Editor für den Toolmanager TM30. Lässt sich mit %F -%L für Files<br />

und Zeilen einstellen.<br />

3.2 Beschreibung der Monitorsoftware<br />

Der Monitor belegt im Flash- Speicher den Bereich von FC000h bis FFFFFh und im SRAM den<br />

Bereich 2B00h bis 2BFFh. Der Monitor ist als Source und als Motorola-File auf der CD im Verzeichnis<br />

'monitor' vorhanden. Die Monitorsoftware erwartet an UART1 die PC Debuggersoftware. Die<br />

Kommunikationsgeschwindigkeit beträgt 38400Bd. Der Monitor ist auf eine Quarzfrequenz von 16MHz<br />

eingerichtet, kann aber geändert werden. (siehe unter 3.1 Monitor)<br />

6


3.3 Beschreibung der Flashersoftware Fousb (Flashen über <strong>USB</strong>-<br />

Schnittstelle)<br />

Vorab Info: Das Flash-Programm wird erst am Schluß der Entwicklung benötigt, der Monitor wurde<br />

schon auf das Board geflasht.<br />

Jeder Flash Mikrocontroller aus der M16C Serie verfügt über einen integrierten Bootloader. Bei dem<br />

M16C/24 ist dieser in einem zusätzlichen Flash-Speicher von 16Kbytes abgelegt.<br />

Durch das schliessen des JP6 (programmieren) und verbinden des Boards mit dem <strong>USB</strong>-Kabel startet<br />

die MCU nach dem Reset diesen <strong>USB</strong>-Bootloader. Dieser Bootloader basiert auch 16MHz<br />

Quarzfrequenz.<br />

Nach dem starten des Bootloaders fragt das Windows® -Betriebssystem nach dem <strong>USB</strong>-Treiber für<br />

den Bootloader. Dieser Treiber befindet sich auf der CD unter cdrom:\<strong>USB</strong>-Flasher. Dort den Treiber<br />

fousb.sys auswählen.<br />

In der Systemsteuerung wird dann nach der Installation das Gerät "Renesas Flash-Over-<strong>USB</strong> for<br />

M30245F" angezeigt:<br />

7


Mit einem Doppelklick auf fousb_150.exe wird das Flashprogramm installiert.<br />

Nach dem Start des Programmes erscheint dann dieses Fenster:<br />

Die MCU wurde gefunden und der ID ausgelesen.<br />

Um die MCU mit einem Programm zu flashen (z.B. Monitorprogramm), wählt man zunächst das<br />

HexFile unter dem Button "Open" aus:<br />

Das Programm ermittelt dabei die Daten des Hex-Files, z.B. die Grösse, ID, verwendete Flash-Blöcke<br />

usw.:<br />

Unter dem Button "Program" wechselt das Programm in untenstehendes Menü. Dort "Erase All-><br />

Program -> Verify" auswählen und das Programm wird geflasht.<br />

8


3.4 Beschreibung der Flashersoftware Flashsta (Flasher_Mitsu)<br />

Vorab Info: Das Flash-Programm wird erst am Schluß der Entwicklung benötigt, der Monitor wurde<br />

schon auf das Board geflasht.<br />

Man flasht damit das Applikationsprogramm oder einen neuen ROM-Monitor in die MCU. Deswegen<br />

kann man diesen Teil des Manuals erst mal überspringen.<br />

Jeder Flash Mikrocontroller aus der M16C Serie verfügt über einen integrierten Bootloader. Bei dem<br />

M16C/24 ist dieser in einem zusätzlichen Flash-Speicher von 16Kbytes abgelegt.<br />

Durch das schliessen des JP6 (programmieren), JP3 (UVCC) und umstecken des JP25 auf Position 1-<br />

2 startet die MCU nach dem Reset diesen Bootloader.<br />

Der <strong>USB</strong>-Stecker darf bei Verwendung dieser Software nicht gesteckt sein, da der Bootloader sonst in<br />

der Modus 'flashen über <strong>USB</strong>' geht.<br />

Ist der CLK1-Pin High, so geht der Bootloader in den seriellen synchronen Betrieb, ist er Low (wie in<br />

dieser Schaltung) geht er in den asynchronen Betrieb. Im Gegensatz zum synchronen Modus sind im<br />

asynchronen Modus sind nicht alle Quarzfrequenzen möglich, deshalb gibt Renesas im Datenblatt die<br />

Frequenzen an, mit denen es funktioniert.<br />

Hier die möglichen Quarztakte und Baud-Raten für den M30245FCGP:<br />

16MHz 9600 19200 38400 57600<br />

12MHz 9600 19200 38000 ---<br />

11MHz 9600 19200 38000 ---<br />

10MHz 9600 19200 --- 57600<br />

8MHz 9600 19200 --- 57600<br />

7,3728MHz 9600 19200 38400 57600<br />

6MHz 9600 19200 38400 ---<br />

5MHz 9600 19200 --- ---<br />

4,5MHz 9600 19200 --- 57600<br />

4,194304MHz 9600 19200 38400 ---<br />

4MHz 9600 19200 --- ---<br />

3,58MHz 9600 19200 38400 57600<br />

3MHz 9600 19200 38400 ---<br />

2MHz 9600 --- --- ---<br />

9


Flashersoftware starten:<br />

Durch einen Doppelklick wird das Programm Flashsta.exe gestartet. Die detailierte<br />

Bedienungsanleitung zu dem Programm (in englisch) findet man im File manual_e.pdf.<br />

Das Programm fragt jetzt nach der RS232 Schnittstelle des PCs an dem der Mikrocontroller<br />

angeschlossen ist. Bitte noch Internal Flash Memory auswählen und bestätigen.<br />

Sollte es nach kurzer Zeit nach 9600 Bd fragen, so ist keine Verbindung zustande gekommen. Sind<br />

alle Verbindungen o.k. und greift kein zweites Programm auf die COM- Schnittstelle zu, so ist die<br />

Schaltung funktionsuntüchtig.<br />

In diesem Fall sollte man noch einmal Reset drücken, den Oszillator-, Betriebsspannung- und am<br />

MAX232 die Spannungspegel prüfen. Eigentlich sollte nichts schiefgehen. Falls man aber ein Fenster<br />

sieht, in dem nach einem Filenamen gefragt wird, hat alles funktioniert:<br />

Bitte den Filenamen auswählen und bestätigen. Es muß ein Motorola Hex-File sein.<br />

Das Flash-Programm Flashsta.exe wird sich jetzt über das Fehlen des ID-Files beschweren, falls das<br />

ID File nicht vom C-Compiler oder Assembler generiert wurde. Man kann es zunächst erst einmal<br />

wegklicken.<br />

Eine Zeile tiefer sind 7 Felder zu sehen. Dort wir der Identifier des Mikrocontrollers eingegeben, der<br />

jetzt gerade läuft. Wurde er noch nie programmiert, oder ist er vorher gelöscht worden, gibt man 7 x<br />

FFh ein. Hat man ein Assemblerprogramm (z.B. unseren Monitor) oder ein C-Programm vorher<br />

geflasht, so gibt man 7 x 00h ein. Wurde vorher ein spezieller ID geflasht, so gibt man diesen ein.<br />

Hat man vorher ein Tasking Programm geflasht, so muß man in der Regel 7 x FFh eingeben.<br />

10


Ist alles in Ordnung., erscheint dieses Fenster. Falls nicht, war die ID falsch.<br />

Mit 'Setting' stellt man nun die maximale Baud-Rate ein, die mit der Quarzfrequenz möglich ist.<br />

Bei 16MHz sind das 57600Bd. Geht eine Baudrate nicht, so gibt es einen 'Fall-back' zu letzten<br />

funktionstüchtigen Baudrate. War der Chip nicht leer, so muß er jetzt mit Erase gelöscht werden.<br />

Um das neue Programm (in diesem Fall den ROM-Monitor) zu flashen, benutzt man am besten<br />

'E.P.R.' = Erase, Program, Read (verify). Sollte es zu keiner Fehlermeldung kommen, so<br />

ist der Chip ordnungsgemäß geflasht.<br />

Nachdem das Programm beendet wurde, kann man jetzt die Betriebsspannung ausschalten, oder<br />

den Reset-Taster drücken und dabei dem Jumper ziehen.<br />

Wird jetzt die MCU gestartet, so startet das User-Programm im User-Flash.<br />

11


3.5 Beschreibung des UIC – Programmers<br />

Beim UIC – Programmer handelt es sich um ein Tool der Firma EDX, welches folgende<br />

Funktionalitäten verspricht:<br />

Der UIC Programmer (Universal In Circuit Programmer) ist eine Applikation zum Programmieren von<br />

Microcomputern. Über die serielle Schnittstelle vom PC wird der Microcomputer direkt in der Ziel-<br />

Hardware programmiert.<br />

Durch die vielseitigen Funktionen und die konfigurierbare Bedienung eignet sich der UIC Programmer<br />

für Entwicklung, Produktion und den Einsatz im Feld.<br />

Der UIC Programmer ist für das programmieren und verifizieren von UIC Code Dateien gratis.<br />

Firmware Updates kann Ihr Kunde mit UIC code Dateien selbst durchführen.<br />

Merkmale<br />

Programmieren und verifizieren<br />

Programmieren von Adressbereichen<br />

ID Code Check<br />

Konfigurierbare Bedienung<br />

Einbindung in andere Tools (Kommandozeile)<br />

Kein proprietärer Hardware Adapter (asynchrone Datenübertragung)<br />

Gratis für UIC Code Dateien<br />

Unterstützte Typen<br />

Renesas M16C 26A Group<br />

Renesas M16C 62A Group<br />

Renesas M16C 62N Group<br />

Renesas M16C 62P Group<br />

Renesas M16C 80A Group<br />

weitere Typen auf Anfrage<br />

Anforderungen<br />

Betriebssysteme: Microsoft Windows (ab Win95)<br />

Schnittstelle: RS232<br />

Adapterkabel: Pegelanpassung zwischen PC und Zielhardware. Beschreibung in der Online-Hilfe.<br />

Auf der CD befindet sich die Trial – Version des Programms.<br />

Zum Testen einfach den Ordner auf ihren Rechner entpacken und die Datei: UICProgrammer.ex_<br />

umbennen nach UICProgrammer.exe .<br />

Mit diesem Tool ist es dann ebenfalls möglich, Ihren Chip zu flashen.<br />

Weitere Informationen finden Sie im mitgelieferten Manual.<br />

Preise, Informationen und Downloads finden Sie unter http://www.TheEdx.ch .<br />

12


3.6 Beschreibung des Debuggers<br />

Mit einem Doppelklick auf Setup.exe wird der Debugger installiert. Nach der Installation wird die COM<br />

Schnittstelle des PCs ausgewählt und mit OK bestätigt (das <strong>EVBM16C</strong> muß angeschlossen und<br />

eingeschaltet sein). Die detailierte Bedienungsanleitung zu dem Programm (in englisch) findet man<br />

im Help-File. Das Ergebnis müsste dann so aussehen:<br />

Über das Pull-down Menü 'File download Load Module...' kann man jetzt das mitgelieferte und<br />

compilierte Programm CDROM:\Sample_Code\m30245firmware\Firmware\<strong>USB</strong>-firmware.x30 (vom<br />

NC30) downloaden und anzeigen lassen. Das Program-Window (links) folgt immerdem PC, das<br />

Source Window (wird über BasicWindow Source Window geöffnet) zeigt immer die beobachtete<br />

Funktion an. In diesem Fall wird main angezeigt.<br />

Unten sieht man das Dump Window (wird über BasicWindow Dump Window geöffnet) ab der<br />

Adresse FBD00, der Anfangsadresse der variablen Interrupt Vektoren.<br />

13


Auf der Benutzeroberfläche befinden sich Buttons, wie<br />

"GO" (Programmstart ab Program Counter),<br />

"Come" (Go bis cursor),<br />

"Step" ( Einzelschritt),<br />

"Step over Subroutine",<br />

"Step from Subroutine",<br />

"Stop" (hält laufendes Programm an),<br />

"RST" (Reset des Systems),<br />

"BREAK-points" (listet alle Breakpoints auf)<br />

um nur die wichtigsten zu nennen.<br />

Zum debuggen ist es möglich, neben dem Program-Window auch mehrere Source-Windows zu<br />

öffnen. In dem Script-Window können Scripte eingegeben und abgespeichert werden. Damit kann z.B.<br />

eine persönliche Arbeitsumgebung für den Start des Emulators initialisiert werden. Der Emulator<br />

frischt einmal pro Sekunde den Bildschirm auf. D.h. RAM Monitor-Window und Watch-Window werden<br />

ständig aufgefrischt. Damit das die laufende Applikation nicht stört, kann man die refresh-Zeit<br />

erhöhen, oder diese Funktion abschalten (Free-Run Mode).<br />

Eine detailierte Beschreibung befindet sich nach der Installation<br />

unter 'Start' 'Programme' 'Renesas Tool' 'KD30 V3.02 Release 1' 'KD30 Users<br />

Manual.pdf'<br />

3.7 Der Tasking C-Compiler<br />

Mit einem Doppelklick auf Setup.exe wird der Tasking C-Compiler Installiert. Der Compiler meldet sich<br />

dann mit seiner EDE Workbench wie folgt:<br />

14


Kurzanleitung zum Laden des 'firmware' Projekts:<br />

1. Auf der CD im Verzeichnis Sample_Code\Tasking\ das File M30245_<strong>USB</strong>_firmware.zip<br />

auf der Festplatte entpacken.<br />

2. Mit der Maus über den Text 'M16C Examples' gehen und mit der rechten Maustaste 'Add<br />

existing Projekts...' das eben entpackte Projekt <strong>USB</strong>_firmware.pjt' auswählen und O.K.<br />

drücken.<br />

3. Das Projekt ist nun im linken Fenster eingetragen und muß jetzt noch als aktuelles Projekt<br />

markiert werden. Dies erfolgt wiederum mit der rechten Maustaste über dem Text<br />

'first(2Files)' mit der Auswahl 'Set as Current Project'. Das Projekt erscheint nun fett auf<br />

dem Bildschirm.<br />

4. Mit dem 'Rebuild'-Button wird nun das Projekt komplett compiliert und<br />

auch ein usb_firmware.abs- File zum debuggen erzeugt.<br />

5. Nun kann das usb_firmware.abs File in den KD30 geladen werden, aber vorher muß<br />

dem KD30 mitgeteilt werden, daß ein Tasking Source gedebuggt wird. Das geschieht<br />

im KD30 unter 'Environ Init Compiler'. Dort den Tasking Compiler auswählen und<br />

unter download das ABS File laden.<br />

6. GO drücken und <strong>USB</strong> Buchse mit dem PC verbinden. Der PC findet jetzt ein <strong>USB</strong>-Gerät ,<br />

das „<strong>Glyn</strong> <strong>EVBM16C</strong>/<strong>USB</strong> Example“. Weitere Informationen dazu gibt es hier im Manual<br />

unter 3.9.<br />

7. Dieses Beispiel läuft nicht im Simulator da durch das Einbinden der SFR Register<br />

die<br />

erlaubte Zahl der Variablen dieser Trial Version überschritten wird. Dafür läuft es jetzt<br />

direkt mit dem Monitor ohne KD30 !<br />

Ein neues Projekt erstellen:<br />

1. als erstes mit der Maus über den Text 'M16C Examples' gehen und mit der rechten<br />

Maustaste ‚Add new Projects...‘ auswählen.<br />

2. Mit ‚Browse‘ neuen Pfad und Projektnamen eingeben, dazu eventuell neuen Ordner<br />

anlegen.<br />

3. Mit O.K. bestätigen.<br />

4. Nun ‚Add new file to Project‘ z.B. main.c eingeben und mit O.K. bestätigen.<br />

5. Das Fenster ‚Project Properties‘ ebenfalls mit O.K. bestätigen.<br />

6. Mit der rechten Taste nun im linken Rahmen über das neue Projekt gehen und mit ‚Set as<br />

current Project‘ als aktuelles Projekt markieren.<br />

7. Auf das + Zeichen des Projektes klicken, danach noch einmal auf das + von Source Files.<br />

8. Man sieht nun ein main.c mit Ausrufezeichen (es ist noch kein Text drin, deshalb das (!))<br />

9. Mit einem Doppelklick aufmachen und ein paar C Zeilen einfügen.<br />

z.B. #include <br />

void main (void)<br />

{<br />

char i;<br />

i = 74;<br />

}<br />

10. Mit dem 'Rebuild'-Button wird nun das Projekt komplett compiliert und dürfte ohne<br />

Fehler durchlaufen. Damit das jetzt noch mit dem Renesas Debuger KD30 gedebuggt<br />

werden kann muß man noch die nächsten Punkte beachten.<br />

11. Als nächstes wird unter ‚Project‘ ‚Project Options‘ ‚Processor‘ --> 'Startup Code' --><br />

‚Generate startup code‘ gesetzt. Das Ganze wird dann mit O.K. bestätigt.<br />

12. Unter ‚Project‘ 'Project Options' --> ‚Linker/Locator Options...‘ --> ' Output Format' setzt<br />

man jetzt das Flag ‚IEEE-695 for Renesas Debuggers‘, sowie ‚Motorola S-records...‘.<br />

Danach geht man zu 'Project' --> 'Poject Options' --> 'Processor' --> ‚Vector table‘ und<br />

15


trägt unter ‚ Alternative variable vector table name‘ die Adresse 0xFBD00 ein. (unbedingt<br />

für der ROM-Monitor erforderlich). Mit O.K. bestätigen.<br />

13. Nun wieder mit der rechten Taste im linken Rahmen über das neue Projekt gehen und das<br />

Menü ‚Properties‘ auswählen.<br />

14. Auf den Reiter ‚Members‘ klicken.<br />

15. Mit ‚Add existing Files‘ das File cstart.src auswählen und mit ‚öffnen‘ bestätigen. Das ist<br />

notwendig, damit der Debugger auch den Source dieses Assembler Startup-Files zu<br />

sehen bekommt. Nun mit O.K. bestätigen.<br />

16. Damit der ROM-Monitor nach dem laden des USER-Programms seine Verbindung über<br />

UART1 halten kann, muß jetzt noch der UART1 Vector und Interruptnummer eingegeben<br />

werden. Dazu wir unter Project Project Options Cross View Pro ROM-Monitor das<br />

Häkchen gesetzt und dann Serial transmit Interrupt auf 8 und Serial vector address auf<br />

0xff900 eingestellt.<br />

17. Jetzt noch ein Rebuild und das main.abs File kann in den Debugger geladen werden.<br />

Die Vollversion (TK499-024-05-CL) des Tasking C / C++ Compilers kann man über uns, oder<br />

bei<br />

Altium Germany GmbH<br />

Albert-Nestler-Straße 7<br />

D-76131 Karlsruhe<br />

Tel.: 0721-8244-300, Fax.: 0721-8244-320<br />

für 2790.- Euro kaufen.<br />

Den C / C++ Compiler gibt es auch für Linux.<br />

3.8 Der Renesas C-Compiler V2.0 ( DOS-Version )<br />

Renesas C-Compiler: Um den C-Compiler zu installieren geht man wie folgt vor:<br />

1. Verzeichnis c:\mtool\nc30 erzeugen<br />

2. nc30.zip dorthin kopieren<br />

3. mit pkunzip -d nc30 oder winzip dort entpacken<br />

4. die Textzeilen von autoexec.mit ins eigene autoexec.bat kopieren<br />

Kurzanleitung zum Laden des 'm30245_led' Projekts:<br />

Auf der CD in das Verzeichnis Sample_Code\m30245_led gehen.<br />

Dann im DOS-Modus 'comp' eingeben. Nun wird das Programm first.c wird compiliert.<br />

Die Anpassungen für den ROM-Monitor sind in den Files sect30.inc (Vektoren, Mapping) und nrt0.a30<br />

(Startup Assemblerfile) schon enthalten.<br />

Hier die Vorgehensweise:<br />

Anpassen der Startup Files an den ROM-Monitor:<br />

ncrt0.a30: ;-----------------------------------------------------------------------------------------------------------------------------------<br />

; INTERRUPT VECTOR ADDRESS definition von 0FFD00h in 0FBD00h ändern<br />

;-----------------------------------------------------------------------------------------------------------------------------------<br />

VECTOR_ADR .equ 0fbd00h ;special vector adress for monitor<br />

sect30.inc: ;-----------------------------------------------------------------------------------------------------------------------------------<br />

; Far ROM data area hier 0E0000h eintragen<br />

;-----------------------------------------------------------------------------------------------------------------------------------<br />

.section rom_FE,ROMDATA<br />

.org 0e0000h;<br />

diese Zeilen eintragen:<br />

;-----------------------------------------------------------------------------------------------------------------------------------<br />

; variable vector section von dummy_int in 0FF900h ändern<br />

;-----------------------------------------------------------------------------------------------------------------------------------<br />

.lword 0FF900h ; uart1 trance (for user)<br />

.lword 0FF900h ; uart1 receive (for user) .<br />

16


Erklärung:<br />

Die Vektoradresse wird ebenfalls wie beim Tasking C-Compiler auf 0xFBD00 eingetragen. In diesem<br />

Beispiel wird hier schon einmal das Clock-Register auf /1 gesetzt.<br />

Am Schluß wird noch der UART1 Vektor 0FF900h eingetragen, damit der ROM-Monitor nach dem<br />

laden des USER-Programms seine Verbindung über UART1 halten kann.<br />

Aufruf des C-Compilers in folgender Syntax<br />

Command Line:nc30 -silent -v -g -ooutputname -lnc30lib.lib ncrt0.a30 filename.c<br />

Input: filename.c : das auszuführende C-Programm<br />

lnc30lib.lib : Standard Libary<br />

ncrt0.a30 : startup program incl. sect30.inc (Initialisierung des heap, stack, ...)<br />

Output: filename.x30 : machine language file des erstellten C-Programmes<br />

filename.map : map file mit Informationen für den Debugger<br />

Parameter: -silent : unterdrückt die Copyright-Meldung<br />

-v : teilt den Namen des ausführenden Programmes mit<br />

-g : erzeugt Informationen für den Debugger<br />

-ooutputname : gibt den Namen des zu erzeugenden X30 files an<br />

-llnc30.lib : bindet Standard Libary file für den Linker ein<br />

Um zum flashen ein Hex-File zu erzeugen, kann mit dem Aufruf 'lmc30 filename' ein Motorola HEX-<br />

File erzeugt werden.<br />

Zum debuggen ist es erforderlich, daß das Interrupt Flag gesetzt ist. Damit man im C-Programm<br />

debuggen kann, muß dieses dort auch gesetzt werden.<br />

Beispiel:<br />

void far main()<br />

{<br />

timerinit ();<br />

asm( "\tFSET I"); /* Enable interrupt */<br />

.<br />

.<br />

.<br />

.<br />

}<br />

Aber Vorsicht, man sollte das erst nach der Initialisierung eigener Interrupts eintragen.<br />

(Siehe Seite 15 bzw.16 unter Punkt 10)<br />

Noch ein Hinweis:<br />

Man kann mit dem Befehl printf........ Daten seriell oder parallel übertragen. Bei dem NC30 C-Compiler<br />

ist das sogar schon voreingestellt. Leider verwendet Renesas als Standard Ausgabe die UART1, also<br />

die serielle zum debuggen. Man kann das in der Library ändern oder, um es abzuschalten die<br />

folgenden Zeilen im NCRT0.A30 auskommentieren:<br />

;====================================================================<br />

; Initialize standard I/O<br />

;---------------------------------------------------------------------<br />

; .glb _init<br />

; jsr.a _init<br />

17


9 Der Renesas C-Compiler V 5.10<br />

Die Weiterentwicklung des Renesas Compilers kann aus dem Internet geladen werden und hat zur<br />

Zeit die V. 5.10r1. (http://www.renesas.com/eng/products/mpumcu/toolhp/trial/trys_e.htm)<br />

Um diesen zu installieren geht man wie folgt vor:<br />

(die NC30 Version 2.00 darf zwar dann noch in einem anderen Verzeichnis auf dem Rechner<br />

sein, die Pfade in der autoexec.bat müssen aber vorher ausgetragen werden)<br />

1. Doppelklick auf das File nc30wav510r1_e (Installiert die Windows-Version),<br />

und dann Trial-Version auswählen.<br />

2. Doppelklick auf das File tm320_e (Installiert den Toolmanager)<br />

Kurzanleitung zum Laden des '245_led' Projekts (läuft mit NC30V2.00 und NC30V5.10):<br />

Auf der CD im Verzeichnis sample-program das File 245_led.zip entpacken und auf der Festplatte<br />

installieren.<br />

Dann im DOS-Modus 'comp' eingeben. Nun wird das Programm 245_led compiliert.<br />

Wichtige Anpassungen an den ROM-Monitor sind in den Files sect30.inc (Vektoren, Mapping) und<br />

nrt0.a30 (Startup Assemblerfile) schon enthalten.<br />

Mit dem C-Compiler NC30V5.10 wird ein TM3.20 ausgeliefert. Dies ist eine Benutzeroberfläche, die<br />

für Windows Rechner eingesetzt werden kann.<br />

Ist der Toolmanager installiert und gestartet, so meldet er sich mit dieser Leiste:<br />

Wird mit dem Button das Projekt „245_led_mp“ von der CD geöffnet, so wird der Projekteditor<br />

gestartet:<br />

Alle weiteren Informationen zu diesem Programm kann man unter Start --> Programme --><br />

RENESAS-TOOL --> TM V.3.20 --> TM User's Manual.pdf entnehmen.<br />

18


3.10 Das <strong>USB</strong>-Demoprogramm<br />

Diesem Board liegt ein <strong>USB</strong>-Demoprogramm bei, mit dem man vom PC LEDs auf dem Board ein-bzw.<br />

ausschalten kann, sowie mit Jumpern Tasten auf dem PC-Desktop ein-bzw. ausschalten kann.<br />

Das PC-Programm befindet sich im Verzeichnis cdrom:\Sample_Code\m30245firmware.<br />

Der Source des PC-Programs befindet sich im Verzeichnis:<br />

cdrom:\Sample_Code\m30245firmware\Mit_<strong>USB</strong>_Source<br />

Die Firmware für die MCU befindet sich unter: cdrom:\Sample_Code\m30245firmware\Firmware,<br />

der Passende Treiber dazu unter: cdrom:\Sample_Code\m30245firmware\<strong>USB</strong> Driver.<br />

Wird die Firmware mit dem KD30 geladen und gestartet, so findet das Windows® Betriebssystem ein<br />

neues <strong>USB</strong>-Gerät. Den oben genannten Treiber unter cdrom:\Sample_Code\m30245firmware\<strong>USB</strong><br />

Driver\mitsuusb.sys laden und dann müsste in der Systemsteuerung folgendes zu sehen sein:<br />

Das Betriebssystem holt sich aus dem <strong>EVBM16C</strong><strong>USB</strong>_Example.inf File die nötigen Daten, wie z.B.<br />

Vendor ID, Device Description, Mfg Name usw. und zeigt sie im Gerätemanager an.<br />

Dort kann man dann eigene Eintragungen machen. Wichtig ist, dass die Vendor ID der Firmware mit<br />

der Vendor ID des .inf - Files übereinstimmt.<br />

19


Als nächstes startet man das Programm Mit_<strong>USB</strong>.exe und erhält dieses Fenster:<br />

Wenn man auf die LEDs oben links klickt, gehen die entsprechenden LEDs auf dem <strong>EVBM16C</strong>/<strong>USB</strong><br />

Board entsprechend an- bzw. aus.<br />

Interrupt Transfers:<br />

Wenn auf dem <strong>EVBM16C</strong>/<strong>USB</strong> der Jumper JP17 (Int0) gezogen- oder gesteckt wird, geht der Button1<br />

entsprechend hoch- oder runter. Der JP18 (KI6) entspricht Button 2 und der JP19 (KI7) entspricht<br />

Button 3. Der Button 4 wird mit Int2 gesteuert, ist aber auf diesem Board nicht verdrahtet.<br />

In dem Fenster BULK Transfer können Zeichen eingetippt werden, z.B. 1234567. Diese werden dann<br />

mit "Send" zum Board geschickt ind können mit "Receive" wieder abgerufen werden. Danach wird der<br />

Textspeicher auf dem Board wieder gelöscht.<br />

20


Custom Vendor Request:<br />

Mit diesem Fenster kann man eigene Programmteile, die man der Firmware hinzugefügt hat testen.<br />

z.B: bRequest =1, wValue=0, wIndex=0, wLength=2<br />

Attach Data = EF (LED P70)<br />

Attach Data = DF (LED P71)<br />

Attach Data = BF (LED P72)<br />

Attach Data = 7F (LED P73)<br />

Der Pot Value zeigt den 8-Bit Wert des Potis (R18 auf dem Board) an.<br />

Mit ISO IN wird der Potentiometerwert (R18) entweder Hexadezimal mit "Read" oder graphisch<br />

mit"Start Streaming" angezeigt.<br />

Mit ISO Out werden die Daten der Mausbewegung des PCs über die UART3 (ist auf dem Board nicht<br />

bestückt) ausgegeben.<br />

Die "<strong>USB</strong> Info" Taste gibt die derzeitigen Einstellungen und verwendeten Pipes zurück.<br />

3.11 Die <strong>USB</strong>-Firmware<br />

Der Source der Firmware befindet sich unter cdrom:\Sample_Code\m30245firmware\Firmware.<br />

Das Programm kann mit der Toolmanagerumgebung des NC30 compilert werden und besteht aus<br />

folgenden Teilen:<br />

ncrt0.a30 Assembler Startup File<br />

sect30.inc Interrupt und Vectoreneinstellung<br />

control_ep0.c request typen Definition<br />

EP1_BULK.c Empfängt die BULK-Daten und legt sie im RAM ab<br />

EP2_IN.c Sendet den Buffer alle 30ms zum PC<br />

EP3_ISO.c Läd die A/D Wandler-Daten in den EP2 Buffer<br />

init.c Initialisiert die Hardware (<strong>USB</strong> I/O, Timer, A/D Wandler, UART usw)<br />

interrupt.c Bedient alle Systeminterrupts<br />

main.c C-Startprogramm<br />

Wichtig ist das File descriptors.h, denn dort sind alle wichtigen ID's eigetragen.<br />

21


4.0 Tipps und Tricks<br />

Wie bekommt man später das Programm ohne Monitor zum laufen ?<br />

Zunächst muß der UART1 Vektor im File sect30.inc auf dummy_int gesetzt werden. (Ist nicht<br />

unbedingt erforderlich, sollte aus Sicherheitsgründen aber gemacht werden.<br />

Als zweites stellt man im File ncrt0.a30, einige Zeilen nach dem Label 'start: ' den Clockgenerator von<br />

/8 auf /1 (Protection aufheben nicht vergessen), damit Ihre Applikation nicht plötzlich mit 1/8 der<br />

Geschwindigkeit läuft.<br />

Und als drittes fügen Sie dem Batch-File comp.bat die Zeile ' lmc30 first ' ein (das erzeugte x30-File).<br />

Diese erzeugt dann ein Motorola Hex-File, welches Sie zum flashen mit dem oben genannten Flash-<br />

Programm benötigen.<br />

Weitere Tipps gibt es unter http://www.m16c.de<br />

Hinweise zur Applikationserstellung mit dem M16C/24<br />

Um den M16C in der Schaltung ordnungsgemäß zum arbeiten zu bringen sind einige wichtige Dinge<br />

zu beachten:<br />

1. Der M16C verfügt 2 mal über einen VCC und VSS. Diese Anschlüsse sind intern verbunden<br />

und gehen sehr niederohmig an die I/O Pins. Diese Anschlüsse sollten Sie mit breiten<br />

Leiterbahnen an die Stromversorgung anschließen und mit einem Kondensator abblocken.<br />

Die Anschlüsse AVCC und AVSS sind Anschlüsse, die etwas hochohmiger intern mit dem<br />

Chip verbunden sind und müssen ebenfalls außen mit VCC und VSS verbunden werden.<br />

Die Leitungen können etwas dünner ausfallen, da dort die Ströme geringer sind. Ein<br />

Abblockkondensator ist aber dringend erforderlich. Diese Anschlüsse sind direkt mit dem<br />

D/A- und A/D-Wandler verbunden.<br />

2. Der NMI-Pin darf niemals gleichzeitig mit dem RESET Low sein, da die CPU sofort nach dem<br />

bedienen des RESET-Vektors in die NMI-Routine springt. In diesem Zustand ist aber noch<br />

kein Stackpointer initialisiert und die CPU geht ins Nirwana. Deshalb immer einen Pull-Up<br />

einbauen und, falls ein MAX-xxx –Chip eingesetzt wird, ein Gatter mit RESET und MAX-<br />

Ausgang so verknüpfen, daß beim RESET ein H am NMI anliegt.<br />

3. Die Leitung RDY und HOLD benötigen bei der Verwendung von externem Speicher immer<br />

einen Pull-up, oder einen entsprechenden Schaltkreis zur Verzögerung. Die MCU bleibt sonst<br />

nach dem Zugriff auf externen Speicher stehen.<br />

4. Die Leitung CS0 hat einen integrierten Pull-up, der bei der ausschließlichen Verwendung von<br />

externem Speicher (das entscheidet der CNVss-Pin) aktiviert ist und damit externe EPROMs,<br />

Flash etc ohne zusätzliche Hardware ansteuern kann. Die Leitungen CS1, CS2, CS3 haben<br />

keinen Pull-up und benötigen (falls verwendet) unbedingt einen, da diese beim Start der<br />

Programme noch nicht initialisiert sind. Es kommt durch das floaten sonst zum Crash auf der<br />

Datenleitung.<br />

5. Offenliegende Portleitungen müssen, um Strom zu sparen entweder extern einen Pullup/down<br />

oder intern einen Pullup/down (programmiert) bekommen, oder der offene Port muß auf<br />

Ausgang geschaltet werden.<br />

6. Die A/D-Wandler Eingänge sind normalerweise sehr hochohmig (im Megaohmbereich),<br />

während dem Messvorgang sind es aber für einige Nanosekunden nur ca 7,8 KOhm. Deshalb<br />

ist bei jedem A/D-Wandlereingang ein Kondensator (ca 100pF) vorzusehen.<br />

7. Um einen 32KHz Quarz extern zu nutzen, sind die Portleitungen P86 und P87 mit Software<br />

auf die XCIN und XCOUT umzuschalten. Dazu muß aber das Clock-Register über das<br />

Protect-Register freigeschaltet werden.<br />

8. Die CPU ist nach dem RESET auf Takt/8 geschaltet. Das kann man im Clock-Register auf<br />

Takt/1 ändern. (Protectregister beachten)<br />

9. Interrupts (Priorität, ein und aus) dürfen innerhalb eines Interrupts nur dann verändert werden,<br />

wenn die Programmfolge<br />

FCLR I<br />

AND.B #00h, 055h (OR, BSET, BCLR geht auch)<br />

22


NOP<br />

NOP<br />

FSET I<br />

eingehalten wird. MOV ist verboten! Der Grund ist die instruction queue, die erst geleert<br />

werden muß.<br />

10. Soll der Software-Reset ausgelöst werden (Flag im Prozessor-Mode-Register 0), muß vorher<br />

der Clock auf /8 geschaltet werden.<br />

11. Falls für die serielle Datenübertragung kein MAX3222 sondern eine andere Schaltung<br />

verwendet wird, muß überprüft werden, ob diese ebenfalls über einen Pull-up Widerstand am<br />

TTL-Eingang verfügt. Falls nicht, muß ein Widerstand (ca 470kOhm) zwischen TXD1 und<br />

VCC geschaltet werden. Grund: Der Monitor, sowie der Bootloader lösen im Betrieb öfter<br />

einen Software-RESET aus. Da der TXD1 Pin dann für Sekundenbruchteile Input wird und<br />

floatet, kann es zu fehlerhaften Datenübertragungen kommen.<br />

12. Damit auch der Memory Expansion Mode genutzt werden kann, benötigt der Mikrocontroller<br />

nach dem Umschalten im Prozessor Mode Register 0 ein H auf der Leitung HOLD.<br />

Auf dem Board ist zum Flashen ein 100KOhm Pull-down Widerstand vorhanden. Den HOLD<br />

Pin also niederohmig mit VCC verbinden und schon läuft auch dieser Modus.<br />

13. Wird die MCU von der <strong>USB</strong>-Spannung (über einen 3,3V Regler) versorgt, so darf<br />

beim verbinden des <strong>USB</strong>-Steckers mit der Schaltung kein Jitter entstehen.<br />

Abhilfe schafft z.B. eine Diode in Reihe zum Regler.<br />

Wird das nicht gemacht, wird das Gerät oftmals nicht korrekt erkannt und ein<br />

'unbekanntes <strong>USB</strong>-Gerät' installiert.<br />

23


<strong>EVBM16C</strong>/<strong>USB</strong> Bauteilliste:<br />

Pos. Bauteil Typ Wert Raster (mm) Reichelt Bezeichnung*<br />

1 C1 33pF Vielschicht-Kondensator 1206 NPO-G1206 33P<br />

2 C2 1uF / 16V Elko / Tantal 2,5 rad 1/35<br />

3 C3 22pF Vielschicht-Kondensator 1206 NPO-G1206 22P<br />

4 C4 22pF Vielschicht-Kondensator 1206 NPO-G1206 22P<br />

5 C5 220uF / 16V Elko / Tantal 5 rad 220/35<br />

6 C6 100nF Vielschicht-Kondensator 1206 X7R-G1206 100N<br />

7 C7 100nF Vielschicht-Kondensator 1206 X7R-G1206 100N<br />

8 C8 10uF / 6,3V Elko / Tantal 2,5 rad 10/35<br />

9 C9 10pF Vielschicht-Kondensator 1206 NPO-G1206 10P<br />

10 C10 33pF Vielschicht-Kondensator 1206 NPO-G1206 33P<br />

11 C11 22pF Vielschicht-Kondensator 1206 NPO-G1206 22P<br />

12 C12 22pF Vielschicht-Kondensator 1206 NPO-G1206 22P<br />

13 C13 100nF Vielschicht-Kondensator 1206 X7R-G1206 100N<br />

14 C14 100nF Vielschicht-Kondensator 1206 X7R-G1206 100N<br />

15 C15 100nF Vielschicht-Kondensator 1206 X7R-G1206 100N<br />

16 C16 100nF Vielschicht-Kondensator 1206 X7R-G1206 100N<br />

17 C17 100pF Vielschicht-Kondensator 1206 NPO-G1206 100P<br />

18 C18 100nF Vielschicht-Kondensator 1206 X7R-G1206 100N<br />

19 C19 470nF Vielschicht-Kondensator 4,8 x 3,3 SMD-1812 470n<br />

20 C20 100nF Vielschicht-Kondensator 1206 X7R-G1206 100N<br />

21 C21 680pF Vielschicht-Kondensator 0805 NPO-G0805 680P<br />

22 C22 100nF Vielschicht-Kondensator 1206 X7R-G1206 100N<br />

23 C23 100nF Vielschicht-Kondensator 1206 X7R-G1206 100N<br />

24 D1 LED 3mm rot Leuchtdiode 2,5 LED 3mm rt<br />

25 D2 LED 3mm grün Leuchtdiode 2,5 LED 3mm gn<br />

26 D3 1N4002 Diode 10 1N4002<br />

27 D4 1N4148 Diode 7,5 SMD 1N4148<br />

28 D5 LED 3mm gelb Leuchtdiode 2,5 LED 3mm ge<br />

29 D6 LED 3mm gelb Leuchtdiode 2,5 LED 3mm ge<br />

30 D7 LED 3mm gelb Leuchtdiode 2,5 LED 3mm ge<br />

31 D8 LED 3mm gelb Leuchtdiode 2,5 LED 3mm ge<br />

32 D9 1N4148 Diode 7,5 SMD 1N4148<br />

33 G1 2 pol. Anreihklemme Anreihklemme 5 ALK 101-2<br />

34 IC1 LF33CV Spannungsregler TO-220 2,54 LF33CV<br />

35 IC2 MAX3222 DIP MAX3222 / ADM3222 DIP ---<br />

36 JP1 Stiftleiste 1x3 + Jumper Jumper (Byte-Pin) 2,54 Jumper schw.<br />

37 JP5 Stiftleiste 1x2 + Jumper Jumper (CE) 2,54 Jumper schw.<br />

38 JP6 Stiftleiste 1x2 + Jumper Jumper (Programmieren) 2,54 Jumper schw.<br />

39 JP7 Stiftleiste 1x2 + Jumper Jumper (Reset) 2,54 Jumper schw.<br />

40 JP8 Stiftleiste 1x2 + Jumper Jumper (VCC) 2,54 Jumper schw.<br />

41 JP9 Stiftleiste 1x2 + Jumper Jumper (Power-LED) 2,54 Jumper schw.<br />

42 JP10 Stiftleiste 2x2 + Jumper Jumper (Sub-Oszillator) 2,54 2 x Jumper schw.<br />

43 JP11 Stiftleiste 1x2 + Jumper Jumper (TXD0) 2,54 Jumper schw.<br />

44 JP12 Stiftleiste 1x2 + Jumper Jumper (RXD0) 2,54 Jumper schw.<br />

45 JP13 Stiftleiste 1x2 + Jumper Jumper (P70) 2,54 Jumper schw<br />

46 JP14 Stiftleiste 1x2 + Jumper Jumper (P71) 2,54 Jumper schw<br />

47 JP15 Stiftleiste 1x2 + Jumper Jumper (P72) 2,54 Jumper schw<br />

48 JP16 Stiftleiste 1x2 + Jumper Jumper (P73) 2,54 Jumper schw<br />

49 JP17 Stiftleiste 1x2 + Jumper Jumper (INT0) 2,54 Jumper schw.<br />

50 JP18 Stiftleiste 1x2 + Jumper Jumper (KI6) 2,54 Jumper schw.<br />

51 JP19 Stiftleiste 1x2 + Jumper Jumper (KI7) 2,54 Jumper schw<br />

52 JP20 Stiftleiste 1x2 + Jumper Jumper (AN0) 2,54 Jumper schw<br />

53 JP21 Stiftleiste 1x2 + Jumper Jumper (VREF) 2,54 Jumper schw<br />

54 JP22 Stiftleiste 1x2 + Jumper Jumper (Poti) 2,54 Jumper schw<br />

24


55 JP23 Stiftleiste 2x25 Stiftleiste 2,54 Stiftl. 2x50G<br />

56 JP24 Stiftleiste 2x25 Stiftleiste 2,54 Stiftl. 2x50G<br />

57 JP25 Stiftleiste 1x3 + Jumper Jumper (<strong>USB</strong>-Mode) 2,54 Jumper schw.<br />

58 JP26 Stiftleiste 1x3 + Jumper Jumper (Power) 2,54 Jumper schw.<br />

59 Q1 Quarz 16MHz HC49/S 5 16-HC49U-S<br />

60 Q2 Quarz 32,768KHz Uhrenquarz 2,5 0,032768<br />

61 R1 33 Ω Widerstand 1/4W 10 1/4W 33<br />

62 R2 33 Ω Widerstand 1/4W 10 1/4W 33<br />

63 R4 470 Ω Widerstand 1/4W 10 1/4W 470<br />

64 R5 1,5 KΩ Widerstand 1/4W 10 1/4W 1,5K<br />

65 R6 100 KΩ Widerstand 1/4W 10 1/4W 100K<br />

66 R7 100 KΩ Widerstand 1/4W 10 1/4W 100K<br />

67 R8 100 KΩ Widerstand 1/4W 10 1/4W 100K<br />

68 R9 100 KΩ Widerstand 1/4W 10 1/4W 100K<br />

69 R10 10 KΩ Widerstand 1/4W 10 1/4W 10K<br />

70 R11 470 Ω Widerstand 1/4W 10 1/4W 470<br />

71 R12 100 KΩ Widerstand 1/4W 10 1/4W 100K<br />

72 R13 10 MΩ Widerstand 1/4W 10 1/4W 10M<br />

73 R14 470 Ω Widerstand 1/4W 10 1/4W 470<br />

74 R15 470 Ω Widerstand 1/4W 10 1/4W 470<br />

75 R16 470 Ω Widerstand 1/4W 10 1/4W 470<br />

76 R17 470 Ω Widerstand 1/4W 10 1/4W 470<br />

77 R18 47 KΩ Widerstand 1/4W 10 1/4W 47K<br />

78 R19 1 KΩ Widerstand 1/4W 10 1/4W 1K<br />

79 U$1 M30245FCGP <strong>USB</strong>-MCU 0,5 ---<br />

80 X1 PN61729 <strong>USB</strong>-Anschluss Buchse <strong>USB</strong> PCB BW<br />

81 X2 F09H D-SUB Buchse 9-Pol 2,5 D-SUB BU 09EU<br />

82 X3 F09H D-SUB Buchse 9-Pol 2,5 D-SUB BU 09EU<br />

83 --- Stiftleiste für Jumper 2,54 Stiftl. 36G<br />

84 --- Sockel 18-pol. Sockel für MAX3222 2,54 GS18P<br />

* Reichelt Elektronik<br />

Elektronikring 1<br />

26452 Sande<br />

Tel.: 04422-955-333 Fax.: 04422-955-111<br />

25

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!