Bean Categories
Bean Selector Categories
Complete list of bean categories and corresponding beans can be found
in the Bean Selector (main menu | View |
Bean Selector) at the page "Bean Categories".
The categories are related to the bean's functionality and allow to
quickly find appropriate bean for a desired function. There are the
following four main categories containing many sub-categories.
- CPU - all available CPU beans. The CPU folder
in Bean Selector contains subfolders for the CPU families.
- CPU External Devices - beans for devices
externally controlled to the CPU. For example sensors, memories,
displays or EVM equipment.
-
CPU Internal Peripherals - beans using any of on-chip
peripherals offered by the CPU. The Bean Selector folder with the same
name contains sub-folders for the specific groups of functionality. (i.e.
Converters, Timers, PortIO etc.)
Note: It seems that beans (especially in this
category) correspond to on-chip peripherals. Even this declaration is
close to the true, the main purpose of the bean is providing the same
interface and functionality for all supported CPU derivatives. This
portability is the reason why the bean interface often doesn't copy
all features of the specific peripheral.
- SW - beans encapsulating a pure software
algorithms or inheriting a hardware-dependent beans for accessing
peripherals. These beans (along with beans created by the user) can be
found in a bean selector folder SW.
Specific functionality of the CPU derivative may be supported as a version-specific
settings of the bean. For more about this feature please refer to Version
specific in the bean documentation or Beans
Implementation help chapter.
Levels of Abstraction
Processor Expert provides beans with a different level
of abstraction and settings comfort.
- High Level Beans - The beans that are the
basic set of beans designed carefully to provide functionality of most
microcontrollers on the market. An application built from these beans
can be easily ported to another microcontroller supported by the
Processor Expert. This basic set contains beans for simple I/O
operations (BitIO, BitsIO, ByteIO, ...), timers (EventCounter,
TimerInt, FreeCntr, TimerOut, PWM, PPG, Capture, WatchDog,...),
communication (AsynchroSerial, SynchroMaster, SynchroSlave,
AsynchroMaster, AsynchroSlave, IIC, ADC, internal memories, etc...).
This group of beans allows comfortable settings of a desired
functionality such as time in ms or frequency in Hz, the user doesn't
have to know the details about hardware registers. CPU specific
features are supported only as CPU specific settings or methods and
are not portable. See chapter Version
Specific for details.
The beans inheriting or sharing a
high level bean(s) to access hardware are also high level beans.
- Low Level Beans - The beans that are dependent
on the peripheral structure to allow the user to benefit from
non-standard features of a peripheral. The level of portability is
decreased due to a different bean interface and the bean is usually
implemented only for a CPU family offering the appropriate peripheral.
However, there is still implemented a comfortable settings of devices'
features and effective set of methods and events.
- Peripheral Initialization Beans - These beans
are on the lowest level of abstraction. An interface of such beans is
based on the set of peripheral control registers. These beans cover
all features of the peripherals and were designed for initialization
of these peripherals. Usually contain only "Init" method,
see Typical Peripheral Initialization
Beans Usage for further details). The rest of the function has to
be implemented using a low level access to the
peripheral. This kind of beans could be found in the "CPU
Internal Peripherals / Peripheral Initialization Beans"
folder of the Bean selector and they are available only for some CPU
families. The interface of these beans might be different for a
different CPU. The name of these beans starts with the prefix 'Init_'.
Table of the features of the different levels beans
Feature |
High level |
Low level |
Peripheral Init |
High level settings portable between different CPU families |
yes |
partially |
no |
Portable method interface for all CPU families |
yes |
partially
(usually direct access to control registers) |
Init method only |
CPU specific peripheral features support |
partially |
mostly yes |
full |
Low level peripheral initialization settings |
no |
partially |
yes |
Speed mode independent timing |
yes |
mostly yes |
no |
Events support |
yes |
yes |
no
(direct interrupt handling) |
[top of page]
|