Frequently Asked Questions (FAQs) about OKI ARM MCUs
Further Information |
FAQ Selection |
| #General ARM |
| # Tools |
| # CPU Boards |
| # ML674K / ML675K Series |
| # ML67Q40x Series |
| # ARM Glossary |
| General ARM |
| Question | Answer |
||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| What is a JTAG/ICE interface? | Oki's ARM MCUs have a built-in On-Chip Debug capability facilitated through the EmbeddedICE macrocell built-into each chip. EmbeddedICE is an extension to the core architecture and provides the ability to do in-circuit-emulation with deeply embedded cores. |
||||||||||
| Do Oki's ARM MCUs support Little-Endian or Big-Endian format? | Oki's ARM MCUs support Little-Endian format only. Although the ARM architecture supports both configurations, Oki's ARM Micros have been configured to only use Little Endian format. |
||||||||||
| What is AMBA? | AMBA is a well-established specification for processor bus architectures. It stands for Advanced Microcontroller Bus Architecture. The AMBA architecture standardizes the on-chip connection of different IPs and thus enables IP reusability. |
||||||||||
| What is Thumb? | Thumb is a 16-bit extension to ARM's 32 bit instruction set. It enables writing of 16-bit instructions for an ARM micro. The 16-bit instructions are decompressed in to comparable 32-bit ARM instructions during processing. |
||||||||||
| What is Angel? | Angel is a remote debug monitor program for ARM processors. It is supplied with ARM software development tools (ADS or SDT) in source as well as binaries. Oki's ARM CPU boards always include Angel, preprogrammed in their onboard flash. Angel provides the following services:
|
||||||||||
| How does ARM code compare to Thumb code? | The following is a general comparison of ARM-code vs. Thumb-code solutions:
|
||||||||||
| What is a TIC? I keep seeing references to it in the documentation for ML674K ARM MCUs. What should I do with it? | TIC (Test Interface Controller) is a block in the core of ML674K MCUs which enables testing of the internal AMBA bus of the MCU during SOC (System On Chip) development. Since Oki's ML674K family of MCUs have been designed with Oki µplat SOC development tool, they include this common feature from µplat. |
|
| Tools |
| Question | Answer |
|---|---|
What are the recommended software and hardware development tools for Oki's ARM MCUs? |
One of the great benefits of the ARM platform is its standard open architecture nature which enables third party software development tools vendors to easily support the ARM platforms on their development environment. Also, ARM has pursued a policy of 100% Instruction Set Architecture (ISA) compatibility on any ARM licensed core. As a result, there are numerous third party vendors that offer state of the art software development tools for Oki's line of ARM based microcontrollers. A list of these vendors and validated development configurations are available on the following page: devtools.html. |
Does GNU Software Development tools support ARM? |
ARM7TDMI and Oki ML674K/5K series are currently fully supported by GNU public domain software development tools. There is complete C, C++, Assembler, linker and debugger available which is supported on Windows as well as Linux systems. There is also comprehensive documentation available on GNU's ARM support. For more information about GNU tools for ARM please refer to sites such as www.GNU.org or www.redhat.com. Also ARM Developer Zone (www.armdevzone.com) has very good information on this subject. |
How do I create Hex or Binary image files for ML674K/5K series ROMs? |
When using Oki's flash utility for Oki ML674K/5K series or when creating a ROM image, it is sometimes noted in documents and required to use particular output object formats. Most ARM® compatible compilers, output ELF formatted output files. So how does one get a binary or other output formatted object files? All ARM compatible software development tools have utilities that handle this task. For example, ARM software development tools (ADS, SDT or RealView) have a utility called fromELF that can convert ELF objects to other formats. GNU tool-chain contains a tool called Object Copy (objcopy.exe) that does the same task and is freely distributed. Similarly, other compilation tools provide comparable utilities for file format conversion. |
What is Oki ADI Board? |
Oki ADI board is a standard JTAG ARM Debugger interface board. ADI stands for ARM Debugger Interface. Oki ADI board is very similar to ARM Multi ICE and its design is intended as a low priced, qualified replacement for ARM Multi ICE in a debugging configuration. |
|
| CPU Boards |
| Question | Answer | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
What are the different memory types supported by ML674000? |
ML674000 supports SDRAM, EDO, SRAM, Flash and standard ROMs. ML674000 can interface to up to 64 MB of SDRAM, 16 MB of flash, SRAM, ROMs, or I/O peripherals. |
||||||||||||
How do I bring up the ML674000 CPU board once I receive it? |
ML674000 CPU board is shipped with a complete set of driver software for all of its peripherals. In addition, there are startup and Interrupt routines that can initialize the board. Memory Controller initialization routines and flash programming utilities are also included. Once the customer receives the board, they can readily load the bundled software into their software development tools and execute them. There is also a Software User's Manual that can help the user get started. The bundled software have been developed for various software development tools, including but not limited to ARM SDT 2.51, ARM ADS 1.2, and ARM Realview Developer's Kit for Oki. To run the software in other third party development tools, minor modifications of source code may be necessary. |
||||||||||||
How much memory is available on the ML674000 CPU board? |
ML674000 CPU board has the following memory configuration:
|
||||||||||||
Do I have to enable ARM Semihosting when using sample software that is provided by Oki with ML674K MCUs? |
The example programs bundled with Oki's ML674K CPU-boards generally do not require ARM Semihosting to be enabled. In some cases, having Semihosting enabled will interfere with the performance of the sample software. As a rule, any sample program that uses the init.s module, does not require semihosting. |
||||||||||||
Why does the JTAG interface to the ML67Q4003 CPU-board fail to establish a connection to the EmbeddedICE? |
Problem Description: When interfacing to an ML67Q4003 CPU-board using standard JTAG-debugger interface units, JTAG errors are observed and as a result a JTAG connection cannot be established. Errors such as "JTAG not initialized" or "Could not stop processor" are noted. These errors may arise even though the user has been able to successfully connect via the same JTAG debugger interface unit to other Oki CPU-boards. Therefore, to interface to ML67Q4003 CPU-boards, the user has the following options:
If the JTAG-debugger interface unit at hand does not support adaptive clocking:
|
||||||||||||
What are the factory default settings for switches on Oki ARM CPU-boards? |
The factory default settings for switches on Oki ARM CPU-boards are generally available in a readme.txt file on the CD-ROM accompanying the CPU-board. The readme.txt file can be found in the pertinent directory. For example, the default settings for running the sample program on ML674000 CPU-board can be found in the directory: \SAMPLE_SOFT\SAMPLE_PROGRAM\readme.txt Some of the sample programs may require different switch settings in which case a readme.txt file in the directory for these particular programs shows the proper switch settings for executing these programs. |
||||||||||||
What is the correct setting for ICEEN switch on ML674K/ML675K CPU-boards? |
ML674K/ML675K CPU-boards support two main modes of operation: Stand-Alone and Normal-JTAG mode. In Normal-JTAG mode, the CPU is interfaced with and controlled through JTAG-debug interface. The ICEEN switch must be in the OFF position to be able to interface to the board via JTAG and enter debug mode. In stand-alone mode where the MCU is running independent of any JTAG connection, the ICEEN switch should be set to ON position. When ICEEN switch is in the ON position, JTAG connection to the MCU is disabled. The appropriate switch settings for each mode is described in a Readme.txt file on the CD accompanying the CPU-boards. Also, description of each switch setting on the boards is detailed in the related CPU-board users manual. |
||||||||||||
How do I use Teraterm or Hyperterm with the ML67Q4003, ML67Q5003 Serial Flash Write Utility? |
The ML67Q4002/3, ML67Q5002/3 Serial Flash Write utility supports using both the Hyperterm and Teraterm setups.
After sending the !Zero.dat file 'Ready' should appear on the terminal window. The !Zero.dat file is available on the CD supplied with the CPU board. Downloading !Zero.dat synchronizes the baud rate of the CPU board to that of the terminal program. The user can now download and run their application program (Intel32 Hex format) Teraterm is much faster and shows progress on downloads. Hyperterm is slower and does not show status of download. Teraterm can be downloaded at http://www.tucows.com/ or http://hp.vector.co.jp/authors/VA002416/teraterm.html |
||||||||||||
Why does my JTAG connection to the Oki ARM target become unstable when trying to re-map memory banks using a JTAG debugger development environment? |
Oki's ML674K and ML675K series of MCUs have a powerful re-map feature that enables them to re-map different memory banks (ROM, external RAM, internal RAM, external DRAM) to Bank 0 at address 0x00. This feature is facilitated by setting the Remap Control Register (RMPCON). During software development and debug, it is tempting to try re-mapping by setting this register through a debugger/JTAG connection. Re-mapping is a sensitive task and sometimes re-mapping through the debugger/JTAG connection causes unpredictable behavior such as the JTAG tool (JTAG debugger interface unit) loosing communication with the chip Test Access Port (TAP). This issue only occurs when one tries to set the register from the debugger through a JTAG connection by either stepping through the code slowly or by setting the register manually. This issue does not occur when running code that contains remap commands in the debugger without stepping or breaking at or near the re-map commands. It also does not occur when the code containing re-map commands is running on the MCU in stand alone mode independent of any JTAG connection. Thus, to avoid this problem, simply run through the re-map code without breaking or stepping or run this code in stand alone mode. |
|
| ML674K / ML675K Series |
| Question | Answer | ||
|---|---|---|---|
How much SDRAM can be controlled through ML674000's SDRAM external memory bank? |
ML674000's external memory controller can interface with up to 64 Mbytes of SDRAM through the SDRAM Bank. |
||
Are Oki ML674K/5K series 5-volt tolerant? |
No. The maximum voltage at any pin of Oki's ML674K/5K series should not exceed 4.9 V. |
||
Why do I get errors when trying to do DMA transfers to or from the ROM bank of ML67400x/ML67500x ARM MCUs? |
The DMA Controller (DMAC) in ML67400x/ML67500x was designed not to be able to access the external ROM bank of the MCUs. This design was carried out so as to maximize the performance efficiency of the ROM bank. This limitation is noted in the DMA chapter of the User's Manual in section: "Important Usage Notes". |
||
On ML674K/ML675K MCUs, are the GPIO pins configurable for secondary/primary function at the bit level? |
ML674000, ML674001/2/3, and ML675001/2/3 MCUs, have multiple GPIO pins that sometimes are multiplexed with other functional blocks of the MCU. Thus, during initialization, these pins have to be configured for their primary or secondary functions according to application requirements. The primary and secondary function of the GPIO pins are configured through the Port Function Select Register (GPCTL). The primary/secondary function for groups of GPIOs is set or reset at one time. Thus, it is not always possible to set the primary/secondary function for individual bits of PIOs. For example, in ML674000, PIOA[8] and PIOA[9] pins have the secondary function of STXD and SRXD respectively. The primary or secondary role for these two PIO pins is jointly set. It is not possible to have PIOA[8] primary/secondary role set independently of PIOA[9]. The primary/secondary role settings for other PIO pins are similar. Thus, although the GPIO pins are not configurable at the bit level independently, they can be configured independently in small groups. ML671000 GPIOs are configured differently to where the primary/secondary function of each GPIO pin can be set independently at the bit level. |
||
In ML674K/ML675K MCUs, how do I configure the PIO pins multiplexed with SDRAM bank signals to their primary or secondary functions? |
In ML674000, ML674001/2/3 and ML675001/2/3 MCUs, some of the PIO pins are multiplexed with SDRAM bank control signals. At any one time, these pins can be used as either PIOs or SDRAM control pins. |
||
Is the FIQ input of Oki's ML674K and ML675K MCUs edge triggered or level sensing? |
The FIQ input of ML674K and ML675K MCUs is edge triggered. The edge triggering works on the falling edge of the input signal and is not configurable. |
||
What is the function of the FWR pin on Oki's ML674K and ML675K series of ML674K/5K series? |
The FWR pin on ML674K and ML675K ML674K/5K series is used only as an internal factory test pin. It does not have any function beyond this. In customer's system it should always be tied "low". |
||
What is the maximum operating frequency of Oki's ML674K/5K series? |
ML674000 operates up to 33 MHz ML674000/Q4001/Q4002 operate at 33 MHz ML675000/Q5001/Q5002 operate at 60 MHz ML671000 operates up to 24 MHz ML670100 operates up to 24 Mhz |
||
Can I run Windows CE or Linux on Oki's ARM7 MCUs? |
Operating systems such as Windows CE and Linux require a Memory Management Unit (MMU) to run. ARM7TDMI cores do not have a built in MMU. Therefore Windows CE is not supported on them. There are versions of Embedded Linux that can run on micros without an MMU. One such popular version of Linux is uCLinux. For more information on this refer to www.lineo.com In the ARM world, generally ARM cores that have the name ARMX2XTxxx, the 2 designates MMU capability and thus support for operating systems such as Linux and Windows CE. For example ARM920T or ARM720T have MMUs. |
||
What is the benefit of having the Mode[0:2] pins on the ML674000 as opposed to handling these tasks through software? |
The Mode[0:2] pins of the processor handle the enabling and disabling of the DRAM controller and A-to-D converter of the processor. By disabling these hardware blocks through hardware, the power source to these blocks is cut off and hence power consumption of the ARM processor will drop significantly. Mode[0:2] pins are also tied to additional functionalities such as enabling and disabling the Primary and Secondary functions of Processor pins. |
||
When using the ML674000 CPU-board in Normal Mode, I cannot seem to access the Flash memory part 0xc820_0000. The memory that I see at that address seems to be a mirror of the SRAM memory. |
To be able to access the flash, you need to first set the PIOA[10:14] to their secondary functions which are XA[19:23]. This is due to the fact that the chip is connected to these high address pins. To do this, you will need to set the Port Function Select Register (GPCTL=0xB7000000). Simply write a '1' to the 2nd bit (GPCTL2) of this register.
|
||
Given that the address pins XA[19:23] of the ML674000 MCU are the secondary function of PIOA pins, how can I boot from a memory that needs to use these address pins? |
As stated, the XA[19:23] address pins of ML674000 are the secondary function of PIOs. On reset, the corresponding PIOA pins are configured as input ports and thus the level of these pins is undetermined. To avoid any issues, an external mechanism for fixing these pins should be used during startup. A typical method of achieving this is by using pull down resistors on XA[19:23]. |
||
How many hardware breakpoints do ML67K MCUs support? |
Hardware breakpoints are a function of the debug hardware architecture. The EmbeddedICE logic within the core of the ARM7TDMI contains two watch-point units. These watch points can be used for setting a variety of breakpoints or watch points. |
||
How do I configure the Port B GPIO pins of the ML674000 to their primary function as GPIO pins? |
The GPIO pins of ML674000 are multiplexed with secondary functionalities. Thus, they can be configured and used either in their primary function as GPIOs or as their secondary functions. These settings are generally made in the Port Function Select Register (GPCTL). The Port B GPIOs PIOB[15:9] are an exception. These pins have a secondary function as SDRAM control pins. To configure PIOB[15:9] for their primary function as GPIOs, the Mode[2:0] external pins of the MCU must be configured in hardware as noted in Chapter 4 "Chip Configuration" of ML674000 User's Manual. Based on the Mode[2:0] pin levels, the PIOB[15:9] pins will function in either their primary function as GPIO pins or their secondary function as SDRAM control pins. |
||
What are the maximum data transmission rates for the UARTs ? |
The I/O cells of the UARTs of Oki ML674K/5K series are capable of handling data rates in excess of 512 Kbps. However, the maximum data rate depends on the performance of the application software running on the MCU. In other words, how fast can the application software respond to requests from the UART, and what other events does the application software have to respond to at the same time of servicing the UART. If the application software is burdened with responding to other events such as interrupts from other peripherals or processing other information, it may not be able to service the high data rate demands of the UART. In sample trials carried out at room temperature, Oki engineers have been able to transmit and receive at transmission rates in excess of 512 Kbps on the 16550 UART peripheral of ML674K and ML675K ML674K/5K series. The SIO port of Oki's ML674K ML674K/5K series generally has a lower data rate performance due to the fact that it does not have buffers. Thus it is more prone to line errors. In conclusion, data rates of up to 512 Kbps are possible on the ML674K/5K series UART. Users should evaluate the maximum data rate possible in their application based on their own application software and application demands on the MCU. |
|
| ML67Q40x Series |
| Question | Answer |
|---|---|
Does the RTC of ML67Q4050/4060 Series of MCUs have calendar function? |
Yes. The RTC of ML67Q4050/4060 Series has a complete calendar function that keeps track of months and years. |
Does the WCSP packaged version of Oki’s ML67Q4060 Series require an advanced PCB manufacturing process? |
No. The WCSP packaged version of Oki’s ML67Q4060 Series Advantage Microcontrollers has a .5 mm ball pitch comparable to common BGA packages. As a result,, common PCB fabrication processes can handle mounting of this package. |
I programmed the internal Flash of my ML67Q4050/4060 Series Advantage Microcontrollers and now I can no longer interface to it through JTAG. Why? |
Oki’s ML67Q4050/4060 Series Advantage Microcontrollers are equipped with a Flash security bit that protects the internal Flash ROM contents from unauthorized reads. If the Flash security bit is set during Flash programming, the JTAG port of the MCU is also disabled, making it impossible for the JTAG to interface with the MCU. To disable the security bit when this occurs, use the Boot-ROM, serial Flash programming method to pop the Flash security bit and enable the JTAG connection. |
Can the Ring-Oscillator of Oki’s ML67Q4050/4060 Series be disabled? |
Yes. Oki’s ML67Q4050/4060 Series of Advantage Microcontrollers have a built-in Ring-Oscillator that can be used for quick startup. The Ring-Oscillator can be enabled or disabled in hardware by setting the voltage level of the BOOTCLK pin of the MCU during System Reset. If the BOOTCLK pin of the MCU is at “Low” level during reset, the MCU will operate on Ring-Oscillator immediately after reset. If the BOOTCLK pin of the MCU is at “High level during reset, the MCU will operate on the SYSCLK input immediately after Power-On. |
|
| ARM Glossary |
| Term | Description |
|---|---|
ADS |
ARM Developer Suite is the name of the 2nd generation of ARM development tools suite from ARM Lmtd. ADS provides compilation tools and debugger. |
AHB |
Advanced High-Performance Bus, System bus connecting ARM cores to peripheral circuits , I/Os , memory and IPs |
AMBA™ |
dvanced Microcontroller Bus Architecture is a widely popular standard for on-chip processor bus and is used as the internal bus of Oki ARM MCUs |
APB |
Advanced Peripheral Bus is a part of the AMBA bus specifications. It is a simpler bus that AHB and is designed for interface with general peripherals such as timers and UARTs…etc. |
ARM® |
Advanced RISC Machines (ARM Ltd., company name of developer of ARM MCUs in the UK), visit www.arm.com |
ARM7™ |
32-Bit RISC CPU core designed by ARM Ltd., UK |
ASIC |
Application Specific Integrated Circuit. An integrated circuit designed for a specific application. Ideal for mass produced or highly customized solutions. |
ASSP |
Application Specific Standard Product. An integrated circuit designed for a specific application or market. |
BGA |
Ball Grid Array (IC package) |
CPI |
Cycles Per Instruction. A measure of the computer instructions that can be performed in one clock cycle. |
CPSR |
Current Program Status Register is the status register for ARM core reflecting current processor core |
CSP |
Custom Standard Product. An integrated circuit customized of specific application and/or customer |
DMA |
Direct Memory Access. An operation that transfers data without processor core |
EmbeddedICE |
On-chip debug circuit that is part of the ARM core and provides on-chip hardware debug capabilities through the TAP through JTAG interface. |
ETB |
Embedded Trace Buffer, stores trace information in an on-chip circular buffer which can be read through the JTAG port. |
ETM™ |
Embedded Trace Macrocell, traces command instructions and data accesses by monitoring the internal buses. Directly interfaced with an ARM7 core. |
EWARM |
acronym for IAR |
ICE |
In-Circuit Emulator |
ICE-ME |
ICE Micro-Edition is the JTAG-debugger interface hardware for Oki RVDK software development tools |
ISFP |
In-System-Flash-Programmer (ISFP) is the name of Oki |
Jazelle |
Name of ARM |
JTAG |
Joint Test Action Group (interface for in-circuit debugging and testing) |
JVM |
Java Virtual Machine |
MAC |
Multiply and Accumulate. This term is used when referring to the capabilities of a core. |
MMU |
Memory Management Unit (MMU) is the part of the processor that is responsible for protecting system resources from unwanted access and also adding the capability for handling virtual memory. In ARM cores, MMU is basically MPU plus added support for virtual memory. |
MPU |
Memory Protection Unit (MPU) is the management unit in the processor that is responsible for shielding of system resources and tasks from unwanted access. |
Multi-ICE® |
JTAG debugger interface unit from ARM Ltd. for In-Circuit debugging of ARM cores. |
Opella-USB |
Hardware JTAG debugger interface unit provided by Ashling for the purpose of debugging ARM MCU. |
RealView® |
Name of the Software Development Suite from ARM Lmtd. for developing and debugging software on ARM cores. |
RISC |
Reduced Instruction Set Computer |
RTOS |
Real Time Operating System |
RVDK |
RealView Developer Kit for Oki is the name of the RealView software development tools from ARM designed specifically for Oki ARM MCUs. Includes compiler, debugger, ICE-ME (JTAG adaptor), probe converter, cables and documentation. |
SDK |
Software Development Kit |
SDT |
Software Development Tools is the name of ARM corporation |
SoC |
System on Chip (high integration of functions on a single chip including controller). |
SOI |
Silicon on Insulator is a semiconductor technology ideal for developing low power LSIs |
SPSR |
Saved Program Status Register is an ARM core register that saves the CPSR contents immediately before exception occurs. |
TAP |
Test Access Port is a series of terminals that form the interface to a JTAG hardware. |
TCM |
Tightly Coupled Memory. A fast RAM memory that is interfaced directly to the core and provides a significant performance boost |
TDMI® |
The TDMI acronym often seen on ARM Core names stands for Thumb® Instruction, Debugger, Multiplier, ICE. Thumb is a 16-bit instruction set extension to ARM |
TIC |
Test Interface Controller is a test and monitoring interface for testing the traffic on the AMBA bus of the ARM SOC. In an off-the-shelf MCU environment, this interface is not used. |
USB |
Universal Serial Bus, visit www.usb.org |
|
