| cm4_scs_aircr |
Application interrupt and reset control reister Sets or returns interrupt control data. |
|
R/W
|
0xfa050000
|
Address : 0xe000ed0c
|
Bits |
Reset value |
Name |
Description |
| 31 - 16 |
0xfa05
|
vectkey
|
Vector Key. Register writes must write 0x05FA to this field, otherwise the write is ignored. On reads, returns 0xFA05. |
|
| 15 |
"0"
|
endianness
|
Indicates the memory system endianness: 0 - Little endian, 1 - Big endian. This bit is static or configured by a hardware input on reset. This bit is read only. |
|
| 14 - 11 |
0
|
-
|
reserved |
| 10 - 8 |
"000"
|
prigroup
|
| Priority grouping, indicates the binary point position. |
|
| 7 - 3 |
0
|
-
|
reserved |
| 2 |
"0"
|
sysresetreq
|
System Reset Request. Writing 1 to this bit asserts a signal to the external system to request a Local reset. A Local or Power-on reset clears this bit to 0. |
|
| 1 |
"0"
|
vectclractive
|
Writing 1 to this bit clears all active state information for fixed and configurable exceptions. This includes clearing the IPSR to zero. The effect of writing a 1 to this bit if the processor is not halted in Debug state is UNPREDICTABLE. This bit is write only. |
|
| 0 |
"0"
|
vectreset
|
Writing 1 to this bit causes a local system reset. This bit self-clears. The effect of writing a 1 to this bit if the processor is not halted in Debug state is UNPREDICTABLE. When the processor is halted in Debug state, if a write to the register writes a 1 to both VECTRESET and SYSRESETREQ, the behavior is UNPREDICTABLE. This bit is write only. Note: The netx90 doesn't support a local system reset. Writing 1 results in UNPREDICTABLE behaviour of the whole system! Use sysresetreq instead! |
|
| cm4_scs_cfsr |
Configurable Fault Status Register Contains the three Configurable Fault Status Registers. |
|
R/W
|
0x00000000
|
Address : 0xe000ed28
|
Bits |
Reset value |
Name |
Description |
| 31 - 26 |
0
|
-
|
reserved |
| 25 |
"0"
|
ufsr_divbyzero
|
| Divide by zero error has occurred. |
|
| 24 |
"0"
|
ufsr_unaligned
|
Unaligned access error has occurred. Multi-word accesses always fault if not word aligned. Software can configure unaligned word and halfword accesses to fault, by enabling UNALIGN_TRP in the CCR. |
|
| 23 - 20 |
0
|
-
|
reserved |
| 19 |
"0"
|
ufsr_nocp
|
| A coprocessor access error has occurred. This shows that the coprocessor is disabled or not present. |
|
| 18 |
"0"
|
ufsr_invpc
|
| An integrity check error has occurred on EXC_RETURN. |
|
| 17 |
"0"
|
ufsr_invstate
|
| Instruction executed with invalid EPSR.T or EPSR.IT field. |
|
| 16 |
"0"
|
ufsr_undefinstr
|
| The processor has attempted to execute an undefined instruction. This might be an undefined instruction associated with an enabled coprocessor. |
|
| 15 |
"0"
|
bfsr_bfarvalid
|
|
| 14 |
0
|
-
|
reserved |
| 13 |
"0"
|
bfsr_lsperr
|
| A bus fault occurred during FP lazy state preservation. |
|
| 12 |
"0"
|
bfsr_stkerr
|
| A derived bus fault has occurred on exception entry. |
|
| 11 |
"0"
|
bfsr_unstkerr
|
| A derived bus fault has occurred on exception return. |
|
| 10 |
"0"
|
bfsr_impreciserr
|
| Imprecise data access error has occurred. |
|
| 9 |
"0"
|
bfsr_preciserr
|
| A precise data access error has occurred, and the processor has written the faulting address to the BFAR. |
|
| 8 |
"0"
|
bfsr_ibuserr
|
| A bus fault on an instruction prefetch has occurred. The fault is signaled only if the instruction is issued. |
|
| 7 |
"0"
|
mmfsr_mmarvalid
|
| MMFAR has valid contents. |
|
| 6 |
0
|
-
|
reserved |
| 5 |
"0"
|
mmfsr_lsperr
|
| A MemManage fault occurred during FP lazy state preservation. |
|
| 4 |
"0"
|
mmfsr_mstkerr
|
| A derived MemManage fault occurred on exception entry. |
|
| 3 |
"0"
|
mmfsr_munstkerr
|
| A derived MemManage fault occurred on exception return. |
|
| 2 |
0
|
-
|
reserved |
| 1 |
"0"
|
mmfsr_daccviol
|
| Data access violation. The MMFAR shows the data address that the load or store tried to access. |
|
| 0 |
"0"
|
mmfsr_iaccviol
|
| MPU or Execute Never (XN) default memory map access violation on an instruction fetch has occurred. The fault is signalled only if the instruction is issued. |
|
| cm4_scs_dhcsr |
Debug halting control and status register Controls halting debug. Note: On writes bits 31-16 (dbgkey) must be set to 0xA05F. |
|
R/W
|
0x00000000
|
Address : 0xe000edf0
|
Bits |
Reset value |
Name |
Description |
| 31 - 26 |
0
|
-
|
reserved |
| 25 |
"0"
|
s_reset_st
|
Indicates whether the processor has been reset since the last read of DHCSR. This is a sticky bit, that clears to 0 on a read of DHCSR. This bit is read-only. |
|
| 24 |
"0"
|
s_retire_st
|
Set to 1 every time the processor retires one or more instructions. This is a sticky bit, that clears to 0 on a read of DHCSR. The architecture does not define precisely when this bit is set to 1. It requires only that this happen periodically in Non-debug state to indicate that software execution is progressing. This bit is UNKNOWN after a Power-on or Local reset, but then is set to 1 as soon as the processor executes and retires an instruction. This bit is read-only. |
|
| 23 - 20 |
0
|
-
|
reserved |
| 19 |
"0"
|
s_lockup
|
Indicates whether the processor is locked up because of an unrecoverable exception. This bit can only be read as 1 by a remote debugger, using the DAP. The value of 1 indicates that the processor is running but locked up. The bit clears to 0 when the processor enters Debug state. This bit is read-only. |
|
| 18 |
"0"
|
s_sleep
|
Indicates whether the processor is sleeping. The debugger must set the C_HALT bit to 1 to gain control, or wait for an interrupt or other wakeup event to wakeup the system. This bit is read-only. |
|
| 17 |
"0"
|
s_halt
|
Indicates whether the processor is in Debug state. This bit is read-only. |
|
| 16 |
"0"
|
s_regrdy
|
A handshake flag for transfers through the DCRDR: - Writing to DCRSR clears the bit to 0. - Completion of the DCRDR transfer then sets the bit to 1. For more information about DCRDR transfers see Debug Core Register Data Register, DCRDR. This bit is valid only when the processor is in Debug state, otherwise the bit is UNKNOWN. This bit is read-only. |
|
| 15 - 6 |
0
|
-
|
reserved |
| 5 |
"0"
|
c_snapstall
|
| Allow imprecise entry to Debug state. The actions on writing to this bit are: |
| - 0: |
No action. |
| - 1: |
Allow imprecise entry to Debug state, for example by forcing any stalled load \ |
or store instruction to complete. Setting this bit to 1 allows a debugger to request imprecise entry to Debug state. The effect of setting this bit to 1 is UNPREDICTABLE unless the DHCSR write also sets C_DEBUGEN and C_HALT to 1. This means that if the processor is not already in Debug stateit enters Debug state when the stalled instruction completes. Writing 1 to this bit makes the state of the memory system UNPREDICTABLE. Therefore, if a debugger writes 1 to this bit it must reset the processor before leaving Debug state. Note: - A debugger can write to the DHCSR to clear this bit to 0. However, this does not remove the UNPREDICTABLE state of the memory system caused by setting C_SNAPSTALL to 1. - The architecture does not guarantee that setting this bit to 1 will force entry to Debug state. - ARM strongly recommends that a value of 1 is never written to C_SNAPSTALL when the processor is in Debug state. |
|
| 4 |
0
|
-
|
reserved |
| 3 |
"0"
|
c_maskints
|
| When debug is enabled, the debugger can write to this bit to mask PendSV, SysTick and external configurable interrupts: |
| - 0: |
Do not mask. |
| - 1: |
Mask PendSV, SysTick and external configurable interrupts. |
The effect of any attempt to change the value of this bit is UNPREDICTABLE unless both: - Before the write to DHCSR, the value of the C_HALT bit is 1. - The write to the DHCSR that changes the C_MASKINTS bit also writes 1 to the C_HALT bit. This means that a single write to DHCSR cannot set the C_HALT to 0 and change the value of the C_MASKINTS bit. The bit does not affect NMI. When DHCSR.C_DEBUGEN is set to 0, the value of this bit is UNKNOWN. This bit is UNKNOWN after a Power-on reset. |
|
| 2 |
"0"
|
c_step
|
| Processor step bit. The effects of writes to this bit are: |
| - 0: |
No effect. |
| - 1: |
Single step enabled. |
| This bit is UNKNOWN after a Power-on reset. |
|
| 1 |
"0"
|
c_halt
|
| Processor halt bit. The effects of writes to this bit are: |
| - 0: |
Causes the processor to leave Debug state, if in Debug state. |
| - 1: |
Halt the processor. |
| This bit is UNKNOWN after a Power-on reset, and is 0 after a Local reset. |
|
| 0 |
"0"
|
c_debugen
|
Halting debug enable bit. If a debugger writes to DHCSR to change the value of this bit from 0 to 1, it must also write 0 to the C_MASKINTS bit, otherwise behavior is UNPREDICTABLE. This bit can only be written by the DAP, it ignores writes from software. |
|
| cm4_scs_dcrsr |
Debug core register selector register With the DCRDR, the DCRSR provides debug access to the ARM core registers, special-purpose registers, and Floating-point extension registers. A write to DCRSR specifies the register to transfer, whether the transfer is a read or a write, and starts the transfer. |
|
W
|
0x00000000
|
Address : 0xe000edf4
|
Bits |
Reset value |
Name |
Description |
| 31 - 17 |
0
|
-
|
reserved |
| 16 |
"0"
|
regwnr
|
| Specifies the access type for the transfer: |
|
| 15 - 7 |
0
|
-
|
reserved |
| 6 - 0 |
"0000000"
|
regsel
|
| Specifies the ARM core register, special-purpose register, or Floating-point extension register, to transfer: |
| 0 - 12 |
ARM core registers R0-R12. |
| 13 |
The current SP. See also values 17 (MSP) and 18 (PSP). |
| 14 |
LR. |
| 15 |
DebugReturnAddress. |
| 16 |
xPSR. |
| 17 |
Main stack pointer, MSP. |
| 18 |
Process stack pointer, PSP. |
20 |
Bits[31:24]: CONTROL, Bits[23:16]: FAULTMASK, Bits[15:8]: BASEPRI, Bits[7:0]: PRIMASK. In each field, the valid bits are packed with leading zeros. For example, FAULTMASK is always a single bit, DCRDR[16], and DCRDR[23:17] is 0. |
| 33 |
Floating-point Status and Control Register, FPSCR. |
| 64 - 95 |
FP registers S0-S31. |
All other values are Reserved. If the processor does not implement the FP extension the REGSEL field is bits[4:0], and bits[6:5] are Reserved, SBZ. |
|
| cm4_scs_demcr |
Debug exception and monitor control register Manages vector catch behavior and DebugMonitor handling when debugging. |
|
R/W
|
0x00000000
|
Address : 0xe000edfc
|
Bits |
Reset value |
Name |
Description |
| 31 - 25 |
0
|
-
|
reserved |
| 24 |
"0"
|
trcena
|
| Global enable for all DWT and ITM features: |
| - 0: |
DWT and ITM units disabled. |
| - 1: |
DWT and ITM units enabled. |
If the DWT and ITM units are not implemented, this bit is UNK/SBZP. When TRCENA is set to 0: - DWT registers return UNKNOWN values on reads. Whether the processor ignores writes to the DWT unit is IMPLEMENTATION DEFINED. - ITM registers return UNKNOWN values on reads. Whether the processor ignores writes to the ITM unit is IMPLEMENTATION DEFINED. Setting this bit to 0 might not stop all events. To ensure all events are stopped, software must set all DWT and ITM feature enable bits to 0, and then set this bit to 0. |
|
| 23 - 20 |
0
|
-
|
reserved |
| 19 |
"0"
|
mon_req
|
| DebugMonitor semaphore bit. The processor does not use this bit. The monitor software defines the meaning and use of this bit. |
|
| 18 |
"0"
|
mon_step
|
When MON_EN is set to 0, this feature is disabled and the processor ignores MON_STEP. When MON_EN is set to 1, the meaning of MON_STEP is: |
| - 0: |
Do not step the processor. |
| - 1: |
Step the processor. |
Setting this bit to 1 makes the step request pending. The effect of changing this bit at an execution priority that is lower than the priority of the DebugMonitor exception is UNPREDICTABLE. |
|
| 17 |
"0"
|
mon_pend
|
| Sets or clears the pending state of the DebugMonitor exception: |
| - 0: |
Clear the status of the DebugMonitor exception to not pending. |
| - 1: |
Set the status of the DebugMonitor exception to pending. |
When the DebugMonitor exception is pending it becomes active subject to the exception priority rules. A debugger can use this bit to wakeup the monitor using the DAP. The effect of setting this bit to 1 is not affected by the value of the MON_EN bit. A debugger can set MON_PEND to 1, and force the processor to take a DebugMonitor exception, even when MON_EN is set to 0. |
|
| 16 |
"0"
|
mon_en
|
Enable the DebugMonitor exception. If DHCSR.C_DEBUGEN is set to 1, the processor ignores the value of this bit. |
|
| 15 - 11 |
0
|
-
|
reserved |
| 10 |
"0"
|
vc_harderr
|
Enable halting debug trap on a HardFault exception. If DHCSR.C_DEBUGEN is set to 0, the processor ignores the value of this bit. |
|
| 9 |
"0"
|
vc_interr
|
Enable halting debug trap on a fault occurring during exception entry or exception return. If DHCSR.C_DEBUGEN is set to 0, the processor ignores the value of this bit. |
|
| 8 |
"0"
|
vc_buserr
|
Enable halting debug trap on a BusFault exception. If DHCSR.C_DEBUGEN is set to 0, the processor ignores the value of this bit. |
|
| 7 |
"0"
|
vc_staterr
|
Enable halting debug trap on a UsageFault exception caused by a state information error, for example an Undefined Instruction exception. If DHCSR.C_DEBUGEN is set to 0, the processor ignores the value of this bit. |
|
| 6 |
"0"
|
vc_chkerr
|
Enable halting debug trap on a UsageFault exception caused by a checking error, for example an alignment check error. If DHCSR.C_DEBUGEN is set to 0, the processor ignores the value of this bit. |
|
| 5 |
"0"
|
vc_nocperr
|
Enable halting debug trap on a UsageFault caused by an access to a Coprocessor. If DHCSR.C_DEBUGEN is set to 0, the processor ignores the value of this bit. |
|
| 4 |
"0"
|
vc_mmerr
|
Enable halting debug trap on a MemManage exception. If DHCSR.C_DEBUGEN is set to 0, the processor ignores the value of this bit. |
|
| 3 - 1 |
0
|
-
|
reserved |
| 0 |
"0"
|
vc_corereset
|
Enable Reset Vector Catch. This causes a Local reset to halt a running system. If DHCSR.C_DEBUGEN is set to 0, the processor ignores the value of this bit. |
|
| idpm_tunnel_cfg |
DPM Access Tunnel Configuration Register. The DPM Access Tunnel (DATunnel) is a 64 byte (16DWord) address window which can be mapped on any 64 byte boundary of the external visible address space. At the last DWord (offset 0x3C) of the DATunnel the Internal Target Base Address (ITBAddr) can be programmed. This is the base address of the 64 byte tunnel target area inside the full 32-bit netX address range (however some address areas could not be reachable as connections could be cut from the DPM inside the netX dataswitch, refer to the dataswitch documentation of your netX). By the DWords 0 to 14 of the tunnel the internal netX addresses starting at ITBAddr can be reached. The 'enable'-bit must be active for this (read-only functionality can be configured by 'wp_data'-bit). For access to netX data with ITBAddr DWord offset 15, the lower bits 5 to 2 of the programmed ITBAddr are interpreted as a mapping value. This value will be added to the internal access address before tunneling (wrapping around at the 64 byte boundary). Hence it is possible to access always 15 of the 16 netX DWord while the one hidden by the ITBAddr can be selected by an appropriate mapping value. The ITBAddr can also be programmed by the 'idpm_itbaddr' register of the configuration window 0 (or the INTLOGIC area). The ITBAddr on tunnel offset 0x3C can be write-protected by the 'wp_itbaddr'-bit. This could be useful to protect the NETX from reconfiguring the tunnel from the host side but provides the host the internal NETX destination address anyhow. However this only makes sense when the configuration window 0 is disabled ('idpm_addr_cfg' register). Otherwise the host could reconfigure the tunnel by the 'idpm_itbaddr' register. Additionally the 'tunnel_all'-bit provides the possibility of tunneling all 16DWords to the NETX side. To protect the NETX from reconfiguring the tunnel from the host side when the configuration window 0 is enabled, the 'wp_cfg_win' can be activated. Then the tunnel configuration can only be changed from the NETX side (INTLOGIC area) but not from configuration window 0 (in contrast to the 'wp_itbaddr'-bit which protects only offset 0x3C).
External to internal address mapping for DATunnel area can be calculated by following formula: INAAdr = (ITBAddr & 0xffffffc0) + ((EDAAdr + ITBAddr) & 0x3C)
With: |
| INAAdr: |
Internal netX Access Address |
| ITBAddr: |
Internal netX 32-bit Tunnel Target Base Address |
| EDAAdr: |
External DPM Access Address |
Condition for DATunnel access is: EDAAdr>>6 equals value of bit field 'base' from this register.
To map netX internal DWord N to invisible last external DWord (15), use mapping value map = (N - 15) & 0xf on bits 5 to 2. Internal to external address offset inside DATunnel area for internal DWord N can be calculated by following formula: External offset = (N*4 - map*4) & 0x3C = (N*4 - ITBAddr) & 0x3C
Example 1: Access to netX sys_time module by host via DATunnel on external DPM addresses are starting at 0x240. - Set bit field 'base' of this register to 9 (0x240>>6), set 'enable'-bit (and write protection depending on application). DATunnel now is enabled on external DPM addresses 0x240 to 0x27f. - ITBAddr of netX4000 sys_time module is 0xf409c180. For direct DATunnel to this address, host must write 0xf409c180 to external DPM address 0x27c. This can be done e.g. by four byte accesses to 0x27c, 0x27d, 0x27e and 0x27f or by two 16-bit accesses to 0x27c and 0x27e. Now sys_time module registers 0 to 14 can be accessed on external DPM address 0x240 to 0x27b.
Example 2: Register 15 of sys_time is hidden by ITBAddr configuration on 0x27c in example 1 but must also be accessed. However, sys_time Register 6 is never kind of interest. - Configure this register like described in example 1. - To map Register 6 (Module offset 6*4) to external offset 0x3C (hidden data on DWord 15), the following rule must be complied: 0x3C + map*4 = 6*4. That leads to a mapping value of: map*4 = (6*4 - 0x3C) & 0x3C = 1C Hence, write 0x101c101C to DATunnel DWord 15 (external DPM address 0x27c) to map sys_time Register 6 to hidden DWord 15. INAAdr now will be derived from EDAAdr before tunneling as follows: INAAdr = 0xf409c180 + ((EDAAdr + 0x1C) & 0x3C) External offset of Module DWord N results from: External offset = (N*4 - 0x1C) & 0x3C Register 15 of sys_time unit now can be accessed by external DPM address 0x240+((0xf*4-0x1C) & 0x3C) = 0x260 (i.e. Tunnel DWord 8). Register 0 of sys_time unit now can be accessed by external DPM address 0x240+((0x0*4-0x1C) & 0x3C) = 0x264 (i.e. Tunnel DWord 9). Register 1 of sys_time unit now can be accessed by external DPM address 0x240+((0x1*4-0x1C) & 0x3C) = 0x268 (i.e. Tunnel DWord 10). and so on. Register 6 of sys_time unit can not be accessed as it is hidden by ITBAddr configuration on 0x27c (i.e. Tunnel DWord 15). Register 7 of sys_time unit now can be accessed by external DPM address 0x240+((0x7*4-0x1C) & 0x3C) = 0x240 (i.e. Tunnel DWord 0).
Note: The IDPM tunnel is capable to target the INTRAMHS-memory associated to the IDPM and additionally the INTLOGIC_SYS area (addresses 0xf4080000 to 0xf80fffff, e.g. for SYSTIME). Other address areas can not be reached even when ITBAddr is configured for it. Write access to non-reachable addresses will be ignored, read access will deliver invalid data.
Attention: The IDPM tunnel could bypass the AHB firewalls. Example: The INTLOGIC_SYS firewall is configured to deny CA9 accesses while the CA9 is permitted for the INTRAMHS0 firewall. However, when the tunnel is programmed to target the INTLOGIC_SYS area the CA9 can reach it as the initial access (before tunnel remapping) is handled by the INTRAMHS0 firewall and not by the INTLOGIC_SYS firewall. To avoid abuse the 'tunnel_all' or the 'wp_itbaddr' bit and the 'wp_cfg_win' must be enabled. Then the tunnel e.g. can be used to access the SYSTIME registers but it cannot be reconfigured by the CA9 for abuse to other addresses.
Note: Configuration Window 0 access detection has higher priority than normal DPM Window detection but lower priority than Access Tunnel access detection. |
|
R/W
|
0x00000101
|
Address : 0xff001b38
|
Bits |
Reset value |
Name |
Description |
| 31 |
"0"
|
wp_cfg_win
|
| Write-protect tunnel configuration inside the configuration window 0. |
| 0: |
The two tunnel configuration registers ('idpm_tunnel_cfg' and 'idpm_itbaddr') can be programmed via configuration window 0 and the INTLOGIC_SYS-IDPM address area. |
1: |
The tunnel configuration registers ('idpm_tunnel_cfg' and 'idpm_itbaddr') cannot be programmed by the host via configuration window 0 (they are read-only for the host there). They can only be programmed via the INTLOGIC_SYS-IDPM address area. |
Note: Set this bit to protect the NETX from reconfiguring the tunnel by the host when configuration window 0 is activated for the host (e.g. for IRQ handling). |
|
| 30 - 15 |
0
|
-
|
reserved |
| 14 - 6 |
0x4
|
base
|
DPM Access Tunnel (DATunnel) Base Address divided by 64 on external visible address space. Note: Default setting for tunnel base is starting on external address 0x100. |
|
| 5 - 4 |
0
|
-
|
reserved |
| 3 |
"0"
|
tunnel_all
|
| Enable/disable the ITBAddr configuration register at tunnel offset 0x3C. |
| 0: |
Only 15 DWords are tunneled to the internal tunnel target. The idpm_itbaddr is available at offset 0x3C. One DWord of the tunnel target area is hidden by idpm_itbaddr. |
| 1: |
All 16 DWords are tunneled to the internal tunnel target. The idpm_itbaddr is not available at offset 0x3C. All 64 tunnel target bytes can be reached (no hidden register). |
Note: Target mapping (base and map) will not be affected by this bit. Using a 'map' value not equal 0 will always rotate the tunnel target addresses. |
|
| 2 |
"0"
|
enable
|
| Enable/disable Access Tunnel function. |
|
| 1 |
"0"
|
wp_itbaddr
|
| ITBAddr is write-protected from host. |
| 0: |
The ITBAddr is mirrored to offset 0x3C of the tunnel and can also be programmed there. |
| 1: |
ITBAddr (Internal netX 32 bit Tunnel Target Base Address) is read-only for tunnel offset 0x3C. It can only be changed via configuration window 0 idpm_itbaddr address or the INTLOGIC IDPM area. |
|
| 0 |
"1"
|
wp_data
|
| Access Tunnel function is write-protected for data access (DWords 0 to 14 (15 for 'tunnel_all') of DATunnel). |
| 0: |
Write access is forwarded through the tunnel. |
| 1: |
Write access to DWords 0 to 14 (15 for 'tunnel_all') of DATunnel will be ignored. |
| Data write protection for host is enabled by default and can be disabled by clearing this bit. |
|
idpm_firmware_irq_raw (DPM_HOST_INT_STAT0) |
1st netx50 compatible DPM Interrupt Status Register (related to 'dpm_firmware_irq_mask'-register). Writing a '1' to an IRQ flag will clear the Interrupt. This is always done even if related bit inside 'dpm_firmware_irq_mask'-register is not set (this is compatible to netx50).
Important: There are two completely independent sets of IRQ registers: |
| IRQ register-set 1: |
'dpm_irq_raw' (and related registers e.g. 'dpm_irq_irq_*' registers). |
| IRQ register-set 2: |
'dpm_firmware_irq_* registers' (netx50 compatible register set: DPM_HOST_INT_EN0,2 DPM_HOST_INT_STA0,2). |
Programming (masking or clearing IRQs) of one register-set has no impact to the other register-set even if some IRQs can be found in both sets (e.g. com0).
Note: This register is compatible to netx50 DPM_HOST_INT_STAT0 register, however some unused IRQs have been removed.
Note: For netX4000 there are 2 IDPM and 2 HANDSHAKE_CTRL units. IDPM0 is always associated with HANDSHAKE_CTRL0 while IDPM1 is always associated with HANDSHAKE_CTRL1.
Note: The 2nd firmware IRQ register set (dpm_firmware_irq_mask2, DPM_HOST_INT_EN2, dpm_firmware_irq_raw2, DPM_HOST_INT_STAT2) are obsolete since netx4000. Some functions moved to the main DPM IRQ register set (view dpm_irq_raw). |
|
R/W
|
0x00000000
|
Address : 0xff001be0
|
Bits |
Reset value |
Name |
Description |
| 31 |
"0"
|
INT_REQ
|
| Interrupt Request for IRQs handled in this register. |
| 0: |
No Interrupts to host requested by IRQ sources handled in this register. |
| 1: |
IRQ sources handled in this register request a host IRQ. |
Note: This bit is masked by INT_EN-bit in dpm_firmware_irq_mask register. For propagation of INT_REQ to host, ARM or xPIC, INT_EN-bit must be set and firmware IRQ must be activated in related dpm_irq_* register. |
|
| 30 |
-
|
res_MEM_LCK_ro
|
| reserved for Memory Lock IRQ flag (not available in this netX version). |
|
| 29 |
-
|
res_WDG_NETX_ro
|
| reserved for netX supervision Watchdog Timeout IRQ flag (not available in this netX version). |
|
| 28 |
-
|
res_RDY_TIMEOUT_ro
|
| reserved, DPM_RDY timeout error does not exist for IDPM. |
|
| 27 |
0
|
-
|
reserved |
| 26 |
"0"
|
SYS_STA
|
| System Status Change IRQ flag. |
|
| 25 |
-
|
res_TMR_ro
|
| reserved for Timer IRQ flag (not available in this netX version). |
|
| 24 |
0
|
-
|
reserved |
| 23 - 16 |
"00000000"
|
IRQ_VECTOR
|
| Interrupt Vector according to status flags generated by enabled IRQ sources. |
| Code |
IRQ status |
| 0x00 |
No IRQ. |
| ---- |
------- |
| 0x10 |
Handshake Cell 0 IRQ. |
| 0x11 |
Handshake Cell 1 IRQ. |
| 0x12 |
Handshake Cell 2 IRQ. |
| 0x13 |
Handshake Cell 3 IRQ. |
| 0x14 |
Handshake Cell 4 IRQ. |
| 0x15 |
Handshake Cell 5 IRQ. |
| 0x16 |
Handshake Cell 6 IRQ. |
| 0x17 |
Handshake Cell 7 IRQ. |
| 0x18 |
Handshake Cell 8 IRQ. |
| 0x19 |
Handshake Cell 9 IRQ. |
| 0x1a |
Handshake Cell 10 IRQ. |
| 0x1b |
Handshake Cell 11 IRQ. |
| 0x1c |
Handshake Cell 12 IRQ. |
| 0x1d |
Handshake Cell 13 IRQ. |
| 0x1e |
Handshake Cell 14 IRQ. |
| 0x1f |
Handshake Cell 15 IRQ. |
| ---- |
------- |
| 0x70 |
SYS_STA IRQ |
| Other |
values are reserved. |
Note: The current IRQ state in VECTOR depends only on the single IRQ enable bits. It does not depend on global IRQ enable INT_EN. VECTOR shows always the highest priority enabled flagged IRQ even is INT_EN is '0'. |
|
| 15 |
"0"
|
HS_EVENT15
|
| Handshake Event 15 IRQ status flag. |
|
| 14 |
"0"
|
HS_EVENT14
|
| Handshake Event 14 IRQ status flag. |
|
| 13 |
"0"
|
HS_EVENT13
|
| Handshake Event 13 IRQ status flag. |
|
| 12 |
"0"
|
HS_EVENT12
|
| Handshake Event 12 IRQ status flag. |
|
| 11 |
"0"
|
HS_EVENT11
|
| Handshake Event 11 IRQ status flag. |
|
| 10 |
"0"
|
HS_EVENT10
|
| Handshake Event 10 IRQ status flag. |
|
| 9 |
"0"
|
HS_EVENT9
|
| Handshake Event 9 IRQ status flag. |
|
| 8 |
"0"
|
HS_EVENT8
|
| Handshake Event 8 IRQ status flag. |
|
| 7 |
"0"
|
HS_EVENT7
|
| Handshake Event 7 IRQ status flag. |
|
| 6 |
"0"
|
HS_EVENT6
|
| Handshake Event 6 IRQ status flag. |
|
| 5 |
"0"
|
HS_EVENT5
|
| Handshake Event 5 IRQ status flag. |
|
| 4 |
"0"
|
HS_EVENT4
|
| Handshake Event 4 IRQ status flag. |
|
| 3 |
"0"
|
HS_EVENT3
|
| Handshake Event 3 IRQ status flag. |
|
| 2 |
"0"
|
HS_EVENT2
|
| Handshake Event 2 IRQ status flag. |
|
| 1 |
"0"
|
HS_EVENT1
|
| Handshake Event 1 IRQ status flag. |
|
| 0 |
"0"
|
HS_EVENT0
|
| Handshake Event 0 IRQ status flag. |
|
idpm_firmware_irq_mask (DPM_HOST_INT_EN0) |
DPM Handshake Interrupt Enable Register. Only netx50 compatible 'dpm_firmware_irq' registers are related to settings of this register.
Note: This register is compatible to netx50 DPM_HOST_INT_EN0 register, however some unused IRQs have been removed.
Note: HS_EVENT-bits are not read-only. This is netX50 compliant. Recent netX50 Documentation marks HS_EVENT-bits as read-only. This is an dokumentation error. For netX50 compatibility, these bits can also be controlled from netX-side in HANDSHAKE_CTRL address area.
Note: The 2nd firmware IRQ register set (dpm_firmware_irq_mask2, DPM_HOST_INT_EN2, dpm_firmware_irq_raw2, DPM_HOST_INT_STAT2) are obsolete since netx4000. Some functions moved to the main DPM IRQ register set (view dpm_irq_raw). |
|
R/W
|
0x00000000
|
Address : 0xff001bf0
|
Bits |
Reset value |
Name |
Description |
| 31 |
"0"
|
INT_EN
|
Interrupt Enable for IRQs handled in this register. Only if this bit is set, global firmware IRQ will be asserted to host CPU, ARM or xPIC by dpm_irq_* registers. |
| 0: |
No Interrupts to host, ARM or xPIC are generated by IRQ sources handled in this register. |
| 1: |
Enabled IRQ sources handled in this register generate a host, ARM or xPIC IRQ if asserted. |
| Note: Enable bits for single IRQ events are not affected if this bit is set or reset. |
|
| 30 |
-
|
res_MEM_LCK_ro
|
| reserved for Memory Lock IRQ (not available in this netX version). |
|
| 29 |
-
|
res_WDG_NETX_ro
|
| reserved for netX supervision Watchdog Timeout IRQ (not available in this netX version). |
|
| 28 |
-
|
res_RDY_TIMEOUT_ro
|
| reserved, DPM_RDY timeout error does not exist for IDPM. |
|
| 27 |
0
|
-
|
reserved |
| 26 |
"0"
|
SYS_STA
|
| System Status Change IRQ Enable. |
|
| 25 |
-
|
res_TMR_ro
|
| reserved for Timer IRQ (not available in this netX version). |
|
| 24 - 16 |
0
|
-
|
reserved |
| 15 |
"0"
|
HS_EVENT15
|
| Handshake Event 15 IRQ Enable (also netX-controllable by HANDSHAKE_CTRL, netX50 comp.). |
|
| 14 |
"0"
|
HS_EVENT14
|
| Handshake Event 14 IRQ Enable (also netX-controllable by HANDSHAKE_CTRL, netX50 comp.). |
|
| 13 |
"0"
|
HS_EVENT13
|
| Handshake Event 13 IRQ Enable (also netX-controllable by HANDSHAKE_CTRL, netX50 comp.). |
|
| 12 |
"0"
|
HS_EVENT12
|
| Handshake Event 12 IRQ Enable (also netX-controllable by HANDSHAKE_CTRL, netX50 comp.). |
|
| 11 |
"0"
|
HS_EVENT11
|
| Handshake Event 11 IRQ Enable (also netX-controllable by HANDSHAKE_CTRL, netX50 comp.). |
|
| 10 |
"0"
|
HS_EVENT10
|
| Handshake Event 10 IRQ Enable (also netX-controllable by HANDSHAKE_CTRL, netX50 comp.). |
|
| 9 |
"0"
|
HS_EVENT9
|
| Handshake Event 9 IRQ Enable (also netX-controllable by HANDSHAKE_CTRL, netX50 comp.). |
|
| 8 |
"0"
|
HS_EVENT8
|
| Handshake Event 8 IRQ Enable (also netX-controllable by HANDSHAKE_CTRL, netX50 comp.). |
|
| 7 |
"0"
|
HS_EVENT7
|
| Handshake Event 7 IRQ Enable (also netX-controllable by HANDSHAKE_CTRL, netX50 comp.). |
|
| 6 |
"0"
|
HS_EVENT6
|
| Handshake Event 6 IRQ Enable (also netX-controllable by HANDSHAKE_CTRL, netX50 comp.). |
|
| 5 |
"0"
|
HS_EVENT5
|
| Handshake Event 5 IRQ Enable (also netX-controllable by HANDSHAKE_CTRL, netX50 comp.). |
|
| 4 |
"0"
|
HS_EVENT4
|
| Handshake Event 4 IRQ Enable (also netX-controllable by HANDSHAKE_CTRL, netX50 comp.). |
|
| 3 |
"0"
|
HS_EVENT3
|
| Handshake Event 3 IRQ Enable (also netX-controllable by HANDSHAKE_CTRL, netX50 comp.). |
|
| 2 |
"0"
|
HS_EVENT2
|
| Handshake Event 2 IRQ Enable (also netX-controllable by HANDSHAKE_CTRL, netX50 comp.). |
|
| 1 |
"0"
|
HS_EVENT1
|
| Handshake Event 1 IRQ Enable (also netX-controllable by HANDSHAKE_CTRL, netX50 comp.). |
|
| 0 |
"0"
|
HS_EVENT0
|
| Handshake Event 0 IRQ Enable (also netX-controllable by HANDSHAKE_CTRL, netX50 comp.). |
|
| aes_cfg |
|
R/W
|
0x00148200
|
Address : 0xff080300
|
Bits |
Reset value |
Name |
Description |
| 31 - 21 |
0
|
-
|
reserved |
| 20 |
"1"
|
out_fifo_dma_burst_only
|
Generate DMAC burst signal only (output FIFO). When set to '1' the DMAC logic will only generate burst requests to the DMAC. This is not strictly needed for the DMAC implementation, but could result in better system performance. |
|
| 19 |
"0"
|
out_fifo_dma_en
|
| Enable DMAC control signals for the output FIFO. |
|
| 18 |
"1"
|
in_fifo_dma_burst_only
|
Generate DMAC burst signal only (input FIFO). When set to '1' the DMAC logic will only generate burst requests to the DMAC. This is to overcome limitations of the current DMA controller implementation that only accepts burst requests for DMAC controlled memory to peripheral transfers. |
|
| 17 |
"0"
|
in_fifo_dma_en
|
| Enable DMAC control signals for the input FIFO |
|
| 16 - 11 |
"010000"
|
out_fifo_wm
|
| Output FIFO watermark level (0..63) used for out_fifo_wm interrupt |
|
| 10 - 5 |
"010000"
|
in_fifo_wm
|
| Input FIFO watermark level (0..63) used for in_fifo_wm interrupt |
|
| 4 |
"0"
|
key_exp_start
|
Start AES key expansion After writing '1', this bit will automatically be reset. Data input can be started when key expansion is ready (see crypt_aes_stat bit 'key_exp_ready'). |
|
| 3 - 2 |
"00"
|
key_len
|
| 0: |
128 bit |
| 1: |
192 bit |
| 2: |
256 bit |
| 3: |
reserved |
|
| 1 |
"0"
|
mode
|
|
| 0 |
"0"
|
enable
|
| Enables the AES core operation. |
|
| aes_stat |
|
R
|
Address : 0xff080304
|
Bits |
Name |
Description |
| 31 - 28 |
-
|
reserved |
| 27 |
out_fifo_overflow
|
Output FIFO was overflown, set aes_cfg-enable=0 to reset this bit Note: overflow is only a theoretical FIFO status, because the hardware logic of the AES core won't put data into the FIFO when it's full. |
|
| 26 |
out_fifo_underrun
|
| Output FIFO was underrun, set aes_cfg-enable=0 to reset this bit |
|
| 25 |
out_fifo_not_full
|
|
| 24 |
out_fifo_full
|
|
| 23 |
out_fifo_not_empty
|
|
| 22 |
out_fifo_empty
|
|
| 21 - 15 |
out_fifo_fill
|
| Fill level of output FIFO in bytes (0..64) |
|
| 14 |
in_fifo_overflow
|
| Input FIFO was overflown, set aes_cfg-enable=0 to reset this bit |
|
| 13 |
in_fifo_underrun
|
Input FIFO was underrun, set aes_cfg-enable=0 to reset this bit Note: underrun is only a theoretical FIFO status, because the hardware logic of the AES core won't fetch data from the FIFO when it's empty. |
|
| 12 |
in_fifo_not_full
|
|
| 11 |
in_fifo_full
|
|
| 10 |
in_fifo_not_empty
|
|
| 9 |
in_fifo_empty
|
|
| 8 - 2 |
in_fifo_fill
|
| Fill level of input FIFO in bytes (0..64) |
|
| 1 |
op_ready
|
Set when AES operation ready, i.e. AES core not busy and input FIFO is empty |
|
| 0 |
key_exp_ready
|
| Set when key expansion procedure is done |
|
| aes_irq_raw |
AES raw IRQ: Read access shows status of unmasked IRQs. IRQs are set automatically and reset by writing to this register: Write access with '1' resets the appropriate IRQ. Write access with '0' does not influence this bit. |
|
R/W
|
0x00000000
|
Address : 0xff080308
|
Bits |
Reset value |
Name |
Description |
| 31 - 16 |
0
|
-
|
reserved |
| 15 |
"0"
|
out_fifo_overflow
|
Output FIFO was overflown, set aes_cfg-enable=0 to reset this bit Note: overflow is only a theoretical FIFO status, because the hardware logic of the AES core won't put data into the FIFO when it's full. |
|
| 14 |
"0"
|
out_fifo_underrun
|
| Output FIFO was underrun, set aes_cfg-enable=0 to reset this bit |
|
| 13 |
"0"
|
out_fifo_not_full
|
|
| 12 |
"0"
|
out_fifo_full
|
|
| 11 |
"0"
|
out_fifo_not_empty
|
|
| 10 |
"0"
|
out_fifo_empty
|
|
| 9 |
"0"
|
out_fifo_wm
|
| Fill level of output FIFO is above watermark (see crypt_aes_cfg bits 'out_fifo_wm') |
|
| 8 |
"0"
|
in_fifo_overflow
|
| Input FIFO was overflown, set aes_cfg-enable=0 to reset this bit |
|
| 7 |
"0"
|
in_fifo_underrun
|
Input FIFO was underrun, set aes_cfg-enable=0 to reset this bit Note: underrun is only a theoretical FIFO status, because the hardware logic of the AES core won't fetch data from the FIFO when it's empty. |
|
| 6 |
"0"
|
in_fifo_not_full
|
|
| 5 |
"0"
|
in_fifo_full
|
|
| 4 |
"0"
|
in_fifo_not_empty
|
|
| 3 |
"0"
|
in_fifo_empty
|
|
| 2 |
"0"
|
in_fifo_wm
|
| Fill level of input FIFO is below or equal watermark (see crypt_aes_cfg bits 'in_fifo_wm') |
|
| 1 |
"0"
|
op_ready
|
Set when AES operation ready, i.e. AES core not busy and input FIFO is empty |
|
| 0 |
"0"
|
key_exp_ready
|
| Set when key expansion procedure is done |
|
| aes_irq_masked |
AES masked IRQ: Shows status of masked IRQs. |
|
R
|
Address : 0xff08030c
|
Bits |
Name |
Description |
| 31 - 16 |
-
|
reserved |
| 15 |
out_fifo_overflow
|
| Output FIFO was overflown, set aes_cfg-enable=0 to reset this bit |
|
| 14 |
out_fifo_underrun
|
| Output FIFO was underrun, set aes_cfg-enable=0 to reset this bit |
|
| 13 |
out_fifo_not_full
|
|
| 12 |
out_fifo_full
|
|
| 11 |
out_fifo_not_empty
|
|
| 10 |
out_fifo_empty
|
|
| 9 |
out_fifo_wm
|
| Fill level of output FIFO is above watermark (see crypt_aes_cfg bits 'out_fifo_wm') |
|
| 8 |
in_fifo_overflow
|
| Input FIFO was overflown, set aes_cfg-enable=0 to reset this bit |
|
| 7 |
in_fifo_underrun
|
| Input FIFO was underrun, set aes_cfg-enable=0 to reset this bit |
|
| 6 |
in_fifo_not_full
|
|
| 5 |
in_fifo_full
|
|
| 4 |
in_fifo_not_empty
|
|
| 3 |
in_fifo_empty
|
|
| 2 |
in_fifo_wm
|
| Fill level of input FIFO is below or equal watermark (see crypt_aes_cfg bits 'in_fifo_wm') |
|
| 1 |
op_ready
|
Set when AES operation ready, i.e. AES core not busy and input FIFO is empty |
|
| 0 |
key_exp_ready
|
| Set when key expansion procedure is done |
|
| aes_irq_msk_set |
AES IRQ mask set: The IRQ mask enables interrupt requests for corresponding interrupt sources. As its bits might be changed by different software tasks, the IRQ mask register is not writable directly, but by set and reset masks: Write access with '1' sets interrupt mask bit. Write access with '0' does not influence this bit. Read access shows actual interrupt mask. Attention: Before activating interrupt mask, delete old pending interrupts by writing the same value to crypt_aes_irq_raw. |
|
R/W
|
0x00000000
|
Address : 0xff080310
|
Bits |
Reset value |
Name |
Description |
| 31 - 16 |
0
|
-
|
reserved |
| 15 |
"0"
|
out_fifo_overflow
|
| Output FIFO was overflown, set aes_cfg-enable=0 to reset this bit |
|
| 14 |
"0"
|
out_fifo_underrun
|
| Output FIFO was underrun, set aes_cfg-enable=0 to reset this bit |
|
| 13 |
"0"
|
out_fifo_not_full
|
|
| 12 |
"0"
|
out_fifo_full
|
|
| 11 |
"0"
|
out_fifo_not_empty
|
|
| 10 |
"0"
|
out_fifo_empty
|
|
| 9 |
"0"
|
out_fifo_wm
|
| Fill level of output FIFO is above watermark (see crypt_aes_cfg bits 'out_fifo_wm') |
|
| 8 |
"0"
|
in_fifo_overflow
|
| Input FIFO was overflown, set aes_cfg-enable=0 to reset this bit |
|
| 7 |
"0"
|
in_fifo_underrun
|
| Input FIFO was underrun, set aes_cfg-enable=0 to reset this bit |
|
| 6 |
"0"
|
in_fifo_not_full
|
|
| 5 |
"0"
|
in_fifo_full
|
|
| 4 |
"0"
|
in_fifo_not_empty
|
|
| 3 |
"0"
|
in_fifo_empty
|
|
| 2 |
"0"
|
in_fifo_wm
|
| Fill level of input FIFO is below or equal watermark (see crypt_aes_cfg bits 'in_fifo_wm') |
|
| 1 |
"0"
|
op_ready
|
Set when AES operation ready, i.e. AES core not busy and input FIFO is empty |
|
| 0 |
"0"
|
key_exp_ready
|
| Set when key expansion procedure is done |
|
| aes_irq_msk_reset |
AES IRQ mask reset: This is the corresponding reset mask to disable interrupt requests for corresponding interrupt sources: Write access with '1' resets interrupt mask bit. Write access with '0' does not influence this bit. Read access shows actual interrupt mask. |
|
R/W
|
0x00000000
|
Address : 0xff080314
|
Bits |
Reset value |
Name |
Description |
| 31 - 16 |
0
|
-
|
reserved |
| 15 |
"0"
|
out_fifo_overflow
|
| Output FIFO was overflown, set aes_cfg-enable=0 to reset this bit |
|
| 14 |
"0"
|
out_fifo_underrun
|
| Output FIFO was underrun, set aes_cfg-enable=0 to reset this bit |
|
| 13 |
"0"
|
out_fifo_not_full
|
|
| 12 |
"0"
|
out_fifo_full
|
|
| 11 |
"0"
|
out_fifo_not_empty
|
|
| 10 |
"0"
|
out_fifo_empty
|
|
| 9 |
"0"
|
out_fifo_wm
|
| Fill level of output FIFO is above watermark (see crypt_aes_cfg bits 'out_fifo_wm') |
|
| 8 |
"0"
|
in_fifo_overflow
|
| Input FIFO was overflown, set aes_cfg-enable=0 to reset this bit |
|
| 7 |
"0"
|
in_fifo_underrun
|
| Input FIFO was underrun, set aes_cfg-enable=0 to reset this bit |
|
| 6 |
"0"
|
in_fifo_not_full
|
|
| 5 |
"0"
|
in_fifo_full
|
|
| 4 |
"0"
|
in_fifo_not_empty
|
|
| 3 |
"0"
|
in_fifo_empty
|
|
| 2 |
"0"
|
in_fifo_wm
|
| Fill level of input FIFO is below or equal watermark (see crypt_aes_cfg bits 'in_fifo_wm') |
|
| 1 |
"0"
|
op_ready
|
Set when AES operation ready, i.e. AES core not busy and input FIFO is empty |
|
| 0 |
"0"
|
key_exp_ready
|
| Set when key expansion procedure is done |
|
| mtgy_cmd |
|
R/W
|
0x00000094
|
Address : 0xff082000
|
Bits |
Reset value |
Name |
Description |
| 31 - 27 |
"00000"
|
src_addr_x
|
Source address X specification. The source address X specification will be interpreted as vertical RAM location source address offset of auxiliary operand E. |
|
| 26 - 22 |
"00000"
|
src_addr_e
|
Source Address E specification. The source address E specification will be interpreted as vertical RAM location source address offset of exponent E. |
|
| 21 - 17 |
"00000"
|
dest_addr
|
Destination Address / Source Address A specification. Depending on the operation the destination address specification will be interpreted as horizontal or vertical RAM location offset or as vertical RAM location source address offset of operand A. |
|
| 16 - 12 |
"00000"
|
src_addr
|
Source Address specification. Depending on the operation the source address specification will be interpreted as horizontal or vertical RAM location offset. |
|
| 11 - 8 |
"0000"
|
op
|
The operation code of the core. Following operations codes are supported: |
| 0: |
MontMult (Montgomery Multiplication Step) |
| 1: |
MontR (Montgomery Parameter R) |
| 2: |
MontR2 (Montgomery Parameter R2 ) |
| 3: |
MontExp (Montgomery Exponentiation Step) |
| 4: |
ModAdd (Modular Addition) |
| 5: |
ModSub (Modular Subtraction) |
| 6: |
CopyH2V (Copy from horizontal to vertical RAM location) |
| 7: |
CopyV2V (Copy from vertical to vertical RAM location) |
| 8: |
CopyH2H (Copy from horizontal to horizontal RAM location) |
| 9: |
CopyV2H (Copy from vertical to horizontal RAM location) |
| 10: MontMult1 (Montgomery Multiplication Step with '1' as A Operand) |
|
| 7 - 4 |
"1001"
|
precision
|
| Precision of executed operations. |
| 0: |
192 bit |
| 1: |
224 bit |
| 2: |
256 bit |
| 3: |
320 bit |
| 4: |
384 bit |
| 5: |
512 bit |
| 6: |
768 bit |
| 7: |
1024 bit |
| 8: |
1536 bit |
| 9: |
2048 bit |
| 10: |
3072 bit |
| 11: |
4096 bit |
|
| 3 |
0
|
-
|
reserved |
| 2 |
"1"
|
f_sel
|
Finite Field Selection signal. Defines if the calculations will be performed in |
|
| 1 |
"0"
|
abort
|
Abort Signal of the MWMM Core. A running calculation can be aborted by issuing this signal. After writing '1', this bit will automatically be reset. |
|
| 0 |
"0"
|
start
|
Start Signal of the MWMM Core. Setting this signal will instruct the Core to start the operation given by 'op' with precision specified by 'precision'. Depending on the operation the core will use the RAM location specified by 'src_addr', 'dest_addr', 'src_addr_e' and 'src_addr_x'. Calculations will be performed in the underlying finite field specified by 'f_sel'. After writing '1', this bit will automatically be reset. |
|
| nfifo_irq_raw |
Raw IRQ: Read access shows status of unmasked IRQs. IRQs are set automatically and reset by writing to this register: Write access with '1' resets the appropriate IRQ. Write access with '0' does not influence this bit. |
|
R/W
|
0x00000000
|
Address : 0xff40000c
|
Bits |
Reset value |
Name |
Description |
| 31 - 14 |
0
|
-
|
reserved |
| 13 |
"0"
|
observe9
|
| access to FIFO as defined in observe9 |
|
| 12 |
"0"
|
observe8
|
| access to FIFO as defined in observe8 |
|
| 11 |
"0"
|
observe7
|
| access to FIFO as defined in observe7 |
|
| 10 |
"0"
|
observe6
|
| access to FIFO as defined in observe6 |
|
| 9 |
"0"
|
observe5
|
| access to FIFO as defined in observe5 |
|
| 8 |
"0"
|
observe4
|
| access to FIFO as defined in observe4 |
|
| 7 |
"0"
|
observe3
|
| access to FIFO as defined in observe3 |
|
| 6 |
"0"
|
observe2
|
| access to FIFO as defined in observe2 |
|
| 5 |
"0"
|
observe1
|
| access to FIFO as defined in observe1 |
|
| 4 |
"0"
|
observe0
|
| access to FIFO as defined in observe0 |
|
| 3 |
"0"
|
fifo_active
|
| any access to fifo_nr/fifo_wr is active (to unlock the scheduler after locking_req) |
|
| 2 |
"0"
|
write
|
| any write access happened to any FIFO |
|
| 1 |
"0"
|
read
|
| any read access happened to any FIFO |
|
| 0 |
"0"
|
ahbl_error
|
| AHBL returned HRESP=1 (abort) |
|
| nfifo_irq_arm_app_masked |
Masked IRQ of ARM_APP: Shows status of masked IRQs as connected to application ARM Cortex M4. |
|
R
|
Address : 0xff400010
|
Bits |
Name |
Description |
| 31 - 14 |
-
|
reserved |
| 13 |
observe9
|
| access to FIFO as defined in observe9 |
|
| 12 |
observe8
|
| access to FIFO as defined in observe8 |
|
| 11 |
observe7
|
| access to FIFO as defined in observe7 |
|
| 10 |
observe6
|
| access to FIFO as defined in observe6 |
|
| 9 |
observe5
|
| access to FIFO as defined in observe5 |
|
| 8 |
observe4
|
| access to FIFO as defined in observe4 |
|
| 7 |
observe3
|
| access to FIFO as defined in observe3 |
|
| 6 |
observe2
|
| access to FIFO as defined in observe2 |
|
| 5 |
observe1
|
| access to FIFO as defined in observe1 |
|
| 4 |
observe0
|
| access to FIFO as defined in observe0 |
|
| 3 |
fifo_active
|
| any access to fifo_nr/fifo_wr is active (to unlock the scheduler after locking_req) |
|
| 2 |
write
|
| any write access happened to any FIFO |
|
| 1 |
read
|
| any read access happened to any FIFO |
|
| 0 |
ahbl_error
|
| AHBL returned HRESP=1 (abort) |
|
| nfifo_irq_arm_app_msk_set |
ARM_APP Cortex M4 IRQ mask set: The IRQ mask enables interrupt requests for corresponding interrupt sources to the ARM_APP processor. As its bits might be changed by different software tasks, the IRQ mask register is not writable directly, but by set and reset masks: Write access with '1' sets interrupt mask bit. Write access with '0' does not influence this bit. Read access shows actual interrupt mask. Attention: Before activating interrupt mask, delete old pending interrupts by writing the same value to adr_nfifo_irq_raw. |
|
R/W
|
0x00000000
|
Address : 0xff400014
|
Bits |
Reset value |
Name |
Description |
| 31 - 14 |
0
|
-
|
reserved |
| 13 |
"0"
|
observe9
|
| access to FIFO as defined in observe9 |
|
| 12 |
"0"
|
observe8
|
| access to FIFO as defined in observe8 |
|
| 11 |
"0"
|
observe7
|
| access to FIFO as defined in observe7 |
|
| 10 |
"0"
|
observe6
|
| access to FIFO as defined in observe6 |
|
| 9 |
"0"
|
observe5
|
| access to FIFO as defined in observe5 |
|
| 8 |
"0"
|
observe4
|
| access to FIFO as defined in observe4 |
|
| 7 |
"0"
|
observe3
|
| access to FIFO as defined in observe3 |
|
| 6 |
"0"
|
observe2
|
| access to FIFO as defined in observe2 |
|
| 5 |
"0"
|
observe1
|
| access to FIFO as defined in observe1 |
|
| 4 |
"0"
|
observe0
|
| access to FIFO as defined in observe0 |
|
| 3 |
"0"
|
fifo_active
|
| any access to fifo_nr/fifo_wr is active (to unlock the scheduler after locking_req) |
|
| 2 |
"0"
|
write
|
| any write access happened to any FIFO |
|
| 1 |
"0"
|
read
|
| any read access happened to any FIFO |
|
| 0 |
"0"
|
ahbl_error
|
| AHBL returned HRESP=1 (abort) |
|
| nfifo_irq_arm_app_msk_reset |
ARM_APP Cortex M4 IRQ mask reset: This is the corresponding reset mask to disable interrupt requests for corresponding interrupt sources: Write access with '1' resets interrupt mask bit. Write access with '0' does not influence this bit. Read access shows actual interrupt mask. |
|
R/W
|
0x00000000
|
Address : 0xff400018
|
Bits |
Reset value |
Name |
Description |
| 31 - 14 |
0
|
-
|
reserved |
| 13 |
"0"
|
observe9
|
| access to FIFO as defined in observe9 |
|
| 12 |
"0"
|
observe8
|
| access to FIFO as defined in observe8 |
|
| 11 |
"0"
|
observe7
|
| access to FIFO as defined in observe7 |
|
| 10 |
"0"
|
observe6
|
| access to FIFO as defined in observe6 |
|
| 9 |
"0"
|
observe5
|
| access to FIFO as defined in observe5 |
|
| 8 |
"0"
|
observe4
|
| access to FIFO as defined in observe4 |
|
| 7 |
"0"
|
observe3
|
| access to FIFO as defined in observe3 |
|
| 6 |
"0"
|
observe2
|
| access to FIFO as defined in observe2 |
|
| 5 |
"0"
|
observe1
|
| access to FIFO as defined in observe1 |
|
| 4 |
"0"
|
observe0
|
| access to FIFO as defined in observe0 |
|
| 3 |
"0"
|
fifo_active
|
| any access to fifo_nr/fifo_wr is active (to unlock the scheduler after locking_req) |
|
| 2 |
"0"
|
write
|
| any write access happened to any FIFO |
|
| 1 |
"0"
|
read
|
| any read access happened to any FIFO |
|
| 0 |
"0"
|
ahbl_error
|
| AHBL returned HRESP=1 (abort) |
|
| nfifo_irq_xpic_app_masked |
Masked IRQ of xPIC_APP: Shows status of masked IRQs as connected to xPIC_APP. |
|
R
|
Address : 0xff400028
|
Bits |
Name |
Description |
| 31 - 14 |
-
|
reserved |
| 13 |
observe9
|
| access to FIFO as defined in observe9 |
|
| 12 |
observe8
|
| access to FIFO as defined in observe8 |
|
| 11 |
observe7
|
| access to FIFO as defined in observe7 |
|
| 10 |
observe6
|
| access to FIFO as defined in observe6 |
|
| 9 |
observe5
|
| access to FIFO as defined in observe5 |
|
| 8 |
observe4
|
| access to FIFO as defined in observe4 |
|
| 7 |
observe3
|
| access to FIFO as defined in observe3 |
|
| 6 |
observe2
|
| access to FIFO as defined in observe2 |
|
| 5 |
observe1
|
| access to FIFO as defined in observe1 |
|
| 4 |
observe0
|
| access to FIFO as defined in observe0 |
|
| 3 |
fifo_active
|
| any access to fifo_nr/fifo_wr is active (to unlock the scheduler after locking_req) |
|
| 2 |
write
|
| any write access happened to any FIFO |
|
| 1 |
read
|
| any read access happened to any FIFO |
|
| 0 |
ahbl_error
|
| AHBL returned HRESP=1 (abort) |
|
| nfifo_irq_xpic_app_msk_set |
xPIC_APP IRQ mask set: The xPIC_APP IRQ mask enables interrupt requests for corresponding interrupt sources to the xPIC_APP processor. As its bits might be changed by different software tasks, the IRQ mask register is not writable directly, but by set and reset masks: Write access with '1' sets interrupt mask bit. Write access with '0' does not influence this bit. Read access shows actual interrupt mask. Attention: Before activating interrupt mask, delete old pending interrupts by writing the same value to adr_nfifo_irq_raw. |
|
R/W
|
0x00000000
|
Address : 0xff40002c
|
Bits |
Reset value |
Name |
Description |
| 31 - 14 |
0
|
-
|
reserved |
| 13 |
"0"
|
observe9
|
| access to FIFO as defined in observe9 |
|
| 12 |
"0"
|
observe8
|
| access to FIFO as defined in observe8 |
|
| 11 |
"0"
|
observe7
|
| access to FIFO as defined in observe7 |
|
| 10 |
"0"
|
observe6
|
| access to FIFO as defined in observe6 |
|
| 9 |
"0"
|
observe5
|
| access to FIFO as defined in observe5 |
|
| 8 |
"0"
|
observe4
|
| access to FIFO as defined in observe4 |
|
| 7 |
"0"
|
observe3
|
| access to FIFO as defined in observe3 |
|
| 6 |
"0"
|
observe2
|
| access to FIFO as defined in observe2 |
|
| 5 |
"0"
|
observe1
|
| access to FIFO as defined in observe1 |
|
| 4 |
"0"
|
observe0
|
| access to FIFO as defined in observe0 |
|
| 3 |
"0"
|
fifo_active
|
| any access to fifo_nr/fifo_wr is active (to unlock the scheduler after locking_req) |
|
| 2 |
"0"
|
write
|
| any write access happened to any FIFO |
|
| 1 |
"0"
|
read
|
| any read access happened to any FIFO |
|
| 0 |
"0"
|
ahbl_error
|
| AHBL returned HRESP=1 (abort) |
|
| nfifo_irq_xpic_app_msk_reset |
xPIC_APP IRQ mask reset: This is the corresponding reset mask to disable interrupt requests for corresponding interrupt sources: Write access with '1' resets interrupt mask bit. Write access with '0' does not influence this bit. Read access shows actual interrupt mask. |
|
R/W
|
0x00000000
|
Address : 0xff400030
|
Bits |
Reset value |
Name |
Description |
| 31 - 14 |
0
|
-
|
reserved |
| 13 |
"0"
|
observe9
|
| access to FIFO as defined in observe9 |
|
| 12 |
"0"
|
observe8
|
| access to FIFO as defined in observe8 |
|
| 11 |
"0"
|
observe7
|
| access to FIFO as defined in observe7 |
|
| 10 |
"0"
|
observe6
|
| access to FIFO as defined in observe6 |
|
| 9 |
"0"
|
observe5
|
| access to FIFO as defined in observe5 |
|
| 8 |
"0"
|
observe4
|
| access to FIFO as defined in observe4 |
|
| 7 |
"0"
|
observe3
|
| access to FIFO as defined in observe3 |
|
| 6 |
"0"
|
observe2
|
| access to FIFO as defined in observe2 |
|
| 5 |
"0"
|
observe1
|
| access to FIFO as defined in observe1 |
|
| 4 |
"0"
|
observe0
|
| access to FIFO as defined in observe0 |
|
| 3 |
"0"
|
fifo_active
|
| any access to fifo_nr/fifo_wr is active (to unlock the scheduler after locking_req) |
|
| 2 |
"0"
|
write
|
| any write access happened to any FIFO |
|
| 1 |
"0"
|
read
|
| any read access happened to any FIFO |
|
| 0 |
"0"
|
ahbl_error
|
| AHBL returned HRESP=1 (abort) |
|
| io_config2 |
IO Config2 Register: Selects of output pin multiplexing. See Excel pinning sheet for details. Changes will only have an effect if the corresponding bits in the io_config2_mask-register are set.
This register is a write mask register, i.e. lower 16 bits are only writeable, if corresponding upper bits are set. This register is protected by the netX access-key mechanism; changing this register is only possible by the following sequence: |
| 1.: |
read out access-key from asic_ctrl_access_key register |
| 2.: |
write back access-key to asic_ctrl_access_key register |
| 3.: |
write desired value to this register |
|
R/W
|
0x00000000
|
Address : 0xff401210
|
Bits |
Reset value |
Name |
Description |
| 31 |
"0"
|
dcdc_enable_n_wm
|
| Write mask of dcdc_enable_n |
|
| 30 |
"0"
|
clk25out_oe_wm
|
| Write mask of clk25out_oe |
|
| 29 |
"0"
|
sel_uart_rctsn_wm
|
| Write mask of sel_uart_rctsn |
|
| 28 |
"0"
|
sel_i2c1_com_wm
|
| Write mask of sel_i2c1_com |
|
| 27 |
"0"
|
sel_i2c0_com_wm
|
| Write mask of sel_i2c0_com |
|
| 26 |
"0"
|
sel_fo1_wm
|
|
| 25 |
"0"
|
sel_fo0_wm
|
|
| 24 |
"0"
|
sel_ephy_mdio_wm
|
| Write mask of sel_ephy_mdio |
|
| 23 |
"0"
|
sel_ephy1_wm
|
|
| 22 |
"0"
|
sel_ephy0_wm
|
|
| 21 |
"0"
|
sel_phy_devel_wm
|
| Write mask of sel_phy_devel |
|
| 20 |
"0"
|
sel_xc_trigger0_hif_sirq_wm
|
| Write mask of sel_xc_trigger0_hif_sirq |
|
| 19 |
"0"
|
sel_gpio11_wm
|
|
| 18 |
"0"
|
sel_gpio10_wm
|
|
| 17 |
"0"
|
sel_gpio9_wm
|
|
| 16 |
"0"
|
sel_gpio8_wm
|
|
| 15 |
"0"
|
dcdc_enable_n
|
| 0: |
enable DCDC converter |
| 1: |
disable DCDC converter (should be done, if external core supply is attached) |
|
| 14 |
"0"
|
clk25out_oe
|
| Output enable of CLK25OUT pad. When unset (i.e. '0'), pin will be high-z. |
|
| 13 |
"0"
|
sel_uart_rctsn
|
| select pads for uart RTS/CTS signals (s. pinning table) |
|
| 12 |
"0"
|
sel_i2c1_com
|
| select pads for i2c1_com (s. pinning table) |
|
| 11 |
"0"
|
sel_i2c0_com
|
| select pads for i2c0_com (s. pinning table) |
|
| 10 |
"0"
|
sel_fo1
|
| select Fiber Optics of PHY1 (s. pinning table) |
|
| 9 |
"0"
|
sel_fo0
|
| select Fiber Optics of PHY0 (s. pinning table) |
|
| 8 |
"0"
|
sel_ephy_mdio
|
| connect PHY MDIO to external pads (s. pinning table) |
|
| 7 |
"0"
|
sel_ephy1
|
| connect PHY1 MII to external MAC (s. pinning table) |
|
| 6 |
"0"
|
sel_ephy0
|
| connect PHY0 MII to external MAC (s. pinning table) |
|
| 5 |
"0"
|
sel_phy_devel
|
| select PHY development outputs (s. pinning table) |
|
| 4 |
"0"
|
sel_xc_trigger0_hif_sirq
|
| select xc_trigger0 on HIF_SIRQ (s. pinning table) |
|
| 3 |
"0"
|
sel_gpio11
|
| select pad for gpio11 (s. pinning table) |
|
| 2 |
"0"
|
sel_gpio10
|
| select pad for gpio10 (s. pinning table) |
|
| 1 |
"0"
|
sel_gpio9
|
| select pad for gpio9 (s. pinning table) |
|
| 0 |
"0"
|
sel_gpio8
|
| select pad for gpio8 (s. pinning table) |
|
| io_config2_mask |
IO Config2 Mask Register: This register can be used to lock the special IO configurations for restricted netX devices. Bits of the io_config2 register can only be modified if the corresponding mask bits in this register are set. This register is lockable by asic_ctrl_com.netx_lock-lock_register. |
|
R/W
|
0x0000ffff
|
Address : 0xff401214
|
Bits |
Reset value |
Name |
Description |
| 31 - 16 |
0
|
-
|
reserved |
| 15 |
"1"
|
dcdc_enable_n
|
|
| 14 |
"1"
|
clk25out_oe
|
| Output enable of CLK25OUT pad. When unset (i.e. '0'), pin will be high-z. |
|
| 13 |
"1"
|
sel_uart_rctsn
|
| select pads for uart RTS/CTS signals (s. pinning table) |
|
| 12 |
"1"
|
sel_i2c1_com
|
| select pads for i2c1_com (s. pinning table) |
|
| 11 |
"1"
|
sel_i2c0_com
|
| select pads for i2c0_com (s. pinning table) |
|
| 10 |
"1"
|
sel_fo1
|
| select Fiber Optics of PHY1 (s. pinning table) |
|
| 9 |
"1"
|
sel_fo0
|
| select Fiber Optics of PHY0 (s. pinning table) |
|
| 8 |
"1"
|
sel_ephy_mdio
|
| connect PHY MDIO to external pads (s. pinning table) |
|
| 7 |
"1"
|
sel_ephy1
|
| connect PHY1 MII to external MAC (s. pinning table) |
|
| 6 |
"1"
|
sel_ephy0
|
| connect PHY0 MII to external MAC (s. pinning table) |
|
| 5 |
"1"
|
sel_phy_devel
|
| select PHY development outputs (s. pinning table) |
|
| 4 |
"1"
|
sel_xc_trigger0_hif_sirq
|
| select xc_trigger0 on HIF_SIRQ (s. pinning table) |
|
| 3 |
"1"
|
sel_gpio11
|
| select pad for gpio11 (s. pinning table) |
|
| 2 |
"1"
|
sel_gpio10
|
| select pad for gpio10 (s. pinning table) |
|
| 1 |
"1"
|
sel_gpio9
|
| select pad for gpio9 (s. pinning table) |
|
| 0 |
"1"
|
sel_gpio8
|
| select pad for gpio8 (s. pinning table) |
|
| io_config3 |
IO Config3 Register: Selects of output pin multiplexing. See Excel pinning sheet for details. Changes will only have an effect if the corresponding bits in the io_config3_mask-register are set.
This register is a write mask register, i.e. lower 16 bits are only writeable, if corresponding upper bits are set. This register is protected by the netX access-key mechanism; changing this register is only possible by the following sequence: |
| 1.: |
read out access-key from asic_ctrl_access_key register |
| 2.: |
write back access-key to asic_ctrl_access_key register |
| 3.: |
write desired value to this register |
|
R/W
|
0x00000000
|
Address : 0xff401218
|
Bits |
Reset value |
Name |
Description |
| 31 |
"0"
|
sel_biss1_mo_wm
|
| Write mask of sel_biss1_mo |
|
| 30 |
"0"
|
sel_biss1_wm
|
|
| 29 |
"0"
|
sel_biss0_mo_wm
|
| Write mask of sel_biss0_mo |
|
| 28 |
"0"
|
sel_biss0_wm
|
|
| 27 |
"0"
|
sel_endat1_devel_wm
|
| Write mask of sel_endat1_devel |
|
| 26 |
"0"
|
sel_endat1_wm
|
|
| 25 |
"0"
|
sel_endat0_devel_wm
|
| Write mask of sel_endat0_devel |
|
| 24 |
"0"
|
sel_endat0_wm
|
|
| 23 |
"0"
|
sel_gpio7_wm
|
|
| 22 |
"0"
|
sel_gpio6_wm
|
|
| 21 |
"0"
|
sel_gpio5_wm
|
|
| 20 |
"0"
|
sel_gpio4_wm
|
|
| 19 |
"0"
|
sel_gpio3_wm
|
|
| 18 |
"0"
|
sel_gpio2_wm
|
|
| 17 |
"0"
|
sel_gpio1_wm
|
|
| 16 |
"0"
|
sel_gpio0_wm
|
|
| 15 |
"0"
|
sel_biss1_mo
|
| select pad BISS ch 1 MO (s. pinning table) |
|
| 14 |
"0"
|
sel_biss1
|
| select pads BISS ch 1 (s. pinning table) |
|
| 13 |
"0"
|
sel_biss0_mo
|
| select pad BISS ch 0 MO (s. pinning table) |
|
| 12 |
"0"
|
sel_biss0
|
| select pads BISS ch 0 (s. pinning table) |
|
| 11 |
"0"
|
sel_endat1_devel
|
select pads EnDAT ch 1 development function (s. pinning table) Note: EnDAT development function outputs are delayed by one sys-clk. |
|
| 10 |
"0"
|
sel_endat1
|
| select pads EnDAT ch 1 (s. pinning table) |
|
| 9 |
"0"
|
sel_endat0_devel
|
select pads EnDAT ch 0 development function (s. pinning table) Note: EnDAT development function outputs are delayed by one sys-clk. |
|
| 8 |
"0"
|
sel_endat0
|
| select pads EnDAT ch 0 (s. pinning table) |
|
| 7 |
"0"
|
sel_gpio7
|
| select pad for gpio7 (s. pinning table) and deactivate this function via MMIOs |
|
| 6 |
"0"
|
sel_gpio6
|
| select pad for gpio6 (s. pinning table) and deactivate this function via MMIOs |
|
| 5 |
"0"
|
sel_gpio5
|
| select pad for gpio5 (s. pinning table) and deactivate this function via MMIOs |
|
| 4 |
"0"
|
sel_gpio4
|
| select pad for gpio4 (s. pinning table) and deactivate this function via MMIOs |
|
| 3 |
"0"
|
sel_gpio3
|
| select pad for gpio3 (s. pinning table) and deactivate this function via MMIOs |
|
| 2 |
"0"
|
sel_gpio2
|
| select pad for gpio2 (s. pinning table) and deactivate this function via MMIOs |
|
| 1 |
"0"
|
sel_gpio1
|
| select pad for gpio1 (s. pinning table) and deactivate this function via MMIOs |
|
| 0 |
"0"
|
sel_gpio0
|
| select pad for gpio0 (s. pinning table) and deactivate this function via MMIOs |
|
| io_config3_mask |
IO Config3 Mask Register: This register can be used to lock the special IO configurations for restricted netX devices. Bits of the io_config3 register can only be modified if the corresponding mask bits in this register are set. This register is lockable by asic_ctrl_com.netx_lock-lock_register. |
|
R/W
|
0x0000ffff
|
Address : 0xff40121c
|
Bits |
Reset value |
Name |
Description |
| 31 - 16 |
0
|
-
|
reserved |
| 15 |
"1"
|
sel_biss1_mo
|
| select pad BISS ch 1 MO (s. pinning table) |
|
| 14 |
"1"
|
sel_biss1
|
| select pads BISS ch 1 (s. pinning table) |
|
| 13 |
"1"
|
sel_biss0_mo
|
| select pad BISS ch 0 MO (s. pinning table) |
|
| 12 |
"1"
|
sel_biss0
|
| select pads BISS ch 0 (s. pinning table) |
|
| 11 |
"1"
|
sel_endat1_devel
|
| select pads EnDAT ch 1 development function (s. pinning table) |
|
| 10 |
"1"
|
sel_endat1
|
| select pads EnDAT ch 1 (s. pinning table) |
|
| 9 |
"1"
|
sel_endat0_devel
|
| select pads EnDAT ch 0 development function (s. pinning table) |
|
| 8 |
"1"
|
sel_endat0
|
| select pads EnDAT ch 0 (s. pinning table) |
|
| 7 |
"1"
|
sel_gpio7
|
| select pad for gpio7 (s. pinning table) and deactivate this function via MMIOs |
|
| 6 |
"1"
|
sel_gpio6
|
| select pad for gpio6 (s. pinning table) and deactivate this function via MMIOs |
|
| 5 |
"1"
|
sel_gpio5
|
| select pad for gpio5 (s. pinning table) and deactivate this function via MMIOs |
|
| 4 |
"1"
|
sel_gpio4
|
| select pad for gpio4 (s. pinning table) and deactivate this function via MMIOs |
|
| 3 |
"1"
|
sel_gpio3
|
| select pad for gpio3 (s. pinning table) and deactivate this function via MMIOs |
|
| 2 |
"1"
|
sel_gpio2
|
| select pad for gpio2 (s. pinning table) and deactivate this function via MMIOs |
|
| 1 |
"1"
|
sel_gpio1
|
| select pad for gpio1 (s. pinning table) and deactivate this function via MMIOs |
|
| 0 |
"1"
|
sel_gpio0
|
| select pad for gpio0 (s. pinning table) and deactivate this function via MMIOs |
|
| io_config4 |
IO Config4 Register: Selects of output pin multiplexing. See Excel pinning sheet for details. Changes will only have an effect if the corresponding bits in the io_config4_mask-register are set.
This register is a write mask register, i.e. lower 16 bits are only writeable, if corresponding upper bits are set. This register is protected by the netX access-key mechanism; changing this register is only possible by the following sequence: |
| 1.: |
read out access-key from asic_ctrl_access_key register |
| 2.: |
write back access-key to asic_ctrl_access_key register |
| 3.: |
write desired value to this register |
|
R/W
|
0x00000000
|
Address : 0xff401220
|
Bits |
Reset value |
Name |
Description |
| 31 - 28 |
0
|
-
|
reserved |
| 27 |
"0"
|
sel_can1_app_wm
|
| Write mask of sel_can1_app |
|
| 26 |
"0"
|
sel_can0_app_wm
|
| Write mask of sel_can0_app |
|
| 25 |
"0"
|
sel_spi2_app_cs2_wm
|
| Write mask of sel_spi2_app_cs2 |
|
| 24 |
"0"
|
sel_spi2_app_cs1_wm
|
| Write mask of sel_spi2_app_cs1 |
|
| 23 |
"0"
|
sel_spi2_app_wm
|
| Write mask of sel_spi2_app |
|
| 22 |
"0"
|
sel_spi0_app_cs1_wm
|
| Write mask of sel_spi0_app_cs1 |
|
| 21 |
"0"
|
sel_spi0_app_wm
|
| Write mask of sel_spi0_app |
|
| 20 |
"0"
|
sel_uart_xpic_app_rctsn_wm
|
| Write mask of sel_uart_xpic_app_rctsn |
|
| 19 |
"0"
|
sel_uart_xpic_app_wm
|
| Write mask of sel_uart_xpic_app |
|
| 18 |
"0"
|
sel_uart_app_rctsn_wm
|
| Write mask of sel_uart_app_rctsn |
|
| 17 |
"0"
|
sel_uart_app_wm
|
| Write mask of sel_uart_app |
|
| 16 |
"0"
|
sel_i2c_app_wm
|
| Write mask of sel_i2c_app |
|
| 15 - 12 |
0
|
-
|
reserved |
| 11 |
"0"
|
sel_can1_app
|
| select pad for can1_app (s. pinning table) and deactivate this function via MMIOs |
|
| 10 |
"0"
|
sel_can0_app
|
| select pad for can0_app (s. pinning table) and deactivate this function via MMIOs |
|
| 9 |
"0"
|
sel_spi2_app_cs2
|
| select pad for 3rd chip select of spi2_app (s. pinning table) |
|
| 8 |
"0"
|
sel_spi2_app_cs1
|
| select pad for 2nd chip select of spi2_app (s. pinning table) |
|
| 7 |
"0"
|
sel_spi2_app
|
| select pads for spi2_app (s. pinning table) and deactivate this function via MMIOs |
|
| 6 |
"0"
|
sel_spi0_app_cs1
|
| select pad for 2nd chip select of spi0_app (s. pinning table) |
|
| 5 |
"0"
|
sel_spi0_app
|
| select pads for spi0_app (s. pinning table) and deactivate this function via MMIOs |
|
| 4 |
"0"
|
sel_uart_xpic_app_rctsn
|
| select pads for uart_xpic_app RTS/CTS signals (s. pinning table) and deactivate this function via MMIOs |
|
| 3 |
"0"
|
sel_uart_xpic_app
|
| select pads for uart_xpic_app (s. pinning table) and deactivate this function via MMIOs |
|
| 2 |
"0"
|
sel_uart_app_rctsn
|
| select pads for uart_app RTS/CTS signals (s. pinning table) and deactivate this function via MMIOs |
|
| 1 |
"0"
|
sel_uart_app
|
| select pads for uart_app (s. pinning table) and deactivate this function via MMIOs |
|
| 0 |
"0"
|
sel_i2c_app
|
| select pads for i2c_app (s. pinning table) and deactivate this function via MMIOs |
|
| io_config4_mask |
IO Config4 Mask Register: This register can be used to lock the special IO configurations for restricted netX devices. Bits of the io_config4 register can only be modified if the corresponding mask bits in this register are set. This register is lockable by asic_ctrl_com.netx_lock-lock_register. |
|
R/W
|
0x00000fff
|
Address : 0xff401224
|
Bits |
Reset value |
Name |
Description |
| 31 - 12 |
0
|
-
|
reserved |
| 11 |
"1"
|
sel_can1_app
|
| select pad for can1_app (s. pinning table) and deactivate this function via MMIOs |
|
| 10 |
"1"
|
sel_can0_app
|
| select pad for can0_app (s. pinning table) and deactivate this function via MMIOs |
|
| 9 |
"1"
|
sel_spi2_app_cs2
|
| select pad for 3rd chip select of spi2_app (s. pinning table) |
|
| 8 |
"1"
|
sel_spi2_app_cs1
|
| select pad for 2nd chip select of spi2_app (s. pinning table) |
|
| 7 |
"1"
|
sel_spi2_app
|
| select pads for spi2_app (s. pinning table) and deactivate this function via MMIOs |
|
| 6 |
"1"
|
sel_spi0_app_cs1
|
| select pad for 2nd chip select of spi0_app (s. pinning table) |
|
| 5 |
"1"
|
sel_spi0_app
|
| select pads for spi0_app (s. pinning table) and deactivate this function via MMIOs |
|
| 4 |
"1"
|
sel_uart_xpic_app_rctsn
|
| select pads for uart_xpic_app RTS/CTS signals (s. pinning table) and deactivate this function via MMIOs |
|
| 3 |
"1"
|
sel_uart_xpic_app
|
| select pads for uart_xpic_app (s. pinning table) and deactivate this function via MMIOs |
|
| 2 |
"1"
|
sel_uart_app_rctsn
|
| select pads for uart_app RTS/CTS signals (s. pinning table) and deactivate this function via MMIOs |
|
| 1 |
"1"
|
sel_uart_app
|
| select pads for uart_app (s. pinning table) and deactivate this function via MMIOs |
|
| 0 |
"1"
|
sel_i2c_app
|
| select pads for i2c_app (s. pinning table) and deactivate this function via MMIOs |
|
| io_config5 |
IO Config5 Register: Selects of output pin multiplexing. See Excel pinning sheet for details. Changes will only have an effect if the corresponding bits in the io_config5_mask-register are set.
This register is a write mask register, i.e. lower 16 bits are only writeable, if corresponding upper bits are set. This register is protected by the netX access-key mechanism; changing this register is only possible by the following sequence: |
| 1.: |
read out access-key from asic_ctrl_access_key register |
| 2.: |
write back access-key to asic_ctrl_access_key register |
| 3.: |
write desired value to this register |
|
R/W
|
0x00000000
|
Address : 0xff401228
|
Bits |
Reset value |
Name |
Description |
| 31 |
"0"
|
sel_mled11_wm
|
|
| 30 |
"0"
|
sel_mled10_wm
|
|
| 29 |
"0"
|
sel_mled9_wm
|
|
| 28 |
"0"
|
sel_mled8_wm
|
|
| 27 |
"0"
|
sel_mled7_wm
|
|
| 26 |
"0"
|
sel_mled6_wm
|
|
| 25 |
"0"
|
sel_mled5_wm
|
|
| 24 |
"0"
|
sel_mled4_wm
|
|
| 23 |
0
|
-
|
reserved |
| 22 |
"0"
|
sel_mpwm_brake_wm
|
| Write mask of sel_mpwm_brake |
|
| 21 - 16 |
"000000"
|
sel_mpwm_wm
|
|
| 15 |
"0"
|
sel_mled11
|
| select pad for mled11 (s. pinning table) |
|
| 14 |
"0"
|
sel_mled10
|
| select pad for mled10 (s. pinning table) |
|
| 13 |
"0"
|
sel_mled9
|
| select pad for mled9 (s. pinning table) |
|
| 12 |
"0"
|
sel_mled8
|
| select pad for mled8 (s. pinning table) |
|
| 11 |
"0"
|
sel_mled7
|
| select pad for mled7 (s. pinning table) |
|
| 10 |
"0"
|
sel_mled6
|
| select pad for mled6 (s. pinning table) |
|
| 9 |
"0"
|
sel_mled5
|
| select pad for mled5 (s. pinning table) |
|
| 8 |
"0"
|
sel_mled4
|
| select pad for mled4 (s. pinning table) |
|
| 7 |
0
|
-
|
reserved |
| 6 |
"0"
|
sel_mpwm_brake
|
| select pad for mpwm_brake (s. pinning table) |
|
| 5 - 0 |
"000000"
|
sel_mpwm
|
| select pad for mpwm (s. pinning table) |
|
| io_config5_mask |
IO Config5 Mask Register: This register can be used to lock the special IO configurations for restricted netX devices. Bits of the io_config5 register can only be modified if the corresponding mask bits in this register are set. This register is lockable by asic_ctrl_com.netx_lock-lock_register. |
|
R/W
|
0x0000ff7f
|
Address : 0xff40122c
|
Bits |
Reset value |
Name |
Description |
| 31 - 16 |
0
|
-
|
reserved |
| 15 |
"1"
|
sel_mled11
|
| select pad for mled11 (s. pinning table) |
|
| 14 |
"1"
|
sel_mled10
|
| select pad for mled10 (s. pinning table) |
|
| 13 |
"1"
|
sel_mled9
|
| select pad for mled9 (s. pinning table) |
|
| 12 |
"1"
|
sel_mled8
|
| select pad for mled8 (s. pinning table) |
|
| 11 |
"1"
|
sel_mled7
|
| select pad for mled7 (s. pinning table) |
|
| 10 |
"1"
|
sel_mled6
|
| select pad for mled6 (s. pinning table) |
|
| 9 |
"1"
|
sel_mled5
|
| select pad for mled5 (s. pinning table) |
|
| 8 |
"1"
|
sel_mled4
|
| select pad for mled4 (s. pinning table) |
|
| 7 |
0
|
-
|
reserved |
| 6 |
"1"
|
sel_mpwm_brake
|
| select pad for mpwm_brake (s. pinning table) |
|
| 5 - 0 |
"111111"
|
sel_mpwm
|
| select pad for mpwm (s. pinning table) |
|
| io_config6 |
IO Config6 Register: Selects of output pin multiplexing. See Excel pinning sheet for details. Changes will only have an effect if the corresponding bits in the io_config6_mask-register are set.
This register is a write mask register, i.e. lower 16 bits are only writeable, if corresponding upper bits are set. This register is protected by the netX access-key mechanism; changing this register is only possible by the following sequence: |
| 1.: |
read out access-key from asic_ctrl_access_key register |
| 2.: |
write back access-key to asic_ctrl_access_key register |
| 3.: |
write desired value to this register |
|
R/W
|
0x00000000
|
Address : 0xff401230
|
Bits |
Reset value |
Name |
Description |
| 31 |
"0"
|
sel_io_link_wakeup7_wm
|
| Write mask of sel_io_link_wakeup7 |
|
| 30 |
"0"
|
sel_io_link_wakeup6_wm
|
| Write mask of sel_io_link_wakeup6 |
|
| 29 |
"0"
|
sel_io_link_wakeup5_wm
|
| Write mask of sel_io_link_wakeup5 |
|
| 28 |
"0"
|
sel_io_link_wakeup4_wm
|
| Write mask of sel_io_link_wakeup4 |
|
| 27 |
"0"
|
sel_io_link_wakeup3_wm
|
| Write mask of sel_io_link_wakeup3 |
|
| 26 |
"0"
|
sel_io_link_wakeup2_wm
|
| Write mask of sel_io_link_wakeup2 |
|
| 25 |
"0"
|
sel_io_link_wakeup1_wm
|
| Write mask of sel_io_link_wakeup1 |
|
| 24 |
"0"
|
sel_io_link_wakeup0_wm
|
| Write mask of sel_io_link_wakeup0 |
|
| 23 |
"0"
|
sel_io_link7_wm
|
| Write mask of sel_io_link7 |
|
| 22 |
"0"
|
sel_io_link6_wm
|
| Write mask of sel_io_link6 |
|
| 21 |
"0"
|
sel_io_link5_wm
|
| Write mask of sel_io_link5 |
|
| 20 |
"0"
|
sel_io_link4_wm
|
| Write mask of sel_io_link4 |
|
| 19 |
"0"
|
sel_io_link3_wm
|
| Write mask of sel_io_link3 |
|
| 18 |
"0"
|
sel_io_link2_wm
|
| Write mask of sel_io_link2 |
|
| 17 |
"0"
|
sel_io_link1_wm
|
| Write mask of sel_io_link1 |
|
| 16 |
"0"
|
sel_io_link0_wm
|
| Write mask of sel_io_link0 |
|
| 15 |
"0"
|
sel_io_link_wakeup7
|
| select pads for IO-Link7 Wakeup (s. pinning table) |
|
| 14 |
"0"
|
sel_io_link_wakeup6
|
| select pads for IO-Link6 Wakeup (s. pinning table) |
|
| 13 |
"0"
|
sel_io_link_wakeup5
|
| select pads for IO-Link5 Wakeup (s. pinning table) |
|
| 12 |
"0"
|
sel_io_link_wakeup4
|
| select pads for IO-Link4 Wakeup (s. pinning table) |
|
| 11 |
"0"
|
sel_io_link_wakeup3
|
| select pads for IO-Link3 Wakeup (s. pinning table) |
|
| 10 |
"0"
|
sel_io_link_wakeup2
|
| select pads for IO-Link2 Wakeup (s. pinning table) |
|
| 9 |
"0"
|
sel_io_link_wakeup1
|
| select pads for IO-Link1 Wakeup (s. pinning table) |
|
| 8 |
"0"
|
sel_io_link_wakeup0
|
| select pads for IO-Link0 Wakeup (s. pinning table) |
|
| 7 |
"0"
|
sel_io_link7
|
| select pads for IO-Link7 (s. pinning table) |
|
| 6 |
"0"
|
sel_io_link6
|
| select pads for IO-Link6 (s. pinning table) |
|
| 5 |
"0"
|
sel_io_link5
|
| select pads for IO-Link5 (s. pinning table) |
|
| 4 |
"0"
|
sel_io_link4
|
| select pads for IO-Link4 (s. pinning table) |
|
| 3 |
"0"
|
sel_io_link3
|
| select pads for IO-Link3 (s. pinning table) |
|
| 2 |
"0"
|
sel_io_link2
|
| select pads for IO-Link2 (s. pinning table) |
|
| 1 |
"0"
|
sel_io_link1
|
| select pads for IO-Link1 (s. pinning table) |
|
| 0 |
"0"
|
sel_io_link0
|
| select pads for IO-Link0 (s. pinning table) |
|
| io_config6_mask |
IO Config6 Mask Register: This register can be used to lock the special IO configurations for restricted netX devices. Bits of the io_config6 register can only be modified if the corresponding mask bits in this register are set. This register is lockable by asic_ctrl_com.netx_lock-lock_register. |
|
R/W
|
0x0000ffff
|
Address : 0xff401234
|
Bits |
Reset value |
Name |
Description |
| 31 - 16 |
0
|
-
|
reserved |
| 15 |
"1"
|
sel_io_link_wakeup7
|
| select pads for IO-Link7 Wakeup (s. pinning table) |
|
| 14 |
"1"
|
sel_io_link_wakeup6
|
| select pads for IO-Link6 Wakeup (s. pinning table) |
|
| 13 |
"1"
|
sel_io_link_wakeup5
|
| select pads for IO-Link5 Wakeup (s. pinning table) |
|
| 12 |
"1"
|
sel_io_link_wakeup4
|
| select pads for IO-Link4 Wakeup (s. pinning table) |
|
| 11 |
"1"
|
sel_io_link_wakeup3
|
| select pads for IO-Link3 Wakeup (s. pinning table) |
|
| 10 |
"1"
|
sel_io_link_wakeup2
|
| select pads for IO-Link2 Wakeup (s. pinning table) |
|
| 9 |
"1"
|
sel_io_link_wakeup1
|
| select pads for IO-Link1 Wakeup (s. pinning table) |
|
| 8 |
"1"
|
sel_io_link_wakeup0
|
| select pads for IO-Link0 Wakeup (s. pinning table) |
|
| 7 |
"1"
|
sel_io_link7
|
| select pads for IO-Link7 (s. pinning table) |
|
| 6 |
"1"
|
sel_io_link6
|
| select pads for IO-Link6 (s. pinning table) |
|
| 5 |
"1"
|
sel_io_link5
|
| select pads for IO-Link5 (s. pinning table) |
|
| 4 |
"1"
|
sel_io_link4
|
| select pads for IO-Link4 (s. pinning table) |
|
| 3 |
"1"
|
sel_io_link3
|
| select pads for IO-Link3 (s. pinning table) |
|
| 2 |
"1"
|
sel_io_link2
|
| select pads for IO-Link2 (s. pinning table) |
|
| 1 |
"1"
|
sel_io_link1
|
| select pads for IO-Link1 (s. pinning table) |
|
| 0 |
"1"
|
sel_io_link0
|
| select pads for IO-Link0 (s. pinning table) |
|
| io_config7 |
IO Config7 Register: Selects of output pin multiplexing. See Excel pinning sheet for details. Changes will only have an effect if the corresponding bits in the io_config7_mask-register are set.
This register is a write mask register, i.e. lower 16 bits are only writeable, if corresponding upper bits are set. This register is protected by the netX access-key mechanism; changing this register is only possible by the following sequence: |
| 1.: |
read out access-key from asic_ctrl_access_key register |
| 2.: |
write back access-key to asic_ctrl_access_key register |
| 3.: |
write desired value to this register |
|
R/W
|
0x00000000
|
Address : 0xff401238
|
Bits |
Reset value |
Name |
Description |
| 31 - 29 |
0
|
-
|
reserved |
| 28 |
"0"
|
sel_io_link_wakeup1b_wm
|
| Write mask of sel_io_link_wakeup1b |
|
| 27 |
"0"
|
sel_io_link_wakeup0b_wm
|
| Write mask of sel_io_link_wakeup0b |
|
| 26 |
"0"
|
sel_io_link1b_wm
|
| Write mask of sel_io_link1b |
|
| 25 |
"0"
|
sel_io_link0b_wm
|
| Write mask of sel_io_link0b |
|
| 24 |
"0"
|
sel_sqi_cs2_wm
|
| Write mask of sel_sqi_cs2 |
|
| 23 |
"0"
|
sel_sqi_cs1_wm
|
| Write mask of sel_sqi_cs1 |
|
| 22 - 21 |
"00"
|
sel_eth_mdio_wm
|
| Write mask of sel_eth_mdio |
|
| 20 - 16 |
"00000"
|
sel_eth_cfg_wm
|
| Write mask of sel_eth_cfg |
|
| 15 - 13 |
0
|
-
|
reserved |
| 12 |
"0"
|
sel_io_link_wakeup1b
|
| select pads for IO-Link1 Wakeup at position B (s. pinning table) |
|
| 11 |
"0"
|
sel_io_link_wakeup0b
|
| select pads for IO-Link0 Wakeup at position B (s. pinning table) |
|
| 10 |
"0"
|
sel_io_link1b
|
| select pads for IO-Link1 at position B (s. pinning table) |
|
| 9 |
"0"
|
sel_io_link0b
|
| select pads for IO-Link0 at position B (s. pinning table) |
|
| 8 |
"0"
|
sel_sqi_cs2
|
| select pad for 3rd chip select of sqi (s. pinning table) |
|
| 7 |
"0"
|
sel_sqi_cs1
|
| select pad for 2nd chip select of sqi (s. pinning table) |
|
| 6 - 5 |
"00"
|
sel_eth_mdio
|
| select connection for MIIMU MDIO interface used by ETH |
| 00: |
ETH MIIMU not connected to IOs but the multiplexmatrix can be used for it. |
| 01: |
connect to external eth_mdio default position (s. pinning table sel_eth_mdio) |
| 10: |
connect to external eth_mdio position B (s pinning table sel_eth_b_mdio) pins (s pinning table) |
| 11: |
connect to internal PHY |
|
| 4 - 0 |
"00000"
|
sel_eth_cfg
|
| select connection of ETH MII pins: |
| 0: |
no select |
| 1: |
select pads for ETH RMII (rxd[1:0],rxdv,rxer,txclk,txd[1:0],txen) (s. pinning table: sel_eth_5,2,1 will be active) |
| 2: |
select pads for ETH RX only mode (rxclk, rxd[3:0],rxdv,rxer) (s. pinning table: sel_eth_5,3,2,0 will be active) |
| 3: |
select pads for ETH minimum data transfer in phy mode (rxd,rxdv,txclk,txd,txen) (s. pinning table: sel_eth_4:1 will be active) |
| 4: |
select also pads for ETH rxclk pin for mac mode (rxclk) (s. pinning table: sel_eth_4:0 will be active) |
| 5: |
select also pads for ETH RX error signal (rxer) (s. pinning table: sel_eth_5:0 will be active) |
| 6: |
select also pads for ETH collision and carrier sense (col,crs) (s. pinning table: sel_eth_6:0 will be active) |
| 7: |
select also pads for ETH TX error signal (txer) (s. pinning table: sel_eth_7:0 will be active) |
| 8: |
ETH position B: select pads for ETH RMII (rxd[1:0],rxdv,rxer,txclk,txd[1:0],txen) (s. pinning table: sel_eth_5,2,1 will be active) |
| 9: |
ETH position B: select pads for ETH RX only mode (rxclk, rxd[3:0],rxdv,rxer) (s. pinning table: sel_eth_5,3,2,0 will be active) |
| 10: |
ETH position B: select pads for ETH minimum data transfer in phy mode (rxd,rxdv,txclk,txd,txen) (s. pinning table: sel_eth_4:1 will be active) |
| 11: |
ETH position B: select also pads for ETH rxclk pin for mac mode (rxclk) (s. pinning table: sel_eth_4:0 will be active) |
| 12: |
ETH position B: select also pads for ETH RX error signal (rxer) (s. pinning table: sel_eth_5:0 will be active) |
| 13: |
ETH position B: select also pads for ETH collision and carrier sense (col,crs) (s. pinning table: sel_eth_6:0 will be active) |
| 14: |
ETH position B: select also pads for ETH TX error signal (txer) (s. pinning table: sel_eth_7:0 will be active) |
| 15: |
connect to internal PHY0, if PHY0 not used by XMAC0 (no selects for external MII) |
| 16: |
connect to internal PHY1, if PHY1 not used by XMAC1 (no selects for external MII) |
| 17: |
connect to internal LVDS0, if LVDS0 not used by XMAC0 (no selects for external MII) |
| 18: |
connect to internal LVDS1, if LVDS1 not used by XMAC1 (no selects for external MII) |
The maximum MII interface consists of 16 signals, but usually not all MII signals are necessary. Values 1..6 define combinations of reduced MII that might be use cases, while 7 is the full MII. To realize this, MII signals are combined to the following groups with appropriate select signals in pinning table: |
| 0 |
rxclk |
| 1 |
txclk, txen, txd0, txd1 |
| 2 |
rxdv, rxd0, rxd1 |
| 3 |
rxd2, rxd3 |
| 4 |
txd2, txd3 |
| 5 |
rxer |
| 6 |
col, crs |
| 7 |
txer |
|
| io_config8 |
IO Config8 Register: Selects of output pin multiplexing. See Excel pinning sheet for details. Changes will only have an effect if the corresponding bits in the io_config8_mask-register are set.
This register is a write mask register, i.e. lower 16 bits are only writeable, if corresponding upper bits are set. This register is protected by the netX access-key mechanism; changing this register is only possible by the following sequence: |
| 1.: |
read out access-key from asic_ctrl_access_key register |
| 2.: |
write back access-key to asic_ctrl_access_key register |
| 3.: |
write desired value to this register |
|
R/W
|
0x00000000
|
Address : 0xff401240
|
Bits |
Reset value |
Name |
Description |
| 31 - 20 |
0
|
-
|
reserved |
| 19 |
"0"
|
sel_bga2_wm
|
|
| 18 |
"0"
|
sel_extphy_wm
|
|
| 17 - 16 |
"00"
|
sel_arm_trace_cfg_wm
|
| Write mask of sel_arm_trace_cfg |
|
| 15 - 4 |
0
|
-
|
reserved |
| 3 |
"0"
|
sel_bga2
|
select *_bga2 pins in pinning table: This is intended for a second bondout version using external Ethernet PHY. If sel_bga2 is active, output enable of pin MII0_TXEN will be inactive, all other *_bga2 pins are inputs. |
|
| 2 |
"0"
|
sel_extphy
|
select *_extphy pins in pinning table: This is intended to combine external PHYs with SDRAM. |
|
| 1 - 0 |
"00"
|
sel_arm_trace_cfg
|
| select pins for CoreSight Tracing |
| 00: |
Disable Trace: sel_trace = 0, sel_trace_d[3:0] = 0000 |
| 01: |
Trace with 1 data line: sel_trace = 1, sel_trace_d[3:0] = 0001 |
| 10: |
Trace with 2 data lines: sel_trace = 1, sel_trace_d[3:0] = 0011 |
| 11: |
Trace with 4 data lines: sel_trace = 1, sel_trace_d[3:0] = 1111 |
|
| system_status |
netX System Status Register. This register provides information of special netX system events, e.g: System related interrupt activity, Abort activity. Abort or IRQ status flag can be cleared by writing a '1' to the appropriate bits. |
|
R
|
Address : 0xff401294
|
Bits |
Name |
Description |
| 31 - 13 |
-
|
reserved |
| 12 |
xtal_ok
|
XTAL status signal of disclock. If '1', the PLL can be powered up. -> diverse internal counters count faster (RTC-clock-divider, PLL-stby-controller,...) |
|
| 11 |
quick_count
|
Testmode 'quick_count' is activated by BSCAN JTAG TAP controller -> diverse internal counters count faster (RTC-clock-divider, PLL-stby-controller,...) |
|
| 10 |
pll_bypass
|
Testmode 'pll_bypass' is activated by TESTDECODER JTAG TAP controller (clk_test is selected in this case) or by the bit pll_bypass of the system_ctrl register in ASIC_CTRL_COM ist set -> 400MHz-PLL is bypassed, PLL output is unused, 400MHz-Clocks (clk400, clk400_2sdram) are directly connected to the RC-OSC clock. |
|
| 9 |
pw_bod_ok
|
| Power watch brown-out detection status |
|
| 8 |
testmode
|
| sampled netx TESTMODE input for production test purpose |
|
| 7 - 2 |
-
|
reserved |
| 1 |
extbus_to_irq_status
|
Current status of HIF-Extension Bus Ready Timeout IRQ. Note: This IRQ is controlled/cleared by ext_rdy_cfg register (area hif_asyncmem_ctrl). |
|
| 0 |
-
|
reserved |
| mmio0_cfg |
Multiplexmatrix Configuration Register for MMIO0 ------------------------------- Some bits of this register is protected by the netX access-key mechanism; changing this register is only possible by the following sequence: |
| 1.: |
read out access-key from asic_ctrl_access_key register |
| 2.: |
write back access-key to asic_ctrl_access_key register |
| 3.: |
write desired value to this register |
------------------------------- Core-inputs not mapped to any MMIO will be assigned to 0. If one core-connection is mapped to more than one MMIO, the core-input-state will be these ored MMIO-states. ------------------------------- mmio*_sel - coding: |
| Coding |
netX internal function (core connection) |
signal type |
functional group |
| 0x00 |
xc_sample0 |
input, |
Trigger/Latch Unit |
| 0x01 |
xc_sample1 |
input, |
Trigger/Latch Unit |
| 0x02 |
xc_trigger0 |
tristatable output, |
Trigger/Latch Unit |
| 0x03 |
xc_trigger1 |
tristatable output, |
Trigger/Latch Unit |
| 0x04 |
can0_app_rx |
input, |
CAN of app side ARM |
| 0x05 |
can0_app_tx |
always driven output, |
CAN of app side ARM |
| 0x06 |
can1_app_rx |
input, |
CAN of app side ARM |
| 0x07 |
can1_app_tx |
always driven output, |
CAN of app side ARM |
| 0x08 |
i2c_xpic_app_scl |
bidirectional, |
I2C of app side xPIC |
| 0x09 |
i2c_xpic_app_sda |
bidirectional, |
I2C of app side xPIC |
| 0x0a |
i2c_app_scl |
bidirectional, |
I2C of app side ARM |
| 0x0b |
i2c_app_sda |
bidirectional, |
I2C of app side ARM |
| 0x0c |
spi_xpic_app_clk |
bidirectional, |
SPI of app side xPIC |
| 0x0d |
spi_xpic_app_cs0n |
bidirectional, |
SPI of app side xPIC |
| 0x0e |
spi_xpic_app_cs1n |
bidirectional, |
SPI of app side xPIC |
| 0x0f |
spi_xpic_app_cs2n |
bidirectional, |
SPI of app side xPIC |
| 0x10 |
spi_xpic_app_miso |
bidirectional, |
SPI of app side xPIC |
| 0x11 |
spi_xpic_app_mosi |
bidirectional, |
SPI of app side xPIC |
| 0x12 |
spi1_app_clk |
bidirectional, |
SPI of app side ARM |
| 0x13 |
spi1_app_cs0n |
bidirectional, |
SPI of app side ARM |
| 0x14 |
spi1_app_cs1n |
bidirectional, |
SPI of app side ARM |
| 0x15 |
spi1_app_cs2n |
bidirectional, |
SPI of app side ARM |
| 0x16 |
spi1_app_miso |
bidirectional, |
SPI of app side ARM |
| 0x17 |
spi1_app_mosi |
bidirectional, |
SPI of app side ARM |
| 0x18 |
uart_xpic_app_rxd |
input, |
UART of app side xPIC |
| 0x19 |
uart_xpic_app_txd |
tristatable output, |
UART of app side xPIC |
| 0x1a |
uart_xpic_app_rtsn |
tristatable output, |
UART of app side xPIC |
| 0x1b |
uart_xpic_app_ctsn |
input, |
UART of app side xPIC |
| 0x1c |
uart_app_rxd |
input, |
UART of app side ARM |
| 0x1d |
uart_app_txd |
tristatable output, |
UART of app side ARM |
| 0x1e |
uart_app_rtsn |
tristatable output, |
UART of app side ARM |
| 0x1f |
uart_app_ctsn |
input, |
UART of app side ARM |
| 0x20 |
gpio0 |
bidirectional, |
GPIO (Timer/PWM/Blink etc) |
| 0x21 |
gpio1 |
bidirectional, |
GPIO (Timer/PWM/Blink etc) |
| 0x22 |
gpio2 |
bidirectional, |
GPIO (Timer/PWM/Blink etc) |
| 0x23 |
gpio3 |
bidirectional, |
GPIO (Timer/PWM/Blink etc) |
| 0x24 |
gpio4 |
bidirectional, |
GPIO (Timer/PWM/Blink etc) |
| 0x25 |
gpio5 |
bidirectional, |
GPIO (Timer/PWM/Blink etc) |
| 0x26 |
gpio6 |
bidirectional, |
GPIO (Timer/PWM/Blink etc) |
| 0x27 |
gpio7 |
bidirectional, |
GPIO (Timer/PWM/Blink etc) |
| 0x28 |
wdg_act |
always driven output, |
System Watchdog |
| 0x29 |
en_in |
input, |
HIF pio input sampling enable |
| 0x2a |
eth_mdc |
always driven output, |
MDIO |
| 0x2b |
eth_mdio |
bidirectional, |
MDIO |
| |
|
|
|
| 0x3f |
PIO mode |
use MMIO PIO line registers |
PIO function |
|
R/W
|
0x0000003f
|
Address : 0xff401300
|
Bits |
Reset value |
Name |
Description |
| 31 - 19 |
0
|
-
|
reserved |
| 18 |
-
|
status_in_ro
|
| current input status of mmio0, could also be read from 'mmio_in_line_status' register |
|
| 17 |
"0"
|
pio_out
|
PIO mode output drive level of mmio0, could also be programmd by 'mmio_pio_out_line_cfg' register (not protected) Changing this bit will also change according bit in 'mmio_pio_out_line_cfg register'. |
|
| 16 |
"0"
|
pio_oe
|
PIO mode output enable of mmio0, could also be programmd by mmio_pio_oe_line_cfg register (not protected) Changing this bit will also change according bit in 'mmio_pio_oe_line_cfg register'. |
|
| 15 - 11 |
0
|
-
|
reserved |
| 10 |
"0"
|
mmio_in_inv
|
| 1: invert input signal; 0: keep original signal polarity (access-key-protected) |
|
| 9 |
"0"
|
mmio_out_inv
|
| 1: invert output signal; 0: keep original signal polarity (access-key-protected) |
|
| 8 - 6 |
0
|
-
|
reserved |
| 5 - 0 |
"111111"
|
mmio_sel
|
| mmio0 signal selection (default: PIO mode, access-key-protected). |
|
| mmio1_cfg |
Multiplexmatrix Configuration Register for MMIO1 ------------------------------- Some bits of this register is protected by the netX access-key mechanism; changing this register is only possible by the following sequence: |
| 1.: |
read out access-key from asic_ctrl_access_key register |
| 2.: |
write back access-key to asic_ctrl_access_key register |
| 3.: |
write desired value to this register |
------------------------------- Core-inputs not mapped to any MMIO will be assigned to 0. If one core-connection is mapped to more than one MMIO, the core-input-state will be these ored MMIO-states. For signal selection codings (mmio*_sel) look at header of register adr_mmio0. |
|
R/W
|
0x0000003f
|
Address : 0xff401304
|
Bits |
Reset value |
Name |
Description |
| 31 - 19 |
0
|
-
|
reserved |
| 18 |
-
|
status_in_ro
|
| current input status of mmio1, could also be read from 'mmio_in_line_status' register |
|
| 17 |
"0"
|
pio_out
|
PIO mode output drive level of mmio1, could also be programmd by 'mmio_pio_out_line_cfg' register (not protected) Changing this bit will also change according bit in 'mmio_pio_out_line_cfg register'. |
|
| 16 |
"0"
|
pio_oe
|
PIO mode output enable of mmio1, could also be programmd by mmio_pio_oe_line_cfg register (not protected) Changing this bit will also change according bit in 'mmio_pio_oe_line_cfg register'. |
|
| 15 - 11 |
0
|
-
|
reserved |
| 10 |
"0"
|
mmio_in_inv
|
| 1: invert input signal; 0: keep original signal polarity (access-key-protected) |
|
| 9 |
"0"
|
mmio_out_inv
|
| 1: invert output signal; 0: keep original signal polarity (access-key-protected) |
|
| 8 - 6 |
0
|
-
|
reserved |
| 5 - 0 |
"111111"
|
mmio_sel
|
| mmio1 signal selection (default: PIO mode, access-key-protected). |
|
| mmio2_cfg |
Multiplexmatrix Configuration Register for MMIO2 ------------------------------- Some bits of this register is protected by the netX access-key mechanism; changing this register is only possible by the following sequence: |
| 1.: |
read out access-key from asic_ctrl_access_key register |
| 2.: |
write back access-key to asic_ctrl_access_key register |
| 3.: |
write desired value to this register |
------------------------------- Core-inputs not mapped to any MMIO will be assigned to 0. If one core-connection is mapped to more than one MMIO, the core-input-state will be these ored MMIO-states. For signal selection codings (mmio*_sel) look at header of register adr_mmio0. |
|
R/W
|
0x0000003f
|
Address : 0xff401308
|
Bits |
Reset value |
Name |
Description |
| 31 - 19 |
0
|
-
|
reserved |
| 18 |
-
|
status_in_ro
|
| current input status of mmio2, could also be read from 'mmio_in_line_status' register |
|
| 17 |
"0"
|
pio_out
|
PIO mode output drive level of mmio2, could also be programmd by 'mmio_pio_out_line_cfg' register (not protected) Changing this bit will also change according bit in 'mmio_pio_out_line_cfg register'. |
|
| 16 |
"0"
|
pio_oe
|
PIO mode output enable of mmio2, could also be programmd by mmio_pio_oe_line_cfg register (not protected) Changing this bit will also change according bit in 'mmio_pio_oe_line_cfg register'. |
|
| 15 - 11 |
0
|
-
|
reserved |
| 10 |
"0"
|
mmio_in_inv
|
| 1: invert input signal; 0: keep original signal polarity (access-key-protected) |
|
| 9 |
"0"
|
mmio_out_inv
|
| 1: invert output signal; 0: keep original signal polarity (access-key-protected) |
|
| 8 - 6 |
0
|
-
|
reserved |
| 5 - 0 |
"111111"
|
mmio_sel
|
| mmio2 signal selection (default: PIO mode, access-key-protected). |
|
| mmio3_cfg |
Multiplexmatrix Configuration Register for MMIO3 ------------------------------- Some bits of this register is protected by the netX access-key mechanism; changing this register is only possible by the following sequence: |
| 1.: |
read out access-key from asic_ctrl_access_key register |
| 2.: |
write back access-key to asic_ctrl_access_key register |
| 3.: |
write desired value to this register |
------------------------------- Core-inputs not mapped to any MMIO will be assigned to 0. If one core-connection is mapped to more than one MMIO, the core-input-state will be these ored MMIO-states. For signal selection codings (mmio*_sel) look at header of register adr_mmio0. |
|
R/W
|
0x0000003f
|
Address : 0xff40130c
|
Bits |
Reset value |
Name |
Description |
| 31 - 19 |
0
|
-
|
reserved |
| 18 |
-
|
status_in_ro
|
| current input status of mmio3, could also be read from 'mmio_in_line_status' register |
|
| 17 |
"0"
|
pio_out
|
PIO mode output drive level of mmio3, could also be programmd by 'mmio_pio_out_line_cfg' register (not protected) Changing this bit will also change according bit in 'mmio_pio_out_line_cfg register'. |
|
| 16 |
"0"
|
pio_oe
|
PIO mode output enable of mmio3, could also be programmd by mmio_pio_oe_line_cfg register (not protected) Changing this bit will also change according bit in 'mmio_pio_oe_line_cfg register'. |
|
| 15 - 11 |
0
|
-
|
reserved |
| 10 |
"0"
|
mmio_in_inv
|
| 1: invert input signal; 0: keep original signal polarity (access-key-protected) |
|
| 9 |
"0"
|
mmio_out_inv
|
| 1: invert output signal; 0: keep original signal polarity (access-key-protected) |
|
| 8 - 6 |
0
|
-
|
reserved |
| 5 - 0 |
"111111"
|
mmio_sel
|
| mmio3 signal selection (default: PIO mode, access-key-protected). |
|
| mmio4_cfg |
Multiplexmatrix Configuration Register for MMIO4 ------------------------------- Some bits of this register is protected by the netX access-key mechanism; changing this register is only possible by the following sequence: |
| 1.: |
read out access-key from asic_ctrl_access_key register |
| 2.: |
write back access-key to asic_ctrl_access_key register |
| 3.: |
write desired value to this register |
------------------------------- Core-inputs not mapped to any MMIO will be assigned to 0. If one core-connection is mapped to more than one MMIO, the core-input-state will be these ored MMIO-states. For signal selection codings (mmio*_sel) look at header of register adr_mmio0. |
|
R/W
|
0x0000003f
|
Address : 0xff401310
|
Bits |
Reset value |
Name |
Description |
| 31 - 19 |
0
|
-
|
reserved |
| 18 |
-
|
status_in_ro
|
| current input status of mmio4, could also be read from 'mmio_in_line_status' register |
|
| 17 |
"0"
|
pio_out
|
PIO mode output drive level of mmio4, could also be programmd by 'mmio_pio_out_line_cfg' register (not protected) Changing this bit will also change according bit in 'mmio_pio_out_line_cfg register'. |
|
| 16 |
"0"
|
pio_oe
|
PIO mode output enable of mmio4, could also be programmd by mmio_pio_oe_line_cfg register (not protected) Changing this bit will also change according bit in 'mmio_pio_oe_line_cfg register'. |
|
| 15 - 11 |
0
|
-
|
reserved |
| 10 |
"0"
|
mmio_in_inv
|
| 1: invert input signal; 0: keep original signal polarity (access-key-protected) |
|
| 9 |
"0"
|
mmio_out_inv
|
| 1: invert output signal; 0: keep original signal polarity (access-key-protected) |
|
| 8 - 6 |
0
|
-
|
reserved |
| 5 - 0 |
"111111"
|
mmio_sel
|
| mmio4 signal selection (default: PIO mode, access-key-protected). |
|
| mmio5_cfg |
Multiplexmatrix Configuration Register for MMIO5 ------------------------------- Some bits of this register is protected by the netX access-key mechanism; changing this register is only possible by the following sequence: |
| 1.: |
read out access-key from asic_ctrl_access_key register |
| 2.: |
write back access-key to asic_ctrl_access_key register |
| 3.: |
write desired value to this register |
------------------------------- Core-inputs not mapped to any MMIO will be assigned to 0. If one core-connection is mapped to more than one MMIO, the core-input-state will be these ored MMIO-states. For signal selection codings (mmio*_sel) look at header of register adr_mmio0. |
|
R/W
|
0x0000003f
|
Address : 0xff401314
|
Bits |
Reset value |
Name |
Description |
| 31 - 19 |
0
|
-
|
reserved |
| 18 |
-
|
status_in_ro
|
| current input status of mmio5, could also be read from 'mmio_in_line_status' register |
|
| 17 |
"0"
|
pio_out
|
PIO mode output drive level of mmio5, could also be programmd by 'mmio_pio_out_line_cfg' register (not protected) Changing this bit will also change according bit in 'mmio_pio_out_line_cfg register'. |
|
| 16 |
"0"
|
pio_oe
|
PIO mode output enable of mmio5, could also be programmd by mmio_pio_oe_line_cfg register (not protected) Changing this bit will also change according bit in 'mmio_pio_oe_line_cfg register'. |
|
| 15 - 11 |
0
|
-
|
reserved |
| 10 |
"0"
|
mmio_in_inv
|
| 1: invert input signal; 0: keep original signal polarity (access-key-protected) |
|
| 9 |
"0"
|
mmio_out_inv
|
| 1: invert output signal; 0: keep original signal polarity (access-key-protected) |
|
| 8 - 6 |
0
|
-
|
reserved |
| 5 - 0 |
"111111"
|
mmio_sel
|
| mmio5 signal selection (default: PIO mode, access-key-protected). |
|
| mmio6_cfg |
Multiplexmatrix Configuration Register for MMIO6 ------------------------------- Some bits of this register is protected by the netX access-key mechanism; changing this register is only possible by the following sequence: |
| 1.: |
read out access-key from asic_ctrl_access_key register |
| 2.: |
write back access-key to asic_ctrl_access_key register |
| 3.: |
write desired value to this register |
------------------------------- Core-inputs not mapped to any MMIO will be assigned to 0. If one core-connection is mapped to more than one MMIO, the core-input-state will be these ored MMIO-states. For signal selection codings (mmio*_sel) look at header of register adr_mmio0. |
|
R/W
|
0x0000003f
|
Address : 0xff401318
|
Bits |
Reset value |
Name |
Description |
| 31 - 19 |
0
|
-
|
reserved |
| 18 |
-
|
status_in_ro
|
| current input status of mmio6, could also be read from 'mmio_in_line_status' register |
|
| 17 |
"0"
|
pio_out
|
PIO mode output drive level of mmio6, could also be programmd by 'mmio_pio_out_line_cfg' register (not protected) Changing this bit will also change according bit in 'mmio_pio_out_line_cfg register'. |
|
| 16 |
"0"
|
pio_oe
|
PIO mode output enable of mmio6, could also be programmd by mmio_pio_oe_line_cfg register (not protected) Changing this bit will also change according bit in 'mmio_pio_oe_line_cfg register'. |
|
| 15 - 11 |
0
|
-
|
reserved |
| 10 |
"0"
|
mmio_in_inv
|
| 1: invert input signal; 0: keep original signal polarity (access-key-protected) |
|
| 9 |
"0"
|
mmio_out_inv
|
| 1: invert output signal; 0: keep original signal polarity (access-key-protected) |
|
| 8 - 6 |
0
|
-
|
reserved |
| 5 - 0 |
"111111"
|
mmio_sel
|
| mmio6 signal selection (default: PIO mode, access-key-protected). |
|
| mmio7_cfg |
Multiplexmatrix Configuration Register for MMIO7 ------------------------------- Some bits of this register is protected by the netX access-key mechanism; changing this register is only possible by the following sequence: |
| 1.: |
read out access-key from asic_ctrl_access_key register |
| 2.: |
write back access-key to asic_ctrl_access_key register |
| 3.: |
write desired value to this register |
------------------------------- Core-inputs not mapped to any MMIO will be assigned to 0. If one core-connection is mapped to more than one MMIO, the core-input-state will be these ored MMIO-states. For signal selection codings (mmio*_sel) look at header of register adr_mmio0. |
|
R/W
|
0x0000003f
|
Address : 0xff40131c
|
Bits |
Reset value |
Name |
Description |
| 31 - 19 |
0
|
-
|
reserved |
| 18 |
-
|
status_in_ro
|
| current input status of mmio7, could also be read from 'mmio_in_line_status' register |
|
| 17 |
"0"
|
pio_out
|
PIO mode output drive level of mmio7, could also be programmd by 'mmio_pio_out_line_cfg' register (not protected) Changing this bit will also change according bit in 'mmio_pio_out_line_cfg register'. |
|
| 16 |
"0"
|
pio_oe
|
PIO mode output enable of mmio7, could also be programmd by mmio_pio_oe_line_cfg register (not protected) Changing this bit will also change according bit in 'mmio_pio_oe_line_cfg register'. |
|
| 15 - 11 |
0
|
-
|
reserved |
| 10 |
"0"
|
mmio_in_inv
|
| 1: invert input signal; 0: keep original signal polarity (access-key-protected) |
|
| 9 |
"0"
|
mmio_out_inv
|
| 1: invert output signal; 0: keep original signal polarity (access-key-protected) |
|
| 8 - 6 |
0
|
-
|
reserved |
| 5 - 0 |
"111111"
|
mmio_sel
|
| mmio7 signal selection (default: PIO mode, access-key-protected). |
|
hif_io_cfg (NETX_IO_CFG) |
IO Config Register: Selects of HIF pin multiplexing. See Excel pinning sheet for details. This configuration must be set up according to external netX connection before any access to external logic. This register is protected by the netX access key mechanism; changing this register is only possible by the following sequence: |
| 1.: |
read out access key from ACCESS_KEY register (ASIC_CTRL address area) |
| 2.: |
write back access key to ACCESS_KEY register (ASIC_CTRL address area) |
| 3.: |
write desired value to this register (ASIC_CTRL address area) |
Attention: Be very careful programming this register. False settings may cause permanent damage on netX or devices connected to HIF-IOs. |
|
R/W
|
0x01000060
|
Address : 0xff401480
|
Bits |
Reset value |
Name |
Description |
| 31 - 26 |
0
|
-
|
reserved |
| 25 |
"0"
|
en_hif_wdg_sys_hif_d19
|
Obsolete for netX90, removed by regdef filter script. Enable 'wdg_active'/'WDGACT'-signal of netX system watchdog on HIF_D19. # default 0 When this bit is set HIF_D19 will be set to output mode and provide watchdog-active signal. However this will have no effect when HIF_D19 is used for another function. For parallel DPM with watchdog HIF_D19 must be set to PIO mode inside DPM module. Note: netX system watch can be programmed inside address area 'WATCHDOG'/'NETX_WDG_AREA'. |
|
| 24 |
"1"
|
en_hif_rdy_pio_mi
|
| Enable HIF_RDY for PIO usage (or other netX MUX function) when the HIF is in memory-mode. |
| Note: |
This bit must be disabled if HIF_RDY is used as EXT_BUS RDY (extension bus ready input). |
| Note: |
This bit is ignored if HIF is DPM. Use DPM RDY configuration if HIF_RDY should be used as PIO together with DPM functionality. |
|
| 23 - 12 |
0
|
-
|
reserved |
| 11 - 8 |
"0000"
|
sel_hif_a_width
|
Select HIF MI address width. Selecting smaller address bus width will allow PIO usage on related IOs when not used otherwise (e.g. as SDRAM control signals, see en_hif_sdram_mi). A0 to A11 are always enabled when the HIF MI is enabled by the hif_mi_cfg bits. Following settings are valid for 8 or 16 bit data modes. Please note: - The lower byte of the MI is located on the MII signals (refer to the pinning table). - The upper byte of the MI is located on the lower HIF_D IOs (HIF_D0..7, not on HIF_D8..15). - 32bit data is not supported for netX90 |
| |
Lines |
Range |
IOs |
Function |
Comment |
| 0000: |
11 |
2k |
HIF_A0..10 |
A0..A10 |
ext_a0..ext_a10 |
| 0001: |
12 |
4k |
HIF_A0..11 |
A0..A11 |
+ ext_a11 |
| 0010: |
13 |
8k |
HIF_A0..12 |
A0..A12 |
+ ext_a12 |
| 0011: |
14 |
16k |
HIF_A0..13 |
A0..A13 |
+ ext_a13 |
| 0100: |
15 |
32k |
HIF_A0..14 |
A0..A14 |
+ ext_a14 |
| 0101: |
16 |
64k |
HIF_A0..15 |
A0..A15 |
+ ext_a15 |
| 0110: |
17 |
128k |
HIF_A0..16 |
A0..A16 |
+ ext_a16 |
| 0111: |
18 |
256k |
HIF_A0..17 |
A0..A17 |
+ ext_a17 |
Following settings are only valid for 8 bit data mode: |
| |
Lines |
Range |
IOs |
Function |
Comment |
| 1000 |
19 |
512k |
HIF_A0..17 |
A0..A17 |
ext_a0..ext_a17 |
| |
|
|
HIF_D0 |
A18 |
ext_a18 |
| 1001 |
20 |
1M |
HIF_A0..17 |
A0..A17 |
ext_a0..ext_a17 |
| |
|
|
HIF_D0,1 |
A18,A19 |
ext_a18,ext_a19 |
| 1010 |
21 |
2M |
HIF_A0..17 |
A0..A17 |
ext_a0..ext_a17 |
| |
|
|
HIF_D0..2 |
A18..A20 |
ext_a18..ext_a20 |
| 1011 |
22 |
4M |
HIF_A0..17 |
A0..A17 |
ext_a0..ext_a17 |
| |
|
|
HIF_D0..3 |
A18..A21 |
ext_a18..ext_a21 |
| 1100 |
23 |
8M |
HIF_A0..17 |
A0..A17 |
ext_a0..ext_a17 |
| |
|
|
HIF_D0..4 |
A18..A22 |
ext_a18..ext_a22 |
| 1101 |
24 |
16M |
HIF_A0..17 |
A0..A17 |
ext_a0..ext_a17 |
| |
|
|
HIF_D0..5 |
A18..A23 |
ext_a18..ext_a23 |
| 1110 |
25 |
32M |
HIF_A0..17 |
A0..A17 |
ext_a0..ext_a17 |
| |
|
|
HIF_D0..6 |
A18..A24 |
ext_a18..ext_a24 |
|
| 7 |
"0"
|
en_hif_sdram_mi
|
Enable HIF IOs for SDRAM Memory Interface configuration. HIF-SDRAM Chip-Select is generated on HIF_CSN when this bit is set. ExtBus Chip-Select area 0 is not available then. Ready-Signal for ExtBus is never available when SDRAM is enabled here. If enabled following IOs are used for SDRAM (netX90, partial shared with SRAM/FLASH ctrl signals): |
| netX90 IO |
Function |
Comment |
| HIF_A0..12 |
SD_A0..12 |
Shared SDRAM/FLASH/SRAM address lines, small SDRAM devices do not need all lines (sel_hif_a_width). |
| MII1_RXER |
SD_D0 |
Lower data byte bit 0. Shared SDRAM/FLASH/SRAM data lines. |
| MII1_CRS |
SD_D1 |
Lower data byte bit 1. Shared SDRAM/FLASH/SRAM data lines. |
| MII1_COL |
SD_D2 |
Lower data byte bit 2. Shared SDRAM/FLASH/SRAM data lines. |
| PHY0_LED_LINK_IN |
SD_D3 |
Lower data byte bit 3. Shared SDRAM/FLASH/SRAM data lines. |
| PHY1_LED_LINK_IN |
SD_D4 |
Lower data byte bit 4. Shared SDRAM/FLASH/SRAM data lines. |
| MII0_TXEN |
SD_D5 |
Lower data byte bit 5. Shared SDRAM/FLASH/SRAM data lines. |
| MII0_COL |
SD_D6 |
Lower data byte bit 6. Shared SDRAM/FLASH/SRAM data lines. |
| MII0_CRS |
SD_D7 |
Lower data byte bit 7. Shared SDRAM/FLASH/SRAM data lines. |
| HIF_D0..7 |
SD_D8..15 |
Upper data byte, Shared SDRAM/FLASH/SRAM data lines. |
| HIF_A13..14 |
SD_BA0..1 |
Only during SDRAM access, usable as FLASH/SRAM A13..14 simultaneously. |
| HIF_A15 |
SD_RASN |
Only during SDRAM access, usable as FLASH/SRAM A15 simultaneously. |
| HIF_A16 |
SD_CASN |
Only during SDRAM access, usable as FLASH/SRAM A16 simultaneously. |
| HIF_A17 |
SD_DQM0N |
Only during SDRAM access, usable as FLASH/SRAM A17 simultaneously. |
| HIF_BHEN |
SD_DQM1N |
Only during SDRAM access, usable as FLASH/SRAM BHEN simultaneously. |
| HIF_WRN |
SD_WEN |
Only during SDRAM access, usable as FLASH/SRAM nWR simultaneously. |
| HIF_CSN |
SD_CSN |
ExtBus CS0 not available |
| HIF_RDY |
SD_CKE |
ExtBus Ready never available when SDRAM enabled |
| HIF_SDCLK |
SD_CLK |
HIF SDRAM clock, ExtBus CS2 not available |
Note: HIF_A lines used for SDRAM will always be driven when this bit is set. This does not depend on programmed value of 'sel_hif_a_width' bit field. However 'sel_hif_a_width' must be set wide enough for SDRAM row and column addressing (depending on used SDRAM device). |
|
| 6 - 5 |
"11"
|
hif_mi_cfg
|
Global HIF IO Memory Interface usage configuration. Extensionbus/HIF-Memory-Interface and must be enabled and data width selected here before memory devices like SRAM/FLASH/SDRAM can be used on HIF. Settings: |
00:
|
HIF IOs are used as 8 bit MI. Minimally used HIF IOs: HIF_A0..10, HIF_RDN, HIF_WRN + 1 Chip-select. Other HIF IOs can be used for non-MI functions (e.g. MMIO8..15, sDPM0 or MLED4..11). Up to 3 Chip-Selects are provided (they are PIO by default, view notes): |
| 01: |
HIF IOs are used as 16 bit MI, HIF_D0..7 are additionally used for the upper data byte. |
| 10: |
reserved |
| 11: |
No MI usage. HIF IOs can be used as PIOs or for parallel DPM. |
HIF Extension-bus signal mapping for SRAM/FLASH or SDRAM: |
| IO |
MI8 |
MI16 |
SDRAM8 |
SDRAM16 |
| HIF_A0 |
A0 |
BE0/A0 |
A0 |
A0 |
| HIF_A1 |
A1 |
A1 |
A1 |
A1 |
| HIF_A2 |
A2 |
A2 |
A2 |
A2 |
| HIF_A3 |
A3 |
A3 |
A3 |
A3 |
| HIF_A4 |
A4 |
A4 |
A4 |
A4 |
| HIF_A5 |
A5 |
A5 |
A5 |
A5 |
| HIF_A6 |
A6 |
A6 |
A6 |
A6 |
| HIF_A7 |
A7 |
A7 |
A7 |
A7 |
| HIF_A8 |
A8 |
A8 |
A8 |
A8 |
| HIF_A9 |
A9 |
A9 |
A9 |
A9 |
| HIF_A10 |
A10 |
A10 |
A10 |
A10 |
| HIF_A11 |
(n2) A11 |
(n2) A11 |
(n2) A11 |
(n2) A11 |
| HIF_A12 |
(n2) A12 |
(n2) A12 |
(n2) A12 |
(n2) A12 |
| HIF_A13 |
(n2) A13 |
(n2) A13 |
BA0 |
BA0 |
| HIF_A14 |
(n2) A14 |
(n2) A14 |
(n2) BA1 |
(n2) BA1 |
| HIF_A15 |
(n2) A15 |
(n2) A15 |
RAS |
RAS |
| HIF_A16 |
(n2) A16 |
(n2) A16 |
CAS |
CAS |
| HIF_A17 |
(n2) A17 |
(n2) A17 |
DQM0 |
DQM0 |
| |
|
|
|
|
| MII1_RXER |
D0 |
D0 |
D0 |
D0 |
| MII1_CRS |
D1 |
D1 |
D1 |
D1 |
| MII1_COL |
D2 |
D2 |
D2 |
D2 |
| PHY0_LED_LINK_IN |
D3 |
D3 |
D3 |
D3 |
| PHY1_LED_LINK_IN |
D4 |
D4 |
D4 |
D4 |
| MII0_TXEN |
D5 |
D5 |
D5 |
D5 |
| MII0_COL |
D6 |
D6 |
D6 |
D6 |
| MII0_CRS |
D7 |
D7 |
D7 |
D7 |
| HIF_D0 |
(n1) |
D8 |
(n1) |
D8 |
| HIF_D1 |
(n1) |
D9 |
(n1) |
D9 |
| HIF_D2 |
(n1) |
D10 |
(n1) |
D10 |
| HIF_D3 |
(n1) |
D11 |
(n1) |
D11 |
| HIF_D4 |
(n1) |
D12 |
(n1) |
D12 |
| HIF_D5 |
(n1) |
D13 |
(n1) |
D13 |
| HIF_D6 |
(n1) |
D14 |
(n1) |
D14 |
| HIF_D7 |
(n1) |
D15 |
(n1) |
D15 |
| |
|
|
|
|
| HIF_BHEN |
(n1) |
BHE/BE1 |
(n1) |
DQM1 |
| HIF_CSN |
CS0 |
CS0 |
CSN |
CSN |
| HIF_RDN |
RDN |
RDN |
|
|
| HIF_WRN |
WRN |
WRN |
WEN |
WEN |
| HIF_RDY |
(n2) RDY |
(n2) RDY |
CKE |
CKE |
| HIF_DIRQ |
CS1 |
CS1 |
|
|
| HIF_SDCLK |
CS2 |
CS2 |
CLK |
CLK |
Table Notes: (n1): IOs could be used for other purpose, e.g. for serial DPM0, MMIO (refer to main pinning table). (n2): Optional, (depends on further configuration, e.g. 'sel_hif_a_width' bit-field). |
| Note: |
8 and 16 bit SRAM and SDRAM devices can be shared. |
Note:
|
Configuration of single SRAM/FLASH Chip-Select usage must be done additionally in HIF related ASYNCMEM_CTRL address area. By default, all Chip-Selects are disabled and available for PIO usage. If any external memory is used, Chip-Select configuration must be done before the first access to external memory. Otherwise netX or memory devices could be damaged. No data width must be configured in the ASYNCMEM_CTRL regsiters, which exceeds globally enabled data width of this bit-field. |
| Note: |
If upper address lines above HIF_A10 are not used as PIOs, this must be configured in bits 'sel_hif_a_width'. |
Note: |
SDRAM Chip-Select is multiplexed with SRAM/FLASH Chip-Select 0 on HIF_CSN. If 'en_hif_sdram_mi' is set and SRAM/FLASH Chip-Select 0 enabled in the ASYNCMEM_CTRL address area, SDRAM Chip-Select gains priority and SRAM/FLASH Chip-Select 0 will not be available. |
|
| 4 |
"0"
|
en_sdpm1
|
| Enables the 2nd serial DPM for netX90. |
| 0: |
2nd serial DPM is disabled. |
| 1: |
2nd serial DPM is enabled. |
Note: It is possible to enable the 2nd serial DPM stand-alone or together with the normal DPM in serial mode (i.e. both bits 'sel_hif_dpm' and 'sel_dpm_serial' set). It is not possible to use the 2nd serial DPM together with the first DPM in parallel mode as they use the same IOs (the 2nd DPM does not provide the parallel mode). Note: The mode of the 2nd serial DPM is same as for the first DPM (programmed by the bits 'sel_dpm_serial_spo' and 'sel_dpm_serial_sph') |
|
| 3 |
"0"
|
sel_dpm_serial_spo
|
| serial DPM mode SPI clock polarity selection (sel_hif_dpm and sel_dpm_serial must be set) |
| 0: |
Serial clock idle state is low. |
| 1: |
Serial clock idle state is high. |
|
| 2 |
"0"
|
sel_dpm_serial_sph
|
| serial DPM mode SPI clock phase selection (sel_hif_dpm and sel_dpm_serial must be set) |
| 0: |
Serial data sampling on first serial clock edge. |
| 1: |
Serial data sampling on second serial clock edge. |
|
| 1 |
"0"
|
sel_dpm_serial
|
serial (SPI) DPM mode selection (ignored if sel_hif_dpm not set). There are 2 independent serial DPM interfaces for netX90. They can be used together, e.g. one for cyclic and one for acyclic data) or stand-alone. The 1st sDPM (sDPM0) can always be used together with external memory (even 16bit mode). sDPM1 can only be used with an 8 bit MI. The pinning positions of serial DPM interfaces are provided by the main pinning table: The pinning-functions "dpm0_spi*" represent sDPM0, pinning-functions "dpm1_spi*" represent sDPM1. Note: For parallel DPM, the IRQ signals to the host are located on HIF_DIRQ and HIF_SDCLK (DPM0 only). When external SDRAM is used (en_hif_sdram_mi) the IRQ on HIF_SDCLK is not available). For serial DPM the IRQs are located on different IOs (refer to main pinning table). |
|
| 0 |
"0"
|
sel_hif_dpm
|
| select DPM mode for HIF (serial or parallel) |
| Note: |
For parallel DPM IO configuration use config registers in address area DPM. |
| Note: |
Parallel DPM fast/service IRQ functionality (SIRQ/FIQ) on HIF_SDCLK is controlled by en_hif_sdram_mi bit |
| Note: |
For parallel DPM host IRQs can be generated on HIF_DIRQ and HIF_SDCLK IOs. |
| Note: |
For parallel DPM HIF PIO function muse be configured inside 'dpm_pio_cfg' registers for all HIF IOs. |
|
| hif_pio_cfg |
| HIF PIO Mode configuration register. |
|
R/W
|
0x80000008
|
Address : 0xff401484
|
Bits |
Reset value |
Name |
Description |
| 31 |
"1"
|
filter_irqs
|
Filtering of HIF PIO inputs for IRQ generation. By default filtering is applied on HIF PIO inputs before IRQ generation. 0 Spikes on PIOs will not be suppressed for HIF PIO IRQ generation. 1 Spikes up to 10ns on HIF PIOs will be suppressed by sample stages for HIF PIO IRQ generation. That causes 10ns additionally IRQ latency. |
|
| 30 - 28 |
0
|
-
|
reserved |
| 27 - 26 |
"00"
|
irq_hif_dirq_cfg
|
| HIF_DIRQ IRQ input configuration |
| Mode |
Function |
| 00 |
low level active IRQ |
| 01 |
high level active IRQ |
| 10 |
falling edge active IRQ |
| 11 |
rising edge active IRQ |
For IRQ usage this IO should be in PIO input mode, (programmed in the 'hif_io_cfg' register or PIO-configuration registers of the DPM module). For input its PIO output enable must be programmed to '0'. Spikes on related PIO can be suppressed by 'filter_irqs' bit. |
| Note: |
HIF PIO IRQs can be assigned and monitored in hif_pio_irq registers further down. |
| Note: |
The HIF IRQ input bit fields are reordered since netx51/52 |
|
| 25 - 22 |
0
|
-
|
reserved |
| 21 - 20 |
"00"
|
irq_hif_a17_cfg
|
HIF_A17 IRQ input configuration For coding refer to irq_hif_dirq_cfg bit-field. |
|
| 19 - 18 |
"00"
|
irq_hif_a16_cfg
|
HIF_A16 IRQ input configuration For coding refer to irq_hif_dirq_cfg bit-field. |
|
| 17 - 16 |
"00"
|
irq_hif_d12_cfg
|
HIF_D12 (DPM_SPI_DIRQ/SPM_DIRQ) IRQ input configuration For coding refer to irq_hif_dirq_cfg bit-field. |
|
| 15 - 4 |
0
|
-
|
reserved |
| 3 |
"1"
|
filter_en_in
|
HIF PIO Input sampling enable (EN_IN) filter. 0 Spikes will not be suppressed for EN_IN. 1 Spikes up to 10ns will be suppressed by HIF PIO EN_IN sample stages. Note: Spike suppression can only done for EN_IN input. There is no spike suppression for data inputs of 'hif_pio_in0,1' registers. |
|
| 2 |
0
|
-
|
reserved |
| 1 - 0 |
"00"
|
in_ctrl
|
HIF PIO Input sampling mode. HIF input status registers hif_pio_in0,1 can be configured by programming these bits. |
| Mode |
Function |
| 00 |
pio_in registers show HIF IO states sampled at power-on-reset release. |
| 01 |
HIF IO states are sampled continuously (each netX system clock cycle) |
| 10 |
HIF IO states are sampling is done each system clock cycle when enable signal EN_IN (MMIO-function) level is low. |
| 11 |
HIF IO states are sampling is done each system clock cycle when enable signal EN_IN (MMIO-function) level is high. |
| others |
reserved |
Note: Settings 00 to 11 are netX 50 compatible (netX 50 register DPM_ARM_IO_MODE1.IN_CONTROL). Note: Power-on-reset states will not be lost when 'in_ctrl' is set to a value not 0. Note: Power-on-reset states can be used to read pullup/down configuration of HIF-IOs. However, be careful using reset sampled values of HIF data lines when SDRAM is connected: When Reset is done during SDRAM read access, SDRAM device will keep driving data bus. Pull-up/down values will be overdriven by that. |
|
| hif_pio_out0 |
HIF PIO Output State Configuration Register 0. All unused HIF signals can be used as PIOs. IOs will be driven to the programmed state if appropriate enable bit is set in hif_pio_oe0 register. PIO mode driving of HIF-IOs used in current HIF/EXT_BUS Memory Interface configuration is not possible. ----------------------- Note: This register can be read or written by 8, 16 or 32 bit access. |
|
R/W
|
0x00000000
|
Address : 0xff401488
|
Bits |
Reset value |
Name |
Description |
| 31 - 16 |
0
|
-
|
reserved |
| 15 |
"0"
|
hif_d15
|
| PIO output drive level of HIF_D15 signal. |
|
| 14 |
"0"
|
hif_d14
|
| PIO output drive level of HIF_D14 signal. |
|
| 13 |
"0"
|
hif_d13
|
| PIO output drive level of HIF_D13 signal. |
|
| 12 |
"0"
|
hif_d12
|
| PIO output drive level of HIF_D12 signal. |
|
| 11 |
"0"
|
hif_d11
|
| PIO output drive level of HIF_D11 signal. |
|
| 10 |
"0"
|
hif_d10
|
| PIO output drive level of HIF_D10 signal. |
|
| 9 |
"0"
|
hif_d9
|
| PIO output drive level of HIF_D9 signal. |
|
| 8 |
"0"
|
hif_d8
|
| PIO output drive level of HIF_D8 signal. |
|
| 7 |
"0"
|
hif_d7
|
| PIO output drive level of HIF_D7 signal. |
|
| 6 |
"0"
|
hif_d6
|
| PIO output drive level of HIF_D6 signal. |
|
| 5 |
"0"
|
hif_d5
|
| PIO output drive level of HIF_D5 signal. |
|
| 4 |
"0"
|
hif_d4
|
| PIO output drive level of HIF_D4 signal. |
|
| 3 |
"0"
|
hif_d3
|
| PIO output drive level of HIF_D3 signal. |
|
| 2 |
"0"
|
hif_d2
|
| PIO output drive level of HIF_D2 signal. |
|
| 1 |
"0"
|
hif_d1
|
| PIO output drive level of HIF_D1 signal. |
|
| 0 |
"0"
|
hif_d0
|
| PIO output drive level of HIF_D0 signal. |
|
| hif_pio_out1 |
HIF PIO Output State Configuration Register 1. All unused HIF signals can be used as PIOs. IOs will be driven to the programmed state if appropriate enable bit is set in hif_pio_oe1 register. PIO mode driving of HIF-IOs used in current HIF/EXT_BUS Memory Interface configuration is not possible. ----------------------- Note: This register can be read or written by 8, 16 or 32 bit access. |
|
R/W
|
0x00000000
|
Address : 0xff40148c
|
Bits |
Reset value |
Name |
Description |
| 31 |
"0"
|
hif_sdclk
|
| PIO output drive level of HIF_SDCLK signal. |
|
| 30 |
"0"
|
hif_dirq
|
| PIO output drive level of HIF_DIRQ signal. |
|
| 29 |
"0"
|
hif_rdy
|
| PIO output drive level of HIF_RDY signal. |
|
| 28 |
"0"
|
hif_csn
|
| PIO output drive level of HIF_CSN signal. |
|
| 27 |
"0"
|
hif_wrn
|
| PIO output drive level of HIF_WRN signal. |
|
| 26 |
"0"
|
hif_rdn
|
| PIO output drive level of HIF_RDN signal. |
|
| 25 |
"0"
|
hif_bhen
|
| PIO output drive level of HIF_BHEN signals. |
|
| 24 - 18 |
0
|
-
|
reserved |
| 17 |
"0"
|
hif_a17
|
| PIO output drive level of HIF_A17 signal. |
|
| 16 |
"0"
|
hif_a16
|
| PIO output drive level of HIF_A16 signal. |
|
| 15 |
"0"
|
hif_a15
|
| PIO output drive level of HIF_A15 signal. |
|
| 14 |
"0"
|
hif_a14
|
| PIO output drive level of HIF_A14 signal. |
|
| 13 |
"0"
|
hif_a13
|
| PIO output drive level of HIF_A13 signal. |
|
| 12 |
"0"
|
hif_a12
|
| PIO output drive level of HIF_A12 signal. |
|
| 11 |
"0"
|
hif_a11
|
| PIO output drive level of HIF_A11 signal. |
|
| 10 |
"0"
|
hif_a10
|
| PIO output drive level of HIF_A10 signal. |
|
| 9 |
"0"
|
hif_a9
|
| PIO output drive level of HIF_A9 signal. |
|
| 8 |
"0"
|
hif_a8
|
| PIO output drive level of HIF_A8 signal. |
|
| 7 |
"0"
|
hif_a7
|
| PIO output drive level of HIF_A7 signal. |
|
| 6 |
"0"
|
hif_a6
|
| PIO output drive level of HIF_A6 signal. |
|
| 5 |
"0"
|
hif_a5
|
| PIO output drive level of HIF_A5 signal. |
|
| 4 |
"0"
|
hif_a4
|
| PIO output drive level of HIF_A4 signal. |
|
| 3 |
"0"
|
hif_a3
|
| PIO output drive level of HIF_A3 signal. |
|
| 2 |
"0"
|
hif_a2
|
| PIO output drive level of HIF_A2 signal. |
|
| 1 |
"0"
|
hif_a1
|
| PIO output drive level of HIF_A1 signal. |
|
| 0 |
"0"
|
hif_a0
|
| PIO output drive level of HIF_A0 signal. |
|
| hif_pio_oe0 |
HIF PIO Output Enable Configuration Register 0. All unused HIF signals can be used as PIOs. IOs will be driven to the output state programmed in in hif_pio_out0 register. PIO mode driving of HIF-IOs used in current HIF/EXT_BUS Memory Interface configuration is not possible. ----------------------- Note: This register can be read or written by 8, 16 or 32 bit access. |
|
R/W
|
0x00000000
|
Address : 0xff401490
|
Bits |
Reset value |
Name |
Description |
| 31 - 16 |
0
|
-
|
reserved |
| 15 |
"0"
|
hif_d15
|
| PIO output enable of HIF_D15 signal. |
|
| 14 |
"0"
|
hif_d14
|
| PIO output enable of HIF_D14 signal. |
|
| 13 |
"0"
|
hif_d13
|
| PIO output enable of HIF_D13 signal. |
|
| 12 |
"0"
|
hif_d12
|
| PIO output enable of HIF_D12 signal. |
|
| 11 |
"0"
|
hif_d11
|
| PIO output enable of HIF_D11 signal. |
|
| 10 |
"0"
|
hif_d10
|
| PIO output enable of HIF_D10 signal. |
|
| 9 |
"0"
|
hif_d9
|
| PIO output enable of HIF_D9 signal. |
|
| 8 |
"0"
|
hif_d8
|
| PIO output enable of HIF_D8 signal. |
|
| 7 |
"0"
|
hif_d7
|
| PIO output enable of HIF_D7 signal. |
|
| 6 |
"0"
|
hif_d6
|
| PIO output enable of HIF_D6 signal. |
|
| 5 |
"0"
|
hif_d5
|
| PIO output enable of HIF_D5 signal. |
|
| 4 |
"0"
|
hif_d4
|
| PIO output enable of HIF_D4 signal. |
|
| 3 |
"0"
|
hif_d3
|
| PIO output enable of HIF_D3 signal. |
|
| 2 |
"0"
|
hif_d2
|
| PIO output enable of HIF_D2 signal. |
|
| 1 |
"0"
|
hif_d1
|
| PIO output enable of HIF_D1 signal. |
|
| 0 |
"0"
|
hif_d0
|
| PIO output enable of HIF_D0 signal. |
|
| hif_pio_oe1 |
HIF PIO Output Enable Configuration Register 1. All unused HIF signals can be used as PIOs. IOs will be driven to the output state programmed in in hif_pio_out1 register. PIO mode driving of HIF-IOs used in current HIF/EXT_BUS Memory Interface configuration is not possible. ----------------------- Note: This register can be read or written by 8, 16 or 32 bit access. |
|
R/W
|
0x00000000
|
Address : 0xff401494
|
Bits |
Reset value |
Name |
Description |
| 31 |
"0"
|
hif_sdclk
|
| PIO output enable of HIF_SDCLK signal. |
|
| 30 |
"0"
|
hif_dirq
|
| PIO output enable of HIF_DIRQ signal. |
|
| 29 |
"0"
|
hif_rdy
|
| PIO output enable of HIF_RDY signal. |
|
| 28 |
"0"
|
hif_csn
|
| PIO output enable of HIF_CSN signal. |
|
| 27 |
"0"
|
hif_wrn
|
| PIO output enable of HIF_WRN signal. |
|
| 26 |
"0"
|
hif_rdn
|
| PIO output enable of HIF_RDN signal. |
|
| 25 |
"0"
|
hif_bhen
|
| PIO output enable of HIF_BHEN signals. |
|
| 24 - 18 |
0
|
-
|
reserved |
| 17 |
"0"
|
hif_a17
|
| PIO output enable of HIF_A17 signal. |
|
| 16 |
"0"
|
hif_a16
|
| PIO output enable of HIF_A16 signal. |
|
| 15 |
"0"
|
hif_a15
|
| PIO output enable of HIF_A15 signal. |
|
| 14 |
"0"
|
hif_a14
|
| PIO output enable of HIF_A14 signal. |
|
| 13 |
"0"
|
hif_a13
|
| PIO output enable of HIF_A13 signal. |
|
| 12 |
"0"
|
hif_a12
|
| PIO output enable of HIF_A12 signal. |
|
| 11 |
"0"
|
hif_a11
|
| PIO output enable of HIF_A11 signal. |
|
| 10 |
"0"
|
hif_a10
|
| PIO output enable of HIF_A10 signal. |
|
| 9 |
"0"
|
hif_a9
|
| PIO output enable of HIF_A9 signal. |
|
| 8 |
"0"
|
hif_a8
|
| PIO output enable of HIF_A8 signal. |
|
| 7 |
"0"
|
hif_a7
|
| PIO output enable of HIF_A7 signal. |
|
| 6 |
"0"
|
hif_a6
|
| PIO output enable of HIF_A6 signal. |
|
| 5 |
"0"
|
hif_a5
|
| PIO output enable of HIF_A5 signal. |
|
| 4 |
"0"
|
hif_a4
|
| PIO output enable of HIF_A4 signal. |
|
| 3 |
"0"
|
hif_a3
|
| PIO output enable of HIF_A3 signal. |
|
| 2 |
"0"
|
hif_a2
|
| PIO output enable of HIF_A2 signal. |
|
| 1 |
"0"
|
hif_a1
|
| PIO output enable of HIF_A1 signal. |
|
| 0 |
"0"
|
hif_a0
|
| PIO output enable of HIF_A0 signal. |
|
| hif_pio_in0 |
HIF PIO Input State Register 0. IO input states can be read here regardless whether IO is used in current HIF/EXT_BUS Memory Interface configuration. HIF IO sampling behaviour can be programmed by 'in_ctrl' bits of 'hif_pio_cfg' register. |
|
R
|
Address : 0xff401498
|
Bits |
Name |
Description |
| 31 - 16 |
-
|
reserved |
| 15 |
hif_d15
|
| PIO input state of HIF_D15 signal. |
|
| 14 |
hif_d14
|
| PIO input state of HIF_D14 signal. |
|
| 13 |
hif_d13
|
| PIO input state of HIF_D13 signal. |
|
| 12 |
hif_d12
|
| PIO input state of HIF_D12 signal. |
|
| 11 |
hif_d11
|
| PIO input state of HIF_D11 signal. |
|
| 10 |
hif_d10
|
| PIO input state of HIF_D10 signal. |
|
| 9 |
hif_d9
|
| PIO input state of HIF_D9 signal. |
|
| 8 |
hif_d8
|
| PIO input state of HIF_D8 signal. |
|
| 7 |
hif_d7
|
| PIO input state of HIF_D7 signal. |
|
| 6 |
hif_d6
|
| PIO input state of HIF_D6 signal. |
|
| 5 |
hif_d5
|
| PIO input state of HIF_D5 signal. |
|
| 4 |
hif_d4
|
| PIO input state of HIF_D4 signal. |
|
| 3 |
hif_d3
|
| PIO input state of HIF_D3 signal. |
|
| 2 |
hif_d2
|
| PIO input state of HIF_D2 signal. |
|
| 1 |
hif_d1
|
| PIO input state of HIF_D1 signal. |
|
| 0 |
hif_d0
|
| PIO input state of HIF_D0 signal. |
|
| hif_pio_in1 |
HIF PIO Input State Register 1. IO input states can be read here regardless whether IO is used in current HIF/EXT_BUS Memory Interface configuration. |
|
R
|
Address : 0xff40149c
|
Bits |
Name |
Description |
| 31 |
hif_sdclk
|
| PIO input state of HIF_SDCLK signal. |
|
| 30 |
hif_dirq
|
| PIO input state of HIF_DIRQ signal. |
|
| 29 |
hif_rdy
|
| PIO input state of HIF_RDY signal. |
|
| 28 |
hif_csn
|
| PIO input state of HIF_CSN signal. |
|
| 27 |
hif_wrn
|
| PIO input state of HIF_WRN signal. |
|
| 26 |
hif_rdn
|
| PIO input state of HIF_RDN signal. |
|
| 25 |
hif_bhen
|
| PIO input state of HIF_BHEN signal. |
|
| 24 - 18 |
-
|
reserved |
| 17 |
hif_a17
|
| PIO input state of HIF_A17 signal |
|
| 16 |
hif_a16
|
| PIO input state of HIF_A16 signal |
|
| 15 |
hif_a15
|
| PIO input state of HIF_A15 signal. |
|
| 14 |
hif_a14
|
| PIO input state of HIF_A14 signal. |
|
| 13 |
hif_a13
|
| PIO input state of HIF_A13 signal. |
|
| 12 |
hif_a12
|
| PIO input state of HIF_A12 signal. |
|
| 11 |
hif_a11
|
| PIO input state of HIF_A11 signal. |
|
| 10 |
hif_a10
|
| PIO input state of HIF_A10 signal. |
|
| 9 |
hif_a9
|
| PIO input state of HIF_A9 signal. |
|
| 8 |
hif_a8
|
| PIO input state of HIF_A8 signal. |
|
| 7 |
hif_a7
|
| PIO input state of HIF_A7 signal. |
|
| 6 |
hif_a6
|
| PIO input state of HIF_A6 signal. |
|
| 5 |
hif_a5
|
| PIO input state of HIF_A5 signal. |
|
| 4 |
hif_a4
|
| PIO input state of HIF_A4 signal. |
|
| 3 |
hif_a3
|
| PIO input state of HIF_A3 signal. |
|
| 2 |
hif_a2
|
| PIO input state of HIF_A2 signal. |
|
| 1 |
hif_a1
|
| PIO input state of HIF_A1 signal. |
|
| 0 |
hif_a0
|
| PIO input state of HIF_A0 signal. |
|
| extsram0_ctrl |
Control Register for external bus interface and wait-states for chip-select 0 area. External addresses always be byte addresses. For additional byte-enables/DQM signals view netX pinout documentation. For all wait state configuration 1 cycle is 1 netx system clock cycle, i.e. 10ns for netX running on 100MHz at normal operation. |
| Note: |
Pause and data width configuration is compatible to netx500/100 and netx50. |
| Note: |
This register can be protected by the register MODULE_FIREWALL_CTRL.firewall_cfg_hifmemctrl. |
|
R/W
|
0x0303033f
|
Address : 0xff401500
|
Bits |
Reset value |
Name |
Description |
| 31 |
"0"
|
ready_en
|
| 0: |
Access timing is only controlled by Wait-State and Pre/Post-Pause configuration above. |
1:
|
Use external ready input to stretch Wait-State phase. Wait-States and Pre/Post-Pauses will be done according to configuration above. However Wait-State phase can be extended by an external device by holding netX ready input inactive. Data access cycle is done after external device sets netX ready input to active state. |
Note:
|
An external device must assert ready to inactive state while Wait-States phase is running (defined by ws in this register). Ready input sampling and latency takes 20ns. Hence ws must be set to a value greater than 2 for proper functionality using ready. The value must be increased if there is a ready setup time of the ready generating external device. |
| Note: |
For detailed ready input configuration and handling view ext_rdy_cfg register description. |
|
| 30 |
"0"
|
static_cs
|
| Static chip-select signal generation. |
| 0: |
No static chip-select signal generation |
| 1: |
Static chip-select signal generation enabled (e.g. for i80 displays). |
All chip-select signals will return to inactive (high) level when no access is performed by default (when this bit is not set). However some devices (e.g. some i80 displays) require subsequent access without chip-select becoming inactive in between. For that purpose 'static_cs' bit can be set. Chip-select will remain active once an access was performed to this chip-select address-area until an access targets another chip-select address-area. Hence, for proper i80 sequence, software must avoid that the current access sequence is interrupted by an access to another chip-select area (including SDRAM access of this memory interface), e.g. cause by interrupt execution, other masters or SDRAM refresh generation. To release chip-select to idle state, - access another chip-select area of this memory interface or - clear the 'static_cs' bit of this chip-select area or - disable this chip-select area (set 'dwidth' to '11'). |
Note: |
Clearing the 'static_cs'-bit while an access is running to this chip-select area will have no impact on the current access. However disabling the whole chip-select area while an access is running could lead to an invalid access. |
| Note: |
This is a new feature since netx51/52. |
|
| 29 |
"0"
|
no_p_post_seq_rd
|
| No Post-Pause insertion between sequential reads. |
| 0: |
Post-Pause will be inserted after each read access. |
| 1: |
Disable Post-Pause between sequential reads. |
Note: Default setting '0' is for netx100/50 compatibility only. Typically there is no need of Post-Pause insertion between sequential reads. A Post-Pause will always be inserted if the next access addresses another chip-select area, is a write access or is not predictable by the memory controller. |
|
| 28 |
"0"
|
no_p_pre_seq_rd
|
| No Pre-Pause insertion between sequential reads. |
| 0: |
Pre-Pause will be inserted after each read access. |
| 1: |
Disable Pre-Pause between sequential reads. |
Note: default setting '0' is for netx100/50 compatibility only. Typically there is no need of Pre-Pause insertion between sequential reads. |
|
| 27 - 26 |
0
|
-
|
reserved |
| 25 - 24 |
"11"
|
dwidth
|
Data bus width of ExtMem0 area. 00 : 8bit memory device connected to this chip-select address area. |
| 01 : |
16bit memory device connected to this chip-select address area. |
| 10 : |
reserved. |
| 11 : |
memory is disabled, related chip-select signal can be used for other purpose (e.g. as PIO). |
Note: |
Chip-selects are disabled by default. However it could be possible that they are enabled during netX boot phase to search for boot device. View bootloader information for this. |
| Note: |
When chip-select is disabled related netX IO can be used for other functions. View memory interface multiplex options or netX pinning for more information. |
Note: |
All access to disabled chip-select area will be ignored. No wait will be generated to requesting master. Read data will be unvalid. External MI signal states will not change. |
|
| 23 - 18 |
0
|
-
|
reserved |
| 17 - 16 |
"11"
|
p_post
|
Post-Pause (0 - 3 cycles) of ExtMem0 area. Additional wait-states to match memory device Output-Disable or Address-Hold times. If programmed value is not 0, this Post-Pause will be inserted at external access end after Wait-State phase and data access cycle. Address, chip-select and byte-enable signals will remain stable in this phase. but nRD-signal and nWR-signal will become inactive high. After write access netX memory controller will always insert at least 1 Post-Pause cycle to generate positive edge on nWR-signal. |
|
| 15 - 10 |
0
|
-
|
reserved |
| 9 - 8 |
"11"
|
p_pre
|
Pre-Pause (0 - 3 cycles) of ExtMem0 area. Additional wait-states to match memory device setup times. If programmed value is not 0, this Pre-Pause will be inserted at external access start before Wait-State phase is started. Address, chip-select and byte-enable signals will be stable in this phase. but nRD-signal and nWR-signal remains inactive high. Note: The Pre-Pause could be extended by 1 cycle under certain conditions by netX memory controller. E.g. this becomes necessary for some access sequences (e.g. write-after-read or chip-select area change) to avoid collisions on external data bus. |
|
| 7 - 6 |
0
|
-
|
reserved |
| 5 - 0 |
"111111"
|
ws
|
Wait-States (0 - 63 cycles) of ExtMem0 area. During read access nRD-signal active low phase is ws+1. During write access nWR-signal active low phase is ws+1.. Address, chip-select and byte-enable signals remain stable in this phase. After ws wait-cycles have passed signals remain stable and final data-access cycle is done. To match memory device data access time tACC: program WS=ceil(tACC/10ns)-1. |
|
| ext_rdy_cfg |
| External Memory Ready Control Register. |
| Note: |
Timeout is generated if ready usage is enabled by the extsramX_ctrl registers and is not asserted to active state within 10us. |
| Note: |
This register can be protected by the register MODULE_FIREWALL_CTRL.firewall_cfg_hifmemctrl. |
|
R/W
|
0x00000001
|
Address : 0xff401520
|
Bits |
Reset value |
Name |
Description |
| 31 - 12 |
0
|
-
|
reserved |
| 11 |
"0"
|
rdy_to_dis
|
Ready Timeout Disable By default ready timeout is enabled. Timeout is generated if ready usage is enabled by the extsramX_ctrl registers and is not asserted to active state within 10us (1024 system clocks). If an external device requires even longer response time, ready timeout can be disabled by setting this bit. However be careful: If ready is not asserted anytime, netX system will stall. Escape from this can only be achieved by Hardware Reset (e.g. by system watchdog timeout). |
| 0: |
Ready timeout is enabled. |
| 1: |
Ready timeout is disabled. |
|
| 10 - 9 |
0
|
-
|
reserved |
| 8 |
"0"
|
rdy_to_irq_en
|
| 0: |
No IRQ generation in case of ready timeout. |
| 1: |
generate an IRQ in case of ready timeout. |
| Note: Ready Timeout IRQ is part of netX System Status IRQ (view system_status register in area asic_ctrl and VIC registers) |
|
| 7 - 6 |
0
|
-
|
reserved |
| 5 - 4 |
"00"
|
rdy_filter
|
Ready Input Filter. Ready input filtering is implemented to avoid false ready active detection especially if ready signal is not always driven and ready active state is realized by pull-up or down resistors. |
| 00: |
Ready active state is detected after ready signal is sampled once in active state (no filtering). |
| 01: |
Ready active state is detected after ready signal is consecutively sampled twice in active state. |
| 10: |
Ready active state is detected after ready signal is consecutively sampled 3 times in active state. |
| 11: |
Ready active state is detected after ready signal is consecutively sampled 4 times in active state. |
| Note: |
If ready is sampled in inactive state, active state counting will restart at zero. |
| Note: |
If ready input filering is enabled, access time will be increased at least by filter time (ready is sampled any 10ns). |
|
| 3 - 1 |
0
|
-
|
reserved |
| 0 |
"1"
|
rdy_act_level
|
| 0: |
Ready is active low / stall access while ready input is high. |
| 1: |
Ready is active high / stall access while ready input is low. |
|
| sdram_general_ctrl |
Control Register for external SDRAM access. For initializing procedure netX SDRAM controller view description of 'ctrl_en' bit inside this register. Note: This register can be protected by the register MODULE_FIREWALL_CTRL.firewall_cfg_hifmemctrl. |
|
R/W
|
0x01000001
|
Address : 0xff401540
|
Bits |
Reset value |
Name |
Description |
| 31 |
"0"
|
refresh_status
|
Refresh status flag. Refresh behaviour changed from netx100/500/50: SDRAM controller now has an additional high priority refresh mode (view refresh_mode bit description). There is no need to guarantee sufficient SDRAM refresh generation by checking this bit by software any longer (necessary for netx100/500/50 depending on application). It is only for information purpose for netX10 or later. This bit can be reset by writing '0' to it. Note: This bit is writable but can also be changed by hardware. |
|
| 30 |
-
|
sdram_ready
|
SDRAM ready. This bit is set to 1 if SDRAM is ready for access. If sdram_general_ctrl.ctrl_en == 0 or sdram_general_ctrl.sdram_pwdn == 0 sdram_ready will be low. It will be set to 1 after SDRAM has been initialized or after power down wake up. Note: This bit is a read only status flag. |
|
| 29 - 26 |
0
|
-
|
reserved |
| 25 - 24 |
"01"
|
refresh_mode
|
Refresh request generation mode. Refresh behaviour changed from netx100/500/50: SDRAM controller now has an additional high priority refresh mode. Refresh generation has lower priority than accesses on external memory interface normally. That means refreshes do not block data access. To avoid data loss under all conditions without checking critical situations by software a high priority refresh mode is implemented for netX10 and later: If there was too much traffic to SDRAM to run refreshes according to programmed refresh_mode the controller changes to high priority refresh mode automatically. In this mode the controller generates immediately as many refreshes as required to avoid imminent data loss. After that the controller falls back to low priority refresh generation automatically. In normal low priority refresh mode refreshes can be collected. That means single refreshes are not necessarily done in programmed average refresh interval (t_REFI in sdram_timing_ctrl register). However the controller ensures by hardware that t_REFI is kept as mean refresh interval for a certain number of subsequent refreshes. This number of refreshes that will be collected to a long term refresh sequence can be programmed in this bit field. The following refresh request generation mode can be programmed: |
| 00 : |
fix interval: expect one refresh any programmed refresh period (sdram_timing_ctrl.t_REFI) |
| 01 : |
collect up to 8 refreshes (default) |
| 10 : |
collect up to 16 refreshes |
| 11 : |
collect up to 2047 refreshes |
Note: Typically SDRAM devices do not require a fix refresh interval. Collecting more refreshes will lead to improved performance (as high priority refresh mode blocking normal access is entered more often when only few refreshes can be collected). Hence, it is recommended setting this bit field to '11' (collecting up to 2047 refreshes). Note: Entering high priority refresh mode typically occurs when SDRAM becomes system performance bottleneck. To detect this, a status bit (refresh_status) will be set when high priority refresh mode was entered. It can be used for debugging or system status information purpose. |
|
| 23 - 20 |
0
|
-
|
reserved |
| 19 |
"0"
|
ctrl_en
|
Global SDRAM controller enable. Note: The sdram_timing_ctrl and the sdram_mr register can only be changed while this bit is 0. Initializing and enabling SDRAM should be done as follows: |
A.
|
Special attention must be done before enabling SDRAM after netX reset without power supply was disabled (e.g. pressing some kind of reset button). In this case a reset could be done while a SDRAM read burst was performed. As SDRAM clock will be disabled immediately in case of reset external SDRAM device will keep driving data-lines. To free data lines at least 10 SDRAM clock cycles must be performed. This should be done by enabling (extclk_en-bit set and ctrl_en-bit set) the controller and disabling again (ctrl_en-bit cleared) before really enabling SDRAM and before any other access to external memory devices sharing SDRAM data-lines (e.g. parallel flash devices). |
B. |
If SDRAM was already enabled: Disable SDRAM controller by setting the ctrl_en-bit to 0. Ensure that no netX system master is trying to access SDRAM address area. Otherwise related master will be stalled (no ready) until re-enabling SDRAM. |
1. |
Configure the sdram_timing_ctrl register: All timing parameters of the t_* bit fields must be taken from SDRAM device data sheet. All other timing parameters like clock and sample phases are provided by Hilscher. |
2.
|
Configure the sdram_mr register: Typically only setting of correct CAS-Latency is required (CL2 or CL3 supported by netX SDRAM controller). CL2 provides better performance an should be preferred. Please read description of the sdram_mr register for further details. |
3. |
Configure the sdram_general_ctrl (this) register and enable the controller by setting the 'ctrl_en' bit. The values for 'banks', 'rows' and 'columns' depend on the used SDRAM device and must be taken from the related data sheet. |
| 4. |
Wait until 'sdram_ready' status bit is set before accessing SDRAM device. |
------------------------------------ After enable, the controller will run the following SDRAM initialisation procedure (100MHz, 1 cycle = 10ns). |
| command |
cycles |
time |
comment |
| NOP |
20050 |
200.5us |
running sd_clk (if extclk_en), *cs low, cke high) |
| PRECH ALL, NOP |
1+15 |
10ns + 150ns |
|
| 7x(AUTO REF, NOP) |
7x(1+31) |
7x(10ns + 310ns) |
|
| AUTO REF, NOP |
1+22 |
10ns + 220ns |
|
| LOAD MREG, NOP |
1+3 |
10ns + 30ns |
with settings done by the sdram_mr registers |
| ACTIVATE |
1 |
10ns |
first access if requested, sdram_ready will be set to 1 here |
------------------------------------ Attention: Accesses requested to SDRAM address area when the controller is not enabled or before SDRAM initialisation procedure was finished (before sdram_ready bit is 1) will be blocked (no ready). This could cause system freezing. Note: The external SDRAM clock will not run if the controller is disabled. |
|
| 18 |
"0"
|
extclk_en
|
| external SDRAM clock enable |
| 0 : |
SDRAM clock disabled (default) |
| 1 : |
SDRAM clock enabled |
Note: The external SDRAM clock will not run if the controller is disabled. |
|
| 17 |
"0"
|
sdram_pwdn
|
SDRAM power down If this bit is set, the controller will move SDRAM to power down self refresh mode (no data loss) and stop the external SDRAM clock. Return from power-down mode can be done by clearing this bit. |
|
| 16 |
"0"
|
dbus16
|
| 0 : |
SDRAM data bus is 8 bit wide (default) |
| 1 : |
SDRAM data bus is 16 bit wide |
|
| 15 - 11 |
0
|
-
|
reserved |
| 10 - 8 |
"000"
|
columns
|
| Number of SDRAM device columns and address lines. |
| 000 : |
256 columns, address lines A0..A7 (default) |
| 001 : |
512 columns, address lines A0..A8 |
| 010 : |
1k columns, address lines A0..A9 |
| 011 : |
2k columns, address lines A0..A9,A11 |
| 100 : |
4k columns, address lines A0..A9,A11,A12 |
|
| 7 - 6 |
0
|
-
|
reserved |
| 5 - 4 |
"00"
|
rows
|
| Number of SDRAM device rows and address lines. |
| 00 : |
2k rows, address lines A0..A10 (default) |
| 01 : |
4k rows, address lines A0..A11 |
| 10 : |
8k rows, address lines A0..A12 |
|
| 3 - 2 |
0
|
-
|
reserved |
| 1 - 0 |
"01"
|
banks
|
| Number of SDRAM device banks and address lines. |
| 00 : |
2 banks, address (BA0) |
| 01 : |
4 banks, address lines (BA1, BA0)(default) |
|
| sdram_timing_ctrl |
Control Register for external SDRAM access. Changes can only be done, if the SDRAM controller is disabled (sdram_general_ctrl.ctrl_en == 0) to avoid configuration problems. Please view description of 'ctrl_en' bit inside sdram_general_ctrl register for initializing-procedure of netX SDRAM controller. |
| Note: |
This register can be protected by the register MODULE_FIREWALL_CTRL.firewall_cfg_hifmemctrl. |
Note:
|
For some registers the reset-value is a reserved value. I.e. these registers must be programmed to another value than the reset-value at initialization (e.g. t_WR). The values with the remark "(default)" are the values which should be applicable for all SDRAM devices. However it is strongly recommended to set the values best-fitting the connected device as the default values typically lead to an immense performance penalty (e.g. t_RAS default is 10). |
|
R/W
|
0x0301f7f3
|
Address : 0xff401544
|
Bits |
Reset value |
Name |
Description |
| 31 - 29 |
0
|
-
|
reserved |
| 28 |
"0"
|
bypass_neg_delay
|
| Bypass data sample clock phase shift. |
| 0: |
use phase shifted (negative delayed) SDRAM loopback clock for data sampling. |
| 1: |
bypass phase shift logic for SDRAM data sampling. Use SDRAM loopback clock for data sampling. |
Bypass must be used for system clock frequencies <= 80MHz (rate_mull_add <= 0xC0). If this bit is programmed with '0' by software but system clock frequency is below 80MHz, it will be changed to '1' to enable bypass automatically. When system frequency is changed to a rate more than 80MHz, the bit is released to '0' again. This allows entering netX power save mode entry and leave without reconfiguring this bit by software. However take care that no SDRAM access is running at the moment of system clock frequency change around the 80MHz border. |
| Note: |
The bit will always remain '1' if it is programmed high. |
| Note: |
This bit is writable but can also be changed by hardware. |
|
| 27 |
0
|
-
|
reserved |
| 26 - 24 |
"011"
|
data_sample_phase
|
Data sample clock phase shift. 0..5: adjustable phase-shift for data sampling SDRAM loopback clock (clk_sdloopback) depending on external capacitive load and SDRAM access time (t_AC). The phase can be shifted in 1.25ns steps. clk_sdloopback will internally rise (sample SDRAM read data) at the data_sample_phase+4th clk400 edge after rise of external MEM_SDCLK (including external capacitive load). For correct settings, the delays depending on external capacitive have to be respected. Data sampling has to be done at least 8ns after internal changes of SDRAM ctrl-signals (MEM_SD*-signals, driven by clk_memsig). |
|
| 23 |
0
|
-
|
reserved |
| 22 - 20 |
"000"
|
mem_sdclk_phase
|
MEM_SDCLK phase shift. 0..5: adjustable phase-shift for external SDRAM clock depending on external capacitive load on MEM_SDCLK-signal to match SDRAM signals setup times. The phase can be shifted in 1.25ns steps. MEM_SDCLK will internally rise at the mem_sdclk_phase+1st clk400 edge after internal changes of SDRAM signals (MEM_SD*-signals, MI address and data buses driven by clk_memsig) For correct settings delays depending on external capacitive load have to be respected. Note: The phase shift logic was optimized. Since netX90: - the mem_sdclk_ssneg-bit is obsolete. - phase shift now can be done by (0..5)*1.25ns + 1.25ns, previousely: (0..5)*1.25ns + 2.5ns |
|
| 19 - 18 |
0
|
-
|
reserved |
| 17 - 16 |
"01"
|
t_REFI
|
| Average periodic refresh interval (3.90 us * 2^t_REFI |
| 00 : |
3.90 us |
| 01 : |
7.80 us (default) |
| 10 : |
15.60 us |
| 11 : |
31.20 us |
Note: Typically refresh of SDRAM devices is specified by a certain number of refreshes that must be performed within a certain time. E.g. 8192 refreshes for 64ms. Dividing the time by the number of refreshes leads to the average periodic refresh interval. E.g. 64ms/8192 = 7.8us. Please view also description of 'refresh_mode' of 'sdram_general_ctrl' register for details. |
|
| 15 - 12 |
"1111"
|
t_RFC
|
| REFRESH to next command time (clk = tRFC + 4) |
| 0000 : |
4 clks |
| 0001 : |
5 clks |
and so on 1111 : 19 clks (default) |
|
| 11 |
0
|
-
|
reserved |
| 10 - 8 |
"111"
|
t_RAS
|
| ACTIVE to PRECHARGE command time (clk = t_RAS + 3) |
| 000 : |
3 clks |
| 001 : |
4 clks |
and so on 111 : 10 clks (default) Note: If Active-to-Active-command-period (t_RC) exceeds t_RAS+t_RP, set t_RAS and t_RP in a way that the following condition is met: t_RAS+t_RP>=t_RC. |
|
| 7 - 6 |
"11"
|
t_RP
|
| Precharge command period time (PRECHARGE to next command) |
| 00 : |
1 clk |
| 01 : |
2 clks |
| 10 : |
3 clks (default) |
| 11 : |
reserved |
Note: For Active-to-Active-command-period (t_RC) view note at t_RAS. |
|
| 5 - 4 |
"11"
|
t_WR
|
| Write recovery time (last write data to PRECHARGE) |
| 00 : |
1 clk |
| 01 : |
2 clks |
| 10 : |
3 clks (default) |
| 11 : |
reserved |
|
| 3 - 2 |
0
|
-
|
reserved |
| 1 - 0 |
"11"
|
t_RCD
|
ACTIVE to READ or WRITE time (RAS to CAS, clk = t_RCD) This value will be also taken as t_RRD (ACTIVE bank A to ACTIVE bank B time) |
| 00 : |
1 clk |
| 01 : |
2 clks |
| 10 : |
3 clks (default) |
| 11 : |
reserved |
|
| sqi_cr0 |
SQI control register 0 This register is compatible with the netX50 and netX10 SPI module, but some additional settings are possible. The SQI module provides master function only. Slave settings are omitted. The SQI module does not support the compatible mode for netX100. |
|
R/W
|
0x00080007
|
Address@sqi : 0xff401640
Address@sqi0_app : 0xff801180
Address@sqi1_app : 0xff8011c0
|
Bits |
Reset value |
Name |
Description |
| 31 - 28 |
0
|
-
|
reserved |
| 27 |
"0"
|
filter_in
|
Input filtering Receive data is sampled every 10 ns (100 MHz system clock). If this bit is set, the stored receive value will be the result of a majority decision of the three sampling points around an sck clock edge (if two or more '1's have been sampled, a '1' will be stored. If this bit is not set, a '0' will be stored). Input filtering should be used for sck_muladd<=0x200 (i.e. below 12.5 MHz). For higher frequencies, stable signal phases are too short for filtering. |
|
| 26 - 24 |
0
|
-
|
reserved |
| 23 - 22 |
"00"
|
sio_cfg
|
SQI IO configuration Default: All additional SQI-IOs (SIO2+3) are in PIO input mode. Coding |
| 00: |
only SIO2+3 are controllable as PIOs (2-bit SPI or standard Motorola SPI) |
| 01: |
all SQI IOs are used for transfers (4-bit SPI/SQI) |
| 10: |
reserved |
| 11: |
all SQI IOs are controllable as PIOs |
|
| 21 - 20 |
0
|
-
|
reserved |
| 19 - 8 |
0x800
|
sck_muladd
|
Serial clock rate multiply add value for sck generation sck-frequency: f_sck = (sck_muladd * 100)/4096 [MHz]. Programmed value of sck_muladd must be <= 0x800. Default value 0x800 equals 50 MHz clock rate. |
| Note: |
If sck_muladd is set to zero, transfer will freeze. |
| Note: |
SQIROM (XiP) serial clock rate must be programmed in register 'sqi_sqirom_cfg'. |
|
| 7 |
"0"
|
sck_phase
|
| 1: |
Sample data at second clock edge, data is generated half a clock phase before sampling |
| 0: |
Sample data at first clock edge, data is generated half a clock phase before sampling |
| Note: sck_phase value equals bit 0 of SPI mode value (mode = (sck_pol, sck_phase)). |
|
| 6 |
"0"
|
sck_pol
|
| 0: |
idle: clock is low, first edge is rising |
| 1: |
idle: clock is high, first edge is falling |
| Note: sck_pol value equals bit 1 of SPI mode value (mode = (sck_pol, sck_phase)). |
|
| 5 - 4 |
0
|
-
|
reserved |
| 3 - 0 |
"0111"
|
datasize
|
Data size select for standard Motorola SPI mode This bit field is unused in 2-bit and 4-bit SPI modes (i.e. data size fixed to 8 bit). The actual transfer size is 'datasize' + 1 bit. |
| 0000...0010: |
reserved |
| 0011: |
4 bit |
| 0100: |
5 bit |
| ... |
|
| 0111: |
8 bit |
| ... |
|
| 1111: |
16 bit |
|
| sqi_cr1 |
SQI control register 1 This register is compatible with the netX50 and netX10 SPI module, but some additional settings are possible. The SQI module provides master function only. Slave settings are omitted. |
|
R/W
|
0x08080000
|
Address@sqi : 0xff401644
Address@sqi0_app : 0xff801184
Address@sqi1_app : 0xff8011c4
|
Bits |
Reset value |
Name |
Description |
| 31 - 29 |
0
|
-
|
reserved |
| 28 |
"0"
|
rx_fifo_clr
|
Receive FIFO clear Writing "1" to this bit will clear the receive FIFO. The hardware will automatically reset this bit. This bit is always '0' when read. |
|
| 27 - 24 |
"1000"
|
rx_fifo_wm
|
Receive FIFO watermark for IRQ generation If the receive FIFO watermark IRQ is enabled (bit 'RXIM' is set in register 'sqi_irq_mask'), transfers will stop when the receive FIFO runs full. Transfers will continue after the receive data is read from the receive FIFO to avoid an overflow of the receive FIFO. If the receive FIFO watermark IRQ is disabled (bit 'RXIM' is not set in register 'sqi_irq_mask'), transfers will not stop when the receive FIFO runs full. This may cause an overflow of the receive FIFO. This is compatible with netX50 behavior and allows writing data in full-duplex mode without reading the receive FIFO. |
|
| 23 - 21 |
0
|
-
|
reserved |
| 20 |
"0"
|
tx_fifo_clr
|
Transmit FIFO clear Writing "1" to this bit will clear the transmit FIFO. The hardware will automatically reset this bit. This bit is always '0' when read. |
|
| 19 - 16 |
"1000"
|
tx_fifo_wm
|
| Transmit FIFO watermark for IRQ generation |
|
| 15 - 13 |
0
|
-
|
reserved |
| 12 |
"0"
|
spi_trans_ctrl
|
Transfer control for standard Motorola SPI (default: disabled) This bit is used only for standard Motorola SPI (bits 'mode' of register 'sqi_tcr') in full-duplex and half-duplex mode. If this bit is set, SPI transfers will be controlled by 'start_transfer' and 'transfer_size' of register 'sqi_tcr'. If this bit is not set (default), SPI transfers start immediately after transfer data has been written to TX FIFO (this is compatible with the SPI module). Settings of 'start_transfer' and 'transfer_size' of register 'sqi_tcr' then remain unaffected and will be ignored. If this bit is set and SPI is used in receive mode (full-duplex or half-duplex receive mode set by bit field 'duplex' in register 'sqi_tcr'), transfers will stop when the receive FIFO runs full. Transfers will continue after the receive data is read from the receive FIFO to avoid an overflow of the receive FIFO. |
|
| 11 |
"0"
|
fss_static
|
| 0: |
Chip select will be generated automatically at data frame begin/end according to fss and datasize. |
| 1: |
Chip select will be set statically according to 'fss' bits (see below). |
If fss is set to static mode, fss must be toggled manually after each data frame in Motorola SPI mode when sck_phase is 0 for compatibility with the specification! Note: This bit is used only in standard Motorola SPI mode. For SQI modes, chip select is never generated automatically. |
|
| 10 - 8 |
"000"
|
fss
|
Frame slave select Up to 3 devices can be assigned directly. Up to 8 devices can be assigned if an external de-multiplexer is used. This signal is active low, i.e. the bits will be inverted before they are output to the SQI pins. |
|
| 7 - 2 |
0
|
-
|
reserved |
| 1 |
"0"
|
sqi_en
|
| 0: |
Interface disabled |
| 1: |
Interface enabled |
| Note: If you select the SQIROM/XiP function by bit 'enable' of register 'sqi_sqirom_cfg' (see description of register 'sqi_sqirom_cfg'), the standard SQI/SPI function will not be available. |
|
| 0 |
0
|
-
|
reserved |
| sqi_sr |
Read-only SQI status register Shows the current status of the SQI interface. |
|
R
|
Address@sqi : 0xff40164c
Address@sqi0_app : 0xff80118c
Address@sqi1_app : 0xff8011cc
|
Bits |
Name |
Description |
| 31 |
rx_fifo_err_undr
|
Receive FIFO underrun error has occurred, unexpected data has been read. To clear this status flag, clear RX FIFO (register 'sqi_cr1'). |
|
| 30 |
rx_fifo_err_ovfl
|
Receive FIFO overflow error occurred, data is lost. To clear this status flag, clear RX FIFO (register 'sqi_cr1'). |
|
| 29 |
-
|
reserved |
| 28 - 24 |
rx_fifo_level
|
| Receive FIFO level (number of received words to be read from the FIFO). |
|
| 23 |
tx_fifo_err_undr
|
Transmit FIFO underrun error has occurred, unexpected data has been sent. To clear this status flag, clear TX FIFO (register 'sqi_cr1'). |
|
| 22 |
tx_fifo_err_ovfl
|
Transmit FIFO overflow error occurred, data is lost. To clear this status flag, clear TX FIFO (register 'sqi_cr1'). |
|
| 21 |
-
|
reserved |
| 20 - 16 |
tx_fifo_level
|
| Transmit FIFO level (number of words to be transmitted are left in the FIFO). |
|
| 15 |
sqirom_disabled_err
|
Access to the disabled SQIROM area has occurred. To enable the SQIROM function, set bit 'enable' in register 'sqi_sqirom_cfg'. This bit can be used to determine why the IRQ 'sqirom_error' has occurred. Clearing this status flag is possible only by writing a '1' here. |
|
| 14 |
sqirom_write_err
|
Write access to the read-only SQIROM area has occurred. This bit can be used to determine why the IRQ 'sqirom_error' has occurred. Clearing this status flag is possible only by writing a '1' here. |
|
| 13 |
sqirom_timeout_err
|
Timeout during a read of the SQIROM area has occurred. A timeout results from a fix level of the netX serial clock IO. Check IO multiplexing configuration and make sure that the serial clock output is not externally clamped. This bit can be used to determine why the IRQ 'sqirom_error' has occurred. Clearing this status flag is possible only by writing a '1' here. The SQIROM function must be disabled and enabled again to reset module-internal state machines after this bit has been set (register 'sqirom_cfg', therefore reset and set again the 'enable' bit). |
|
| 12 - 5 |
-
|
reserved |
| 4 |
busy
|
Device is busy 1 if data is currently transmitted/received or the transmit FIFO is not empty. |
|
| 3 |
rx_fifo_full
|
| Receive FIFO is full (1 if full). |
|
| 2 |
rx_fifo_not_empty
|
| Receive FIFO is not empty (0 if empty). |
|
| 1 |
tx_fifo_not_full
|
| Transmit FIFO is not full (0 if full). |
|
| 0 |
tx_fifo_empty
|
| Transmit FIFO is empty (1 if empty). |
|
| sqi_tcr |
SQI transfer control This register must not be changed during a transfer (bit 'busy' of register 'sqi_sr' is '1') to avoid corrupted transfers causing damage to the hardware. Module address offset 0x10 is reserved in the netX10/50 SPI module. Thus, no compatibility problems will result from using this address for extended transfer control features. |
|
R/W
|
0x1c000000
|
Address@sqi : 0xff401650
Address@sqi0_app : 0xff801190
Address@sqi1_app : 0xff8011d0
|
Bits |
Reset value |
Name |
Description |
| 31 - 30 |
0
|
-
|
reserved |
| 29 |
"0"
|
ms_byte_first
|
Most significant byte first 2- and 4-bit mode: Writing "1" to this bit will use most significant byte first in DWords (big endian). Default is little endian In standard Motorola SPI mode this bit is ignored. |
|
| 28 |
"1"
|
ms_bit_first
|
Most significant bit first 2- and 4-bit mode: Writing "1" to this bit will transfer most significant bit first (default). In standard Motorola SPI mode this bit is ignored. |
|
| 27 - 26 |
"11"
|
duplex
|
Transfer type selection Default is '11' for standard SPI compatibility. |
00: |
dummy Generates 'transfer_size' + 1 serial clock periods. No change of RX and TX FIFOs. Data lines (standard Motorola SPI mode: SPI_MOSI) are controlled by 'tx_oe' and 'tx_out'. |
01:
|
half-duplex receive Receives 'transfer_size' + 1 words. In 2-bit and 4-bit mode, TX-FIFO will be cleared and is not available during receive. In standard SPI mode, SPI_MOSI is controlled by 'tx_oe' and 'tx_out'. You need not fill the TX-FIFO with dummy TX-data to receive RX-data. TX FIFOs are not changed and always available. |
10:
|
half-duplex transmit Transmits 'transfer_size' + 1 words. In 2-bit and 4-bit mode, RX-FIFO will be cleared and is not available during transmit. In standard SPI mode, SPI_MISO input is ignored. RX-FIFO is available and remains unchanged. |
11:
|
full-duplex Standard Motorola SPI mode only, reserved in 2-bit and 4-bit modes. The full-duplex standard Motorola SPI mode always transmits and receives data. Transmit data is taken from TX-FIFO, receive data is stored in RX-FIFO. |
| Note: |
If '11' is set in 2-bit or 4-bit mode, this is treated as 'receive' (like '01' setting). |
Note: |
In case of a FIFO error (overflow, underrun) before changing to '01' or '10', the FIFO error status bits in register 'sqi_sr' will not be cleared by half-duplex modes FIFO clearing. |
|
| 25 - 24 |
"00"
|
mode
|
| 00: |
Standard Motorola SPI mode. |
| 01: |
2-bit SPI mode |
| 10: |
4-bit SPI mode |
| 11: |
reserved |
|
| 23 |
"0"
|
start_transfer
|
Transfer start signal Writing a "1" starts the transfer of transfer_size bytes or dummy cycles. The hardware will automatically reset this bit. This bit is always '0' when read. This bit is writable only after a transfer sequence is finished or if it has been terminated by a FIFO clear. |
| Note: |
A transfer sequence is finished completely when 'busy' of register 'sqi_sr' is not set. |
| Note: |
In standard Motorola SPI mode, this function can be controlled by bit 'spi_trans_ctrl' of register 'sqi_cr1' (for SPI module compatibility). |
|
| 22 |
"0"
|
tx_oe
|
Output driver enable in dummy or standard SPI receive-only mode Writing a "1" enables the output drivers of the data pins in the dummy mode. |
|
| 21 |
"0"
|
tx_out
|
Output level in dummy or standard SPI receive-only mode This bit selects the output level when the output driver is enabled in the dummy mode. |
|
| 20 - 19 |
0
|
-
|
reserved |
| 18 - 0 |
0x0
|
transfer_size
|
Number of bytes within the current SQI transaction Program (number of bytes - 1) or (number of dummy clock cycles - 1). Example: |
| 0x00000: |
one byte/dummy cycle |
| ... |
|
| 0x7ffff: |
512k bytes/dummy cycles |
This bit field counts down during transfers with each transferred word/byte or dummy cycle. This bit field is writable only after a transfer sequence is finished or if it has been terminated by a FIFO clear. Hence, this bit is writable, but it can also be changed by hardware. A running transfer sequence can be terminated by clearing the FIFO (register 'sqi_cr1'). This may become necessary for terminating a read sequence. Example: A half-duplex write transfer of 128 kbytes has been programmed, but there is not enough write data. To terminate this write sequence, clear the TX FIFO. If an external transfer is running while the FIFO is being cleared, this transfer will be continued and finished with the last bit to be transferred. Note: A transfer sequence is finished completely when 'busy' of register 'sqi_sr' is not set. |
|
| sqi_irq_mask |
SQI interrupt mask register: IRQ mask is an AND-mask: Only raw interrupts with mask bit set can generate a module IRQ to CPU. For detailed IRQ behavior and function, see register 'sqi_irq_raw'. The functionality of this register is similar to that of the corresponding SPI register spi_imsc. In contrast to this register, setting bits in spi_imsc also clears the corresponding raw interrupts. |
|
R/W
|
0x00000000
|
Address@sqi : 0xff401654
Address@sqi0_app : 0xff801194
Address@sqi1_app : 0xff8011d4
|
Bits |
Reset value |
Name |
Description |
| 31 - 9 |
0
|
-
|
reserved |
| 8 |
"0"
|
sqirom_error
|
| SQIROM error interrupt mask |
|
| 7 |
"0"
|
trans_end
|
| Transfer end interrupt mask |
|
| 6 |
"0"
|
txeim
|
| Transmit FIFO empty interrupt mask (for compatibility with netx100/500) |
|
| 5 |
"0"
|
rxfim
|
| Receive FIFO full interrupt mask (for compatibility with netx100/500) |
|
| 4 |
"0"
|
rxneim
|
| Receive FIFO not empty interrupt mask (for compatibility with netx100/500) |
|
| 3 |
"0"
|
TXIM
|
| Transmit FIFO interrupt mask |
|
| 2 |
"0"
|
RXIM
|
| Receive FIFO interrupt mask |
|
| 1 |
"0"
|
RTIM
|
| Receive timeout interrupt mask |
|
| 0 |
"0"
|
RORIM
|
| Receive FIFO overrun interrupt mask |
|
| sqi_irq_raw |
SQI interrupt state before masking register (raw interrupt). Writing a "1" to a bit clears this interrupt. IRQ flags can also be cleared by using 'sqi_irq_clear' for SPI module compatibility. |
|
R/W
|
0x00000008
|
Address@sqi : 0xff401658
Address@sqi0_app : 0xff801198
Address@sqi1_app : 0xff8011d8
|
Bits |
Reset value |
Name |
Description |
| 31 - 9 |
0
|
-
|
reserved |
| 8 |
"0"
|
sqirom_error
|
| Unmasked SQIROM error interrupt state |
1:
|
SQIROM access error detected. This IRQ will be set if an error occurs during an SQIROM access. For detailed information on the error, see SQIROM error bits in register 'sqi_sr'. For error handling, clear this IRQ bit and the bits of register 'sqi_sr'. |
| 0: |
no SQIROM error detected. |
|
| 7 |
"0"
|
trans_end
|
| Unmasked transfer end interrupt state (related to bit 'busy' of register 'sqi_sr') |
| 1: |
transfer finished. Bit 'busy' of register 'sqi_sr' has become inactive. |
| 0: |
transfer not finished. Bit 'busy' of register 'sqi_sr' is active. |
|
| 6 |
"0"
|
txeris
|
| Unmasked transmit FIFO empty interrupt state (for compatibility with netx100/500) |
| 1: |
transmit FIFO is empty |
| 0: |
transmit FIFO is not empty |
|
| 5 |
"0"
|
rxfris
|
| Unmasked receive FIFO full interrupt state (for compatibility with netx100/500) |
| 1: |
receive FIFO is full |
| 0: |
receive FIFO is not full |
|
| 4 |
"0"
|
rxneris
|
| Unmasked receive FIFO not empty interrupt state (for compatibility with netx100/500) |
| 1: |
receive FIFO is not empty |
| 0: |
receive FIFO is empty |
|
| 3 |
"1"
|
TXRIS
|
| Unmasked transmit FIFO interrupt state |
| 1: |
transmit FIFO level is below sqi_cr1.tx_fifo_wm |
| 0: |
transmit FIFO is equal or higher than sqi_cr1.tx_fifo_wm |
|
| 2 |
"0"
|
RXRIS
|
| Unmasked receive FIFO interrupt state |
| 1: |
receive FIFO is higher than sqi_cr1.rx_fifo_wm |
| 0: |
receive FIFO is equal or below sqi_cr1.rx_fifo_wm |
| Note: Before programming this IRQ, see description of bits 'spi_trans_ctrl' and 'rx_fifo_wm' of register 'sqi_cr1' for receive FIFO behavior. |
|
| 1 |
"0"
|
RTRIS
|
Unmasked receive timeout interrupt state Timeout period is 32 serial clock periods (depending on adr_sqi_cr0.sck_muladd). |
| 1: |
receive FIFO is not empty and has not been read out during the timeout period |
| 0: |
receive FIFO is empty or read during the last timeout period |
|
| 0 |
"0"
|
RORRIS
|
| Unmasked receive FIFO overrun interrupt state |
| 1: |
receive FIFO overrun error occurred |
| 0: |
no receive FIFO overrun error occurred |
|
| sqi_irq_masked |
SQI masked interrupt status register For detailed IRQ behavior and function, see register 'sqi_irq_raw'. |
|
R
|
Address@sqi : 0xff40165c
Address@sqi0_app : 0xff80119c
Address@sqi1_app : 0xff8011dc
|
Bits |
Name |
Description |
| 31 - 9 |
-
|
reserved |
| 8 |
sqirom_error
|
| Masked SQIROM error interrupt state |
|
| 7 |
trans_end
|
| Masked transfer end interrupt state |
|
| 6 |
txemis
|
| Masked transmit FIFO empty interrupt state (for compatibility with netx100/500) |
|
| 5 |
rxfmis
|
| Masked receive FIFO full interrupt state (for compatibility with netx100/500) |
|
| 4 |
rxnemis
|
| Masked receive FIFO not empty interrupt state (for compatibility with netx100/500) |
|
| 3 |
TXMIS
|
| Masked transmit FIFO interrupt state |
|
| 2 |
RXMIS
|
| Masked receive FIFO interrupt state |
|
| 1 |
RTMIS
|
| Masked receive timeout interrupt state |
|
| 0 |
RORMIS
|
| Masked receive FIFO overrun interrupt state |
|
| sqi_irq_clear |
SQI interrupt clear register (for compatibility with netX10/50 SPI module). This register is always '0' on read. IRQ flags can also be cleared by writing register 'sqi_irq_raw'. |
|
R/W
|
0x00000000
|
Address@sqi : 0xff401660
Address@sqi0_app : 0xff8011a0
Address@sqi1_app : 0xff8011e0
|
Bits |
Reset value |
Name |
Description |
| 31 - 9 |
0
|
-
|
reserved |
| 8 |
"0"
|
sqirom_error
|
| Clear SQIROM error interrupt |
|
| 7 |
"0"
|
trans_end
|
| Clear transfer end interrupt |
|
| 6 |
"0"
|
txeic
|
| Clear transmit FIFO empty interrupt (for compatibility with netx100/500) |
|
| 5 |
"0"
|
rxfic
|
| Clear receive FIFO full interrupt (for compatibility with netx100/500) |
|
| 4 |
"0"
|
rxneic
|
| Clear receive FIFO not empty interrupt (for compatibility with netx100/500) |
|
| 3 |
"0"
|
TXIC
|
| Clear transmit FIFO interrupt |
|
| 2 |
"0"
|
RXIC
|
| Clear receive FIFO interrupt |
|
| 1 |
"0"
|
RTIC
|
| Clear receive timeout interrupt |
|
| 0 |
"0"
|
RORIC
|
| Clear receive FIFO overrun interrupt |
|
| sqi_sqirom_cfg |
SQIROM mode configuration This mode supports the 'eXecute in Place' (XiP) feature of SQI flash chips. This register serves to configure the position of command byte and address nibbles as well as the number of address nibbles and dummy cycles. To support a wide range of frequencies for the serial clock output, you can also change the clock divider. Notes: 1. Before enabling this mode, make sure that the SQI flash chip is in 4-bit command mode, otherwise the module is not able to fetch data from the flash. 2. When enabled, the SQI module is completely blocked, i.e. other SQI or SPI transactions are not possible. 3. The chip select signal of the flash must be connected to sqi_cs0. 4. SQIROM transfers can be generated in SPI mode 0 or 3, which can be selected in register 'sqi_cr0'. DO NOT select mode 1 and 2 for SQIROM usage. |
|
R/W
|
0x02020004
|
Address@sqi : 0xff401678
Address@sqi0_app : 0xff8011b8
Address@sqi1_app : 0xff8011f8
|
Bits |
Reset value |
Name |
Description |
| 31 - 24 |
"00000010"
|
clk_div_val
|
clk400 will be divided by (clk_div_val+3) for sqirom_clk generation. Default setting '2' is 80 MHz. Maximum serial clock rate (programming '0') is 133 MHz. Serial clock period (t_sck) will be (clk_div_val+3) * 2.5 ns. Clock high and low phase will be generated symmetrically. |
|
| 23 - 22 |
0
|
-
|
reserved |
| 21 - 20 |
"00"
|
t_csh
|
Min. SQI chip select high (idle) time: (t_csh+1) * t_sck (according to clk_div_val). Programmable values are 0 to 3. Change this parameter if the SQI device used requires min. chip select high times exceeding 1 serial clock period. The data sheet of the SQI device used provides the required timing. Note: Serial clock will not toggle if the device is not selected. Hence, only chip select active timing has to be considered. |
|
| 19 - 16 |
"0010"
|
dummy_cycles
|
| Selects the number of dummy cycles before data will be sampled from the SQI chip. |
| 0000: |
0 cycles |
| 0001: |
1 cycle |
| 0010: |
2 cycles (default) |
| ... |
|
| 1111: |
15 cycles |
|
| 15 - 8 |
"00000000"
|
cmd_byte
|
This byte is transferred to the SQI chip as the command sequence. Bit 'addr_before_cmd' controls the address command order. |
|
| 7 |
0
|
-
|
reserved |
| 6 - 4 |
"000"
|
addr_bits
|
The number of address bits of the access address considered to generate the address for the SQI chip. This setting depends on the size of the SQI chip. |
| 000: |
20 bits (1-MByte/8-MBit device) (default) |
| 001: |
21 bits (2-MByte/16-MBit device) |
| 010: |
22 bits (4-MByte/32-MBit device) |
| 011: |
23 bits (8-MByte/64-MBit device) |
| 100: |
24 bits (16-MByte/128-MBit device) |
| 101: |
25 bits (32-MByte/256-MBit device) |
| 110: |
26 bits (64-MByte/512-MBit device) |
| 111: |
reserved |
|
| 3 - 2 |
"01"
|
addr_nibbles
|
The number of nibbles to be transferred as the address to the SQI chip. This setting depends on the command format of the SQI chip. Bit 'addr_before_cmd' controls the address command order. The most significant address bits will be transmitted in the first address nibble. The least significant address bits will be transmitted in the last address nibble. |
| 00: |
5 nibbles |
| 01: |
6 nibbles (default) |
| 10: |
7 nibbles |
| 11: |
8 nibbles |
|
| 1 |
"0"
|
addr_before_cmd
|
Address before command When set to '1', the address nibbles will be transferred before the command byte. Otherwise, the command will be transferred first (default). |
|
| 0 |
"0"
|
enable
|
Enables the SQIROM mode of the SQI module. The SQI chip needs to be initialized to accept 4-bit read-command before you activate the SQIROM mode. This bit is also used to switch between the SQIROM/XiP and the standard SQI/SPI function. If this bit is set, the standard SQI/SPI function is not available. The SQIROM/XiP function does not depend on the programmed value of bit 'sqi_en' of register 'sqi_cr1'. If the multiplex matrix provides the SQI function, it is available only in standard SQI/SPI, but not for SQIROM/XiP usage. The SQIROM/XiP function is provided only on dedicated SQI IOs, but not as a multiplex matrix function even if standard SQI/SPI is provided there. |
|
| sample_at_porn_stat_in0 |
Status of inputs sampled at power-on-reset (PORn) register 0. This register shows the status of the inputs sampled at power-on-reset. It will not change on normal system reset. |
|
R
|
Address : 0xff4016d0
|
Bits |
Name |
Description |
| 31 |
hif_a15
|
| Input status of pin 'hif_a15' sampled at power-on-reset |
|
| 30 |
hif_a14
|
| Input status of pin 'hif_a14' sampled at power-on-reset |
|
| 29 |
hif_a13
|
| Input status of pin 'hif_a13' sampled at power-on-reset |
|
| 28 |
hif_a12
|
| Input status of pin 'hif_a12' sampled at power-on-reset |
|
| 27 |
hif_a11
|
| Input status of pin 'hif_a11' sampled at power-on-reset |
|
| 26 |
hif_a10
|
| Input status of pin 'hif_a10' sampled at power-on-reset |
|
| 25 |
hif_a9
|
| Input status of pin 'hif_a9' sampled at power-on-reset |
|
| 24 |
hif_a8
|
| Input status of pin 'hif_a8' sampled at power-on-reset |
|
| 23 |
hif_a7
|
| Input status of pin 'hif_a7' sampled at power-on-reset |
|
| 22 |
hif_a6
|
| Input status of pin 'hif_a6' sampled at power-on-reset |
|
| 21 |
hif_a5
|
| Input status of pin 'hif_a5' sampled at power-on-reset |
|
| 20 |
hif_a4
|
| Input status of pin 'hif_a4' sampled at power-on-reset |
|
| 19 |
hif_a3
|
| Input status of pin 'hif_a3' sampled at power-on-reset |
|
| 18 |
hif_a2
|
| Input status of pin 'hif_a2' sampled at power-on-reset |
|
| 17 |
hif_a1
|
| Input status of pin 'hif_a1' sampled at power-on-reset |
|
| 16 |
hif_a0
|
| Input status of pin 'hif_a0' sampled at power-on-reset |
|
| 15 |
hif_d15
|
| Input status of pin 'hif_d15' sampled at power-on-reset |
|
| 14 |
hif_d14
|
| Input status of pin 'hif_d14' sampled at power-on-reset |
|
| 13 |
hif_d13
|
| Input status of pin 'hif_d13' sampled at power-on-reset |
|
| 12 |
hif_d12
|
| Input status of pin 'hif_d12' sampled at power-on-reset |
|
| 11 |
hif_d11
|
| Input status of pin 'hif_d11' sampled at power-on-reset |
|
| 10 |
hif_d10
|
| Input status of pin 'hif_d10' sampled at power-on-reset |
|
| 9 |
hif_d9
|
| Input status of pin 'hif_d9' sampled at power-on-reset |
|
| 8 |
hif_d8
|
| Input status of pin 'hif_d8' sampled at power-on-reset |
|
| 7 |
hif_d7
|
| Input status of pin 'hif_d7' sampled at power-on-reset |
|
| 6 |
hif_d6
|
| Input status of pin 'hif_d6' sampled at power-on-reset |
|
| 5 |
hif_d5
|
| Input status of pin 'hif_d5' sampled at power-on-reset |
|
| 4 |
hif_d4
|
| Input status of pin 'hif_d4' sampled at power-on-reset |
|
| 3 |
hif_d3
|
| Input status of pin 'hif_d3' sampled at power-on-reset |
|
| 2 |
hif_d2
|
| Input status of pin 'hif_d2' sampled at power-on-reset |
|
| 1 |
hif_d1
|
| Input status of pin 'hif_d1' sampled at power-on-reset |
|
| 0 |
hif_d0
|
| Input status of pin 'hif_d0' sampled at power-on-reset |
|
| sample_at_porn_stat_in1 |
Status of inputs sampled at power-on-reset (PORn) register 1. This register shows the status of the inputs sampled at power-on-reset. It will not change on normal system reset. |
|
R
|
Address : 0xff4016d4
|
Bits |
Name |
Description |
| 31 - 17 |
-
|
reserved |
| 16 |
sqi_sio3
|
| Input status of pin 'sqi_sio3' sampled at power-on-reset |
|
| 15 |
sqi_sio2
|
| Input status of pin 'sqi_sio2' sampled at power-on-reset |
|
| 14 |
sqi_miso
|
| Input status of pin 'sqi_miso' sampled at power-on-reset |
|
| 13 |
sqi_mosi
|
| Input status of pin 'sqi_mosi' sampled at power-on-reset |
|
| 12 |
sqi_cs0n
|
| Input status of pin 'sqi_cs0n' sampled at power-on-reset |
|
| 11 |
sqi_clk
|
| Input status of pin 'sqi_clk' sampled at power-on-reset |
|
| 10 |
run_n
|
| Input status of pin 'run_n' sampled at power-on-reset |
|
| 9 |
rdy_n
|
| Input status of pin 'rdy_n' sampled at power-on-reset |
|
| 8 |
hif_sdclk
|
| Input status of pin 'hif_sdclk' sampled at power-on-reset |
|
| 7 |
hif_dirq
|
| Input status of pin 'hif_dirq' sampled at power-on-reset |
|
| 6 |
hif_rdy
|
| Input status of pin 'hif_rdy' sampled at power-on-reset |
|
| 5 |
hif_csn
|
| Input status of pin 'hif_csn' sampled at power-on-reset |
|
| 4 |
hif_wrn
|
| Input status of pin 'hif_wrn' sampled at power-on-reset |
|
| 3 |
hif_rdn
|
| Input status of pin 'hif_rdn' sampled at power-on-reset |
|
| 2 |
hif_bhen
|
| Input status of pin 'hif_bhen' sampled at power-on-reset |
|
| 1 |
hif_a17
|
| Input status of pin 'hif_a17' sampled at power-on-reset |
|
| 0 |
hif_a16
|
| Input status of pin 'hif_a16' sampled at power-on-reset |
|
| firewall_cfg_crypt_system |
Firewall configuration register for the crypt_system NETX AHB channel.
Basic function: A denied access will generate an ERROR-response (abort). Masters which cannot handle aborts directly can generate an IRQ to their controlling master when they receive an abort (e.g. the DPM-master can generate an IRQ to its host or the DMA-controllers can generate an IRQ to the ARM-CPU). The firewall will no generate any IRQ by itself. A denied write access will be junked. A denied read access will return unpredictable data.
Note: |
| COM-side masters are: |
DPM0, DPM1, XC01, XPIC_COM, ARM_COM, DMAC_COM. |
| APP-side masters are: |
IDPM_MASTER, XPIC_APP, ARM_APP, DMAC_APP. |
Other masters which cannot be filtered but globally disabled are: ADC_MASTER, IPC_MASTER, DEBUG_MASTER. Note: The configuration bits of this register can be locked to protect it from reconfiguration by ASIC_CTRL_COM.netx_lock.lock_firewall. The functionality of the status bits are not influenced by ASIC_CTRL_COM.netx_lock.lock_firewall. |
|
R/W
|
0x00000033
|
Address : 0xff401700
|
Bits |
Reset value |
Name |
Description |
| 31 |
"0"
|
abort_dis
|
| disable abort-generation for denied accesses |
| 1: |
no ERROR response for denied accesses (not recommended). |
| 0: |
ERROR response for denied accesses (default) |
|
| 30 - 10 |
0
|
-
|
reserved |
| 9 |
"0"
|
stat_app
|
| status for APP side masters, write '1' to clear. |
|
| 8 |
"0"
|
stat_com
|
| Firewall status for COM side masters, write '1' to clear. |
| 1: |
an access of the COM side was denied |
| 0: |
no denied accesses |
Note: Clearing the stat-bit by software has lower priority than setting by hardware. I.e. clearing a status bit while an access of the related is denied, will fail. Ensure that no access will be denied before clearing by stopping accessing master (e.g. DMAC which could perform long jobs with long bursts). |
|
| 7 - 6 |
0
|
-
|
reserved |
| 5 |
"1"
|
rp_app
|
| read permission for APP side masters |
|
| 4 |
"1"
|
rp_com
|
| read permission for COM side masters |
| 1: |
permit read access |
| 0: |
deny read access |
|
| 3 - 2 |
0
|
-
|
reserved |
| 1 |
"1"
|
wp_app
|
| write permission for APP side masters |
|
| 0 |
"1"
|
wp_com
|
| write permission for COM side masters |
| 1: |
permit write access |
| 0: |
deny write access |
|
| firewall_cfg_hifmem_sdram |
Firewall configuration register for the hifmem_sdram NETX AHB channel.
See description of register firewall_cfg_crypt_system for details.
Note: The configuration bits of this register can be locked to protect it from reconfiguration by ASIC_CTRL_COM.netx_lock.lock_firewall. The functionality of the status bits are not influenced by ASIC_CTRL_COM.netx_lock.lock_firewall. |
|
R/W
|
0x00000033
|
Address : 0xff401714
|
Bits |
Reset value |
Name |
Description |
| 31 |
"0"
|
abort_dis
|
| disable abort-generation for denied accesses |
|
| 30 - 10 |
0
|
-
|
reserved |
| 9 |
"0"
|
stat_app
|
| status for APP side masters, write '1' to clear. |
|
| 8 |
"0"
|
stat_com
|
| Firewall status for COM side masters, write '1' to clear. |
|
| 7 - 6 |
0
|
-
|
reserved |
| 5 |
"1"
|
rp_app
|
| read permission for APP side masters |
|
| 4 |
"1"
|
rp_com
|
| read permission for COM side masters |
|
| 3 - 2 |
0
|
-
|
reserved |
| 1 |
"1"
|
wp_app
|
| write permission for APP side masters |
|
| 0 |
"1"
|
wp_com
|
| write permission for COM side masters |
|
| firewall_cfg_intlogic_shd_pad_ctrl |
Firewall configuration register for the intlogic_shd_pad_ctrl module.
Basic function: A denied access will generate an ERROR-response (abort). Masters which cannot handle aborts directly can generate an IRQ to their controlling master when they receive an abort (e.g. the DPM-master can generate an IRQ to its host or the DMA-controllers can generate an IRQ to the ARM-CPU). The firewall will no generate any IRQ by itself. A denied write access will be junked. A denied read access will return unpredictable data.
Note: |
| COM-side masters are: |
DPM0, DPM1, XC01, XPIC_COM, ARM_COM, DMAC_COM. |
| APP-side masters are: |
IDPM_MASTER, XPIC_APP, ARM_APP, DMAC_APP. |
Other masters which cannot be filtered but globally disabled are: ADC_MASTER, IPC_MASTER, DEBUG_MASTER. Note: The configuration bits of this register can be locked to protect it from reconfiguration by ASIC_CTRL_COM.netx_lock.lock_firewall. The functionality of the status bits are not influenced by ASIC_CTRL_COM.netx_lock.lock_firewall. |
|
R/W
|
0x00000033
|
Address : 0xff401740
|
Bits |
Reset value |
Name |
Description |
| 31 |
"0"
|
abort_dis
|
| disable abort-generation for denied accesses |
| 1: |
no ERROR response for denied accesses (not recommended). |
| 0: |
ERROR response for denied accesses (default) |
|
| 30 - 10 |
0
|
-
|
reserved |
| 9 |
"0"
|
stat_app
|
| status for APP side masters, write '1' to clear. |
|
| 8 |
"0"
|
stat_com
|
| Firewall status for COM side masters, write '1' to clear. |
| 1: |
an access of the COM side was denied |
| 0: |
no denied accesses |
Note: Clearing the stat-bit by software has lower priority than setting by hardware. I.e. clearing a status bit while an access of the related is denied, will fail. Ensure that no access will be denied before clearing by stopping accessing master (e.g. DMAC which could perform long jobs with long bursts). |
|
| 7 - 6 |
0
|
-
|
reserved |
| 5 |
"1"
|
rp_app
|
| read permission for APP side masters |
|
| 4 |
"1"
|
rp_com
|
| read permission for COM side masters |
| 1: |
permit read access |
| 0: |
deny read access |
|
| 3 - 2 |
0
|
-
|
reserved |
| 1 |
"1"
|
wp_app
|
| write permission for APP side masters |
|
| 0 |
"1"
|
wp_com
|
| write permission for COM side masters |
| 1: |
permit write access |
| 0: |
deny write access |
|
| firewall_cfg_intlogic_shd_sqi |
Firewall configuration register for the intlogic_shd_sqi module.
See description of register firewall_cfg_intlogic_shd_pad_ctrl for details.
Note: The configuration bits of this register can be locked to protect it from reconfiguration by ASIC_CTRL_COM.netx_lock.lock_firewall. The functionality of the status bits are not influenced by ASIC_CTRL_COM.netx_lock.lock_firewall. |
|
R/W
|
0x00000033
|
Address : 0xff401744
|
Bits |
Reset value |
Name |
Description |
| 31 |
"0"
|
abort_dis
|
| disable abort-generation for denied accesses |
|
| 30 - 10 |
0
|
-
|
reserved |
| 9 |
"0"
|
stat_app
|
| status for APP side masters, write '1' to clear. |
|
| 8 |
"0"
|
stat_com
|
| Firewall status for COM side masters, write '1' to clear. |
|
| 7 - 6 |
0
|
-
|
reserved |
| 5 |
"1"
|
rp_app
|
| read permission for APP side masters |
|
| 4 |
"1"
|
rp_com
|
| read permission for COM side masters |
|
| 3 - 2 |
0
|
-
|
reserved |
| 1 |
"1"
|
wp_app
|
| write permission for APP side masters |
|
| 0 |
"1"
|
wp_com
|
| write permission for COM side masters |
|
| firewall_cfg_intlogic_shd_uart |
Firewall configuration register for the intlogic_shd_uart module.
See description of register firewall_cfg_intlogic_shd_pad_ctrl for details.
Note: The configuration bits of this register can be locked to protect it from reconfiguration by ASIC_CTRL_COM.netx_lock.lock_firewall. The functionality of the status bits are not influenced by ASIC_CTRL_COM.netx_lock.lock_firewall. |
|
R/W
|
0x00000033
|
Address : 0xff401748
|
Bits |
Reset value |
Name |
Description |
| 31 |
"0"
|
abort_dis
|
| disable abort-generation for denied accesses |
|
| 30 - 10 |
0
|
-
|
reserved |
| 9 |
"0"
|
stat_app
|
| status for APP side masters, write '1' to clear. |
|
| 8 |
"0"
|
stat_com
|
| Firewall status for COM side masters, write '1' to clear. |
|
| 7 - 6 |
0
|
-
|
reserved |
| 5 |
"1"
|
rp_app
|
| read permission for APP side masters |
|
| 4 |
"1"
|
rp_com
|
| read permission for COM side masters |
|
| 3 - 2 |
0
|
-
|
reserved |
| 1 |
"1"
|
wp_app
|
| write permission for APP side masters |
|
| 0 |
"1"
|
wp_com
|
| write permission for COM side masters |
|
| firewall_cfg_intlogic_shd_ecc_ctrl |
Firewall configuration register for the intlogic_shd_ecc_ctrl module.
See description of register firewall_cfg_intlogic_shd_pad_ctrl for details.
Note: The configuration bits of this register can be locked to protect it from reconfiguration by ASIC_CTRL_COM.netx_lock.lock_firewall. The functionality of the status bits are not influenced by ASIC_CTRL_COM.netx_lock.lock_firewall. |
|
R/W
|
0x00000033
|
Address : 0xff40174c
|
Bits |
Reset value |
Name |
Description |
| 31 |
"0"
|
abort_dis
|
| disable abort-generation for denied accesses |
|
| 30 - 10 |
0
|
-
|
reserved |
| 9 |
"0"
|
stat_app
|
| status for APP side masters, write '1' to clear. |
|
| 8 |
"0"
|
stat_com
|
| Firewall status for COM side masters, write '1' to clear. |
|
| 7 - 6 |
0
|
-
|
reserved |
| 5 |
"1"
|
rp_app
|
| read permission for APP side masters |
|
| 4 |
"1"
|
rp_com
|
| read permission for COM side masters |
|
| 3 - 2 |
0
|
-
|
reserved |
| 1 |
"1"
|
wp_app
|
| write permission for APP side masters |
|
| 0 |
"1"
|
wp_com
|
| write permission for COM side masters |
|
| firewall_cfg_intlogic_shd_madc |
Firewall configuration register for the intlogic_shd_madc module.
See description of register firewall_cfg_intlogic_shd_pad_ctrl for details.
Note: The configuration bits of this register can be locked to protect it from reconfiguration by ASIC_CTRL_COM.netx_lock.lock_firewall. The functionality of the status bits are not influenced by ASIC_CTRL_COM.netx_lock.lock_firewall. |
|
R/W
|
0x00000033
|
Address : 0xff401750
|
Bits |
Reset value |
Name |
Description |
| 31 |
"0"
|
abort_dis
|
| disable abort-generation for denied accesses |
|
| 30 - 10 |
0
|
-
|
reserved |
| 9 |
"0"
|
stat_app
|
| status for APP side masters, write '1' to clear. |
|
| 8 |
"0"
|
stat_com
|
| Firewall status for COM side masters, write '1' to clear. |
|
| 7 - 6 |
0
|
-
|
reserved |
| 5 |
"1"
|
rp_app
|
| read permission for APP side masters |
|
| 4 |
"1"
|
rp_com
|
| read permission for COM side masters |
|
| 3 - 2 |
0
|
-
|
reserved |
| 1 |
"1"
|
wp_app
|
| write permission for APP side masters |
|
| 0 |
"1"
|
wp_com
|
| write permission for COM side masters |
|
| firewall_cfg_intlogic_shd_madc_seq0 |
Firewall configuration register for the intlogic_shd_madc_seq0 module.
See description of register firewall_cfg_intlogic_shd_pad_ctrl for details.
Note: The configuration bits of this register can be locked to protect it from reconfiguration by ASIC_CTRL_COM.netx_lock.lock_firewall. The functionality of the status bits are not influenced by ASIC_CTRL_COM.netx_lock.lock_firewall. |
|
R/W
|
0x00000033
|
Address : 0xff401754
|
Bits |
Reset value |
Name |
Description |
| 31 |
"0"
|
abort_dis
|
| disable abort-generation for denied accesses |
|
| 30 - 10 |
0
|
-
|
reserved |
| 9 |
"0"
|
stat_app
|
| status for APP side masters, write '1' to clear. |
|
| 8 |
"0"
|
stat_com
|
| Firewall status for COM side masters, write '1' to clear. |
|
| 7 - 6 |
0
|
-
|
reserved |
| 5 |
"1"
|
rp_app
|
| read permission for APP side masters |
|
| 4 |
"1"
|
rp_com
|
| read permission for COM side masters |
|
| 3 - 2 |
0
|
-
|
reserved |
| 1 |
"1"
|
wp_app
|
| write permission for APP side masters |
|
| 0 |
"1"
|
wp_com
|
| write permission for COM side masters |
|
| firewall_cfg_intlogic_shd_madc_seq1 |
Firewall configuration register for the intlogic_shd_madc_seq1 module.
See description of register firewall_cfg_intlogic_shd_pad_ctrl for details.
Note: The configuration bits of this register can be locked to protect it from reconfiguration by ASIC_CTRL_COM.netx_lock.lock_firewall. The functionality of the status bits are not influenced by ASIC_CTRL_COM.netx_lock.lock_firewall. |
|
R/W
|
0x00000033
|
Address : 0xff401758
|
Bits |
Reset value |
Name |
Description |
| 31 |
"0"
|
abort_dis
|
| disable abort-generation for denied accesses |
|
| 30 - 10 |
0
|
-
|
reserved |
| 9 |
"0"
|
stat_app
|
| status for APP side masters, write '1' to clear. |
|
| 8 |
"0"
|
stat_com
|
| Firewall status for COM side masters, write '1' to clear. |
|
| 7 - 6 |
0
|
-
|
reserved |
| 5 |
"1"
|
rp_app
|
| read permission for APP side masters |
|
| 4 |
"1"
|
rp_com
|
| read permission for COM side masters |
|
| 3 - 2 |
0
|
-
|
reserved |
| 1 |
"1"
|
wp_app
|
| write permission for APP side masters |
|
| 0 |
"1"
|
wp_com
|
| write permission for COM side masters |
|
| firewall_cfg_intlogic_shd_madc_seq2 |
Firewall configuration register for the intlogic_shd_madc_seq2 module.
See description of register firewall_cfg_intlogic_shd_pad_ctrl for details.
Note: The configuration bits of this register can be locked to protect it from reconfiguration by ASIC_CTRL_COM.netx_lock.lock_firewall. The functionality of the status bits are not influenced by ASIC_CTRL_COM.netx_lock.lock_firewall. |
|
R/W
|
0x00000033
|
Address : 0xff40175c
|
Bits |
Reset value |
Name |
Description |
| 31 |
"0"
|
abort_dis
|
| disable abort-generation for denied accesses |
|
| 30 - 10 |
0
|
-
|
reserved |
| 9 |
"0"
|
stat_app
|
| status for APP side masters, write '1' to clear. |
|
| 8 |
"0"
|
stat_com
|
| Firewall status for COM side masters, write '1' to clear. |
|
| 7 - 6 |
0
|
-
|
reserved |
| 5 |
"1"
|
rp_app
|
| read permission for APP side masters |
|
| 4 |
"1"
|
rp_com
|
| read permission for COM side masters |
|
| 3 - 2 |
0
|
-
|
reserved |
| 1 |
"1"
|
wp_app
|
| write permission for APP side masters |
|
| 0 |
"1"
|
wp_com
|
| write permission for COM side masters |
|
| firewall_cfg_intlogic_shd_madc_seq3 |
Firewall configuration register for the intlogic_shd_madc_seq3 module.
See description of register firewall_cfg_intlogic_shd_pad_ctrl for details.
Note: The configuration bits of this register can be locked to protect it from reconfiguration by ASIC_CTRL_COM.netx_lock.lock_firewall. The functionality of the status bits are not influenced by ASIC_CTRL_COM.netx_lock.lock_firewall. |
|
R/W
|
0x00000033
|
Address : 0xff401760
|
Bits |
Reset value |
Name |
Description |
| 31 |
"0"
|
abort_dis
|
| disable abort-generation for denied accesses |
|
| 30 - 10 |
0
|
-
|
reserved |
| 9 |
"0"
|
stat_app
|
| status for APP side masters, write '1' to clear. |
|
| 8 |
"0"
|
stat_com
|
| Firewall status for COM side masters, write '1' to clear. |
|
| 7 - 6 |
0
|
-
|
reserved |
| 5 |
"1"
|
rp_app
|
| read permission for APP side masters |
|
| 4 |
"1"
|
rp_com
|
| read permission for COM side masters |
|
| 3 - 2 |
0
|
-
|
reserved |
| 1 |
"1"
|
wp_app
|
| write permission for APP side masters |
|
| 0 |
"1"
|
wp_com
|
| write permission for COM side masters |
|
| firewall_cfg_hifmemctrl |
Firewall configuration register for the configuration registers of the HIF MI.
See description of register firewall_cfg_intlogic_shd_pad_ctrl for details. Note that read access cannot be blocked for the configuration registers of the HIF MI. The failed-access-status is not logged individually for each MI configuration register.
Note: The configuration bits of this register can be locked to protect it from reconfiguration by ASIC_CTRL_COM.netx_lock.lock_firewall. The functionality of the status bits are not influenced by ASIC_CTRL_COM.netx_lock.lock_firewall. |
|
R/W
|
0x03333333
|
Address : 0xff40177c
|
Bits |
Reset value |
Name |
Description |
| 31 |
"0"
|
abort_dis
|
| Disable abort-generation for denied accesses for all registers controlled by this register. |
|
| 30 |
0
|
-
|
reserved |
| 29 |
"0"
|
stat_app
|
| Status for APP side masters for all registers above, write '1' to clear. |
|
| 28 |
"0"
|
stat_com
|
| Firewall status for COM side masters for all registers above, write '1' to clear. |
|
| 27 - 26 |
0
|
-
|
reserved |
| 25 |
"1"
|
sdram_ctrl_wp_app
|
Write permission for APP side masters for the following register(s): all registers of hif_sdram_ctrl and hifmem_priority_ctrl |
|
| 24 |
"1"
|
sdram_ctrl_wp_com
|
Write permission for COM side masters for the following register(s): all registers of hif_sdram_ctrl and hifmem_priority_ctrl |
|
| 23 - 22 |
0
|
-
|
reserved |
| 21 |
"1"
|
extsram3_ctrl_wp_app
|
Write permission for APP side masters for the following register(s): hif_asyncmem_ctrl.extsram3_ctrl |
|
| 20 |
"1"
|
extsram3_ctrl_wp_com
|
Write permission for COM side masters for the following register(s): hif_asyncmem_ctrl.extsram3_ctrl |
|
| 19 - 18 |
0
|
-
|
reserved |
| 17 |
"1"
|
extsram2_ctrl_wp_app
|
Write permission for APP side masters for the following register(s): hif_asyncmem_ctrl.extsram2_ctrl |
|
| 16 |
"1"
|
extsram2_ctrl_wp_com
|
Write permission for COM side masters for the following register(s): hif_asyncmem_ctrl.extsram2_ctrl |
|
| 15 - 14 |
0
|
-
|
reserved |
| 13 |
"1"
|
extsram1_ctrl_wp_app
|
Write permission for APP side masters for the following register(s): hif_asyncmem_ctrl.extsram1_ctrl |
|
| 12 |
"1"
|
extsram1_ctrl_wp_com
|
Write permission for COM side masters for the following register(s): hif_asyncmem_ctrl.extsram1_ctrl |
|
| 11 - 10 |
0
|
-
|
reserved |
| 9 |
"1"
|
extsram0_ctrl_wp_app
|
Write permission for APP side masters for the following register(s): hif_asyncmem_ctrl.extsram0_ctrl and hif_asyncmem_ctrl.ext_cs0_apm_ctr |
|
| 8 |
"1"
|
extsram0_ctrl_wp_com
|
Write permission for COM side masters for the following register(s): hif_asyncmem_ctrl.extsram0_ctrl and hif_asyncmem_ctrl.ext_cs0_apm_ctr |
|
| 7 - 6 |
0
|
-
|
reserved |
| 5 |
"1"
|
ext_rdy_status_wp_app
|
Write permission for APP side masters for the following register(s): hif_asyncmem_ctrl.ext_rdy_status |
|
| 4 |
"1"
|
ext_rdy_status_wp_com
|
Write permission for COM side masters for the following register(s): hif_asyncmem_ctrl.ext_rdy_status |
|
| 3 - 2 |
0
|
-
|
reserved |
| 1 |
"1"
|
ext_rdy_cfg_wp_app
|
Write permission for APP side masters for the following register(s): hif_asyncmem_ctrl.ext_rdy_cfg |
|
| 0 |
"1"
|
ext_rdy_cfg_wp_com
|
Write permission for COM side masters for the following register(s): hif_asyncmem_ctrl.ext_rdy_cfg |
|
| madc_seq_cfg |
|
R/W
|
0x0000ff02
|
Address@madc_seq0 : 0xff401800
Address@madc_seq1 : 0xff401900
Address@madc_seq2 : 0xff401a00
Address@madc_seq3 : 0xff401b00
|
Bits |
Reset value |
Name |
Description |
| 31 - 20 |
0
|
-
|
reserved |
| 19 |
"0"
|
dma_disable
|
| 1: |
DMA is disabled, results are not written to memory, only the current result will be visible in madc_seq_result_current. |
| 0: |
DMA is enabled, results are written to memory as defined in madc_seq_ms_adr and madc_seq_m*-adr_offset. |
|
| 18 |
"0"
|
dma_32bit_adr
|
The DMA engine only uses 32bit addresses and DWord access. This mode wastes memory but speeds up the DMA access by not running read-modify-write cycles. |
|
| 17 |
"0"
|
vref_vdd3
|
| 0: |
use reference from pin VREF_ADC (internally driven C or external reference, s. madc_adc01_static_cfg-vref_buffer_enable) |
| 1: |
use reference from pin VDD3 (Analog core supply) |
|
| 16 |
"0"
|
adcclk_sync
|
| 0: |
The rising edges of adcclk are generated independently of the other ADCs. |
| 1: |
Use adc_clock_phase for defined clock phases in relation to other ADC sequencers |
|
| 15 - 8 |
"11111111"
|
adcclk_phase
|
Generation of the rising edge of the adcclk is delayed until the global clk_phase counter matches this value. NOTE: The rising edge of the adcclk ending the first sample period of a triggered measurement is NEVER delayed. |
|
| 7 - 0 |
"00000010"
|
adcclk_period
|
Duration of an adcclk period in system clock cycles-1 For odd values the high phase of adcclk is one system clock cycle longer than the low phase. |
|
| madc_seq_ms_en |
Enable measurement configurations: Terminology: A measurement sequence consists of upto 8 measurements. A measurement consists of up to 8 samples. A sample needs at least 14 adcclk cycles (+ tracking time addon). This register enables the measurements belonging to a measurement sequence (up to 8). With the start of a measurement sequence (s. madc_seq_cmd) all sequence configuration registers (ms_en, ms_adr, m0..m7) are copied to shadow registers that can no longer be changed until the measurement sequence is finished. All further write accesses to these registers will be valid for the subsequent measurement sequence. The software must ensure, that a set of configuration data for one sequence is completely written before starting the next sequence. |
|
R/W
|
0x00000000
|
Address@madc_seq0 : 0xff401824
Address@madc_seq1 : 0xff401924
Address@madc_seq2 : 0xff401a24
Address@madc_seq3 : 0xff401b24
|
Bits |
Reset value |
Name |
Description |
| 31 - 8 |
0
|
-
|
reserved |
| 7 |
"0"
|
m7
|
| 1: Enable measurement defined by madc_seq_m7 for the current measurement sequence |
|
| 6 |
"0"
|
m6
|
| 1: Enable measurement defined by madc_seq_m6 for the current measurement sequence |
|
| 5 |
"0"
|
m5
|
| 1: Enable measurement defined by madc_seq_m5 for the current measurement sequence |
|
| 4 |
"0"
|
m4
|
| 1: Enable measurement defined by madc_seq_m4 for the current measurement sequence |
|
| 3 |
"0"
|
m3
|
| 1: Enable measurement defined by madc_seq_m3 for the current measurement sequence |
|
| 2 |
"0"
|
m2
|
| 1: Enable measurement defined by madc_seq_m2 for the current measurement sequence |
|
| 1 |
"0"
|
m1
|
| 1: Enable measurement defined by madc_seq_m1 for the current measurement sequence |
|
| 0 |
"0"
|
m0
|
| 1: Enable measurement defined by madc_seq_m0 for the current measurement sequence |
|
| madc_seq_m0 |
Measurement 0 configuration: A measurement performs (oversample+1) ADC conversions, summing up the results. Every ADC conversion starts with two adcclk periods followed by a sampling phase extension with a minimal duration selected by sext_sel. The sampling phase of the first ADC conversion of the measurement ends when the trigger condition is fulfilled. All subsequent conversions of the measurement do not wait for any trigger condition. The sum consisting of (oversample+1) ADC conversions is written as a 16 bit word to the memory location (byte address) ms_adr + 2*adr_offset. During the measurement the input multiplexer setting (channel selection) is changed to the value mux. Depending on the timing selected by mux_time_sel the channel setting becomes effective for this or the next measurement. |
|
R/W
|
0x0001ffff
|
Address@madc_seq0 : 0xff40182c
Address@madc_seq1 : 0xff40192c
Address@madc_seq2 : 0xff401a2c
Address@madc_seq3 : 0xff401b2c
|
Bits |
Reset value |
Name |
Description |
| 31 - 28 |
0
|
-
|
reserved |
| 27 - 23 |
"00000"
|
adr_offset
|
Address offset specified in 16 bit words where the sum will be stored In case of madc_seq_cfg-dma_32bit_adr=1, this value will be interpreted as 32-bit address. |
|
| 22 - 20 |
"000"
|
mux
|
Input channel multiplexer setting The input multiplexer will always be set 1 system clock (10ns) before SOF. It will be reset after sampling to ensure a not-connected phase at the one-hot-coded multiplexer switches. |
|
| 19 - 17 |
"000"
|
oversample
|
Number of samples minus one to sum for this measurement i.e. 0:sum 1 samples, 1:sum 2 samples, ... |
|
| 16 - 0 |
0x1ffff
|
trigger
|
| Trigger condition for measurement |
| 0x0...0x0FFFF: |
condition (ECNT == trigger) |
| 0x10000...0x10005: |
delayed DTEVT[0..5]==1 |
| 0x10006: |
GPIO_APP_COUNTER0 = 0 |
| 0x10007: |
GPIO_APP_COUNTER1 = 0 |
| 0x10008: |
GPIO_APP_COUNTER2 = 0 |
| 0x10009: |
posedge of xc_trigger[0] |
| 0x1000a: |
posedge of xc_trigger[1] |
| 0x1000b: |
negedge of xc_trigger[0] |
| 0x1000c: |
negedge of xc_trigger[1] |
| 0x1000d: |
posedge of xc_sample[0] |
| 0x1000e: |
posedge of xc_sample[1] |
| 0x1000f: |
negedge of xc_sample[0] |
| 0x10010: |
negedge of xc_sample[1] |
| 0x1FFFF: |
no trigger, measurement executes immediately after end of sampling phase |
| Note: Ensure that the time between SOC and trigger event does not exceed ADC_MAXTRACK (10ms). |
|
| madc_seq_cmd |
Command Register: Run or abort processing the measurement sequence. This register is writable but can also be changed by hardware (reset). |
|
R/W
|
0x00000000
|
Address@madc_seq0 : 0xff40184c
Address@madc_seq1 : 0xff40194c
Address@madc_seq2 : 0xff401a4c
Address@madc_seq3 : 0xff401b4c
|
Bits |
Reset value |
Name |
Description |
| 31 - 4 |
0
|
-
|
reserved |
| 3 |
"0"
|
debug
|
| 0: |
ADC is controlled by measurement sequencer |
| 1: |
ADC is directly controlled by madc_seq_debug register. |
|
| 2 |
"0"
|
reset
|
Reset this ADC-sequencer: In comparision to madc_adc01_static_cfg-adc01_reset_n, which resets a pair of ADC channels (e.g. ADC0 and ADC1), this bit only resets this single ADC-sequencer. The analog part of ADC will not be reset, but all registers of the controller (including result registers, which will not be reset in case of run=stop). |
|
| 1 |
"0"
|
continuous
|
| 0: |
run starts single conversion. All measurements enabled in madc_m_en are executed once. |
| 1: |
start continuous conversion. All measurments enabled are executed repeatedly until stopped by resetting the run bit. |
|
| 0 |
"0"
|
run
|
Run bit: This bit can be set here or at madc_start to start all ADCs simultaneously. This bit can be reset here or automatically by hardware, when measurement sequence is finished. |
| 1 : |
start measurement sequence. |
| 0 : |
stop measurement sequence. Any conversion in progress is aborted and ADC returns to idle state with adcclk=0 and adc_soc=0. |
|
| madc_seq_irq_raw |
Raw IRQ: Read access shows status of unmasked IRQs. IRQs are set automatically and reset by writing to this register: Write access with '1' resets the appropriate IRQ (if event irq, reset status irqs at their source). Write access with '0' does not influence this bit. |
|
R/W
|
0x00000000
|
Address@madc_seq0 : 0xff401870
Address@madc_seq1 : 0xff401970
Address@madc_seq2 : 0xff401a70
Address@madc_seq3 : 0xff401b70
|
Bits |
Reset value |
Name |
Description |
| 31 - 11 |
0
|
-
|
reserved |
| 10 |
"0"
|
dma_hresp
|
| AHBL hresp signal received |
|
| 9 |
"0"
|
dma_overrun
|
AHBL write buffer overrun result not written due to AHBL busy |
|
| 8 |
"0"
|
seq_cmpl
|
| measurement sequence completed |
|
| 7 |
"0"
|
m7_cmpl
|
| event: measurement 7 completed |
|
| 6 |
"0"
|
m6_cmpl
|
| event: measurement 6 completed |
|
| 5 |
"0"
|
m5_cmpl
|
| event: measurement 5 completed |
|
| 4 |
"0"
|
m4_cmpl
|
| event: measurement 4 completed |
|
| 3 |
"0"
|
m3_cmpl
|
| event: measurement 3 completed |
|
| 2 |
"0"
|
m2_cmpl
|
| event: measurement 2 completed |
|
| 1 |
"0"
|
m1_cmpl
|
| event: measurement 1 completed |
|
| 0 |
"0"
|
m0_cmpl
|
| event: measurement 0 completed |
|
| madc_seq_irq_masked |
Masked IRQ: Shows status of masked IRQs (as connected to ARM/xPIC). |
|
R
|
Address@madc_seq0 : 0xff401874
Address@madc_seq1 : 0xff401974
Address@madc_seq2 : 0xff401a74
Address@madc_seq3 : 0xff401b74
|
Bits |
Name |
Description |
| 31 - 11 |
-
|
reserved |
| 10 |
dma_hresp
|
| AHBL hresp signal received |
|
| 9 |
dma_overrun
|
AHBL write buffer overrun result not written due to AHBL busy |
|
| 8 |
seq_cmpl
|
| measurement sequence completed |
|
| 7 |
m7_cmpl
|
| event: measurement 7 completed |
|
| 6 |
m6_cmpl
|
| event: measurement 6 completed |
|
| 5 |
m5_cmpl
|
| event: measurement 5 completed |
|
| 4 |
m4_cmpl
|
| event: measurement 4 completed |
|
| 3 |
m3_cmpl
|
| event: measurement 3 completed |
|
| 2 |
m2_cmpl
|
| event: measurement 2 completed |
|
| 1 |
m1_cmpl
|
| event: measurement 1 completed |
|
| 0 |
m0_cmpl
|
| event: measurement 0 completed |
|
| madc_seq_irq_mask_set |
IRQ enable mask: The IRQ mask enables interrupt requests for corresponding interrupt sources. As its bits might be changed by different software tasks, the IRQ mask register is not writable directly, but by set and reset masks: Write access with '1' sets interrupt mask bit. Write access with '0' does not influence this bit. Read access shows actual interrupt mask. Attention: Before activating interrupt mask, delete old pending interrupts by writing the same value to adr_mpwm_irq_raw. |
|
R/W
|
0x00000000
|
Address@madc_seq0 : 0xff401878
Address@madc_seq1 : 0xff401978
Address@madc_seq2 : 0xff401a78
Address@madc_seq3 : 0xff401b78
|
Bits |
Reset value |
Name |
Description |
| 31 - 11 |
0
|
-
|
reserved |
| 10 |
"0"
|
dma_hresp
|
| AHBL hresp signal received |
|
| 9 |
"0"
|
dma_overrun
|
AHBL write buffer overrun result not written due to AHBL busy |
|
| 8 |
"0"
|
seq_cmpl
|
| measurement sequence completed |
|
| 7 |
"0"
|
m7_cmpl
|
| event: measurement 7 completed |
|
| 6 |
"0"
|
m6_cmpl
|
| event: measurement 6 completed |
|
| 5 |
"0"
|
m5_cmpl
|
| event: measurement 5 completed |
|
| 4 |
"0"
|
m4_cmpl
|
| event: measurement 4 completed |
|
| 3 |
"0"
|
m3_cmpl
|
| event: measurement 3 completed |
|
| 2 |
"0"
|
m2_cmpl
|
| event: measurement 2 completed |
|
| 1 |
"0"
|
m1_cmpl
|
| event: measurement 1 completed |
|
| 0 |
"0"
|
m0_cmpl
|
| event: measurement 0 completed |
|
| madc_seq_irq_mask_reset |
IRQ disable mask: This is the corresponding reset mask to disable interrupt requests for corresponding interrupt sources: Write access with '1' resets interrupt mask bit. Write access with '0' does not influence this bit. Read access shows bit number of the lowest active bit in IRQ_MASKED or MAX+1 when no bit is set. |
|
R/W
|
0x00000000
|
Address@madc_seq0 : 0xff40187c
Address@madc_seq1 : 0xff40197c
Address@madc_seq2 : 0xff401a7c
Address@madc_seq3 : 0xff401b7c
|
Bits |
Reset value |
Name |
Description |
| 31 - 11 |
0
|
-
|
reserved |
| 10 |
"0"
|
dma_hresp
|
| AHBL hresp signal received |
|
| 9 |
"0"
|
dma_overrun
|
AHBL write buffer overrun result not written due to AHBL busy |
|
| 8 |
"0"
|
seq_cmpl
|
| measurement sequence completed |
|
| 7 |
"0"
|
m7_cmpl
|
| event: measurement 7 completed |
|
| 6 |
"0"
|
m6_cmpl
|
| event: measurement 6 completed |
|
| 5 |
"0"
|
m5_cmpl
|
| event: measurement 5 completed |
|
| 4 |
"0"
|
m4_cmpl
|
| event: measurement 4 completed |
|
| 3 |
"0"
|
m3_cmpl
|
| event: measurement 3 completed |
|
| 2 |
"0"
|
m2_cmpl
|
| event: measurement 2 completed |
|
| 1 |
"0"
|
m1_cmpl
|
| event: measurement 1 completed |
|
| 0 |
"0"
|
m0_cmpl
|
| event: measurement 0 completed |
|
| eth_config |
|
R/W
|
0x00000004
|
Address : 0xff480000
|
Bits |
Reset value |
Name |
Description |
| 31 - 30 |
0
|
-
|
reserved |
| 29 |
"0"
|
phy_mode
|
| 0: |
behave like an ethernet MAC, sync to external rxclk/txclk |
| 1: |
behave like an ethernet PHY, generate txclk (=rxclk), signals change their function: |
| rxclk: |
not used |
| rxd[3:0]: |
data input, to be connected to txd[3:0] of MAC device |
| rxdv: |
Data valid input, to be connected to txen of MAC device |
| rxer: |
Error input, to be connected to txer of MAC device |
| txclk: |
Clock output, to be connected to rxclk and txclk of MAC device |
| txd[3:0]: |
Data output, to be connected to rxd[3:0] of MAC device |
| txen: |
Data valid output, to be connected to rxdv of MAC device |
| txer: |
Error output. to be connected to rxer of MAC device |
| col: |
not used |
| crs: |
not used |
|
| 28 |
"0"
|
hd_suppress_loopback
|
| Suppress loopback in half_duplex mode: |
| 1: |
don't start RX-process, if txen is active. |
| 0: |
RX and TX work indepentently. |
|
| 27 |
"0"
|
frequency
|
| 1: |
50MHz (use in PHY mode only) |
| 0: |
25MHz |
|
| 26 - 14 |
0
|
-
|
reserved |
| 13 |
"0"
|
rx_enable
|
Enable of receive state machine: When disabled, receive state machine is reset. After enabling, receive state machine waits for rxdv going down. If rxdv is already down, proper IFG is expected. |
|
| 12 |
"0"
|
rx_systime_sfd
|
| Sample systime at SFD of received frame: |
| 1: |
Sample systime_ns to eth_rx_systime_ns at SFD (+constant offset) |
| 0: |
Sample systime_ns to eth_rx_systime_ns when rxdv gets active (+constant offset) |
|
| 11 |
"0"
|
rx_dma_mode
|
Receive DMA mode: Each received frame needs 2 DMA-transfers, one for package data and one for rx_len/status. In rx_dma_mode irq_raw-rx_frame_finished is reset automatically. |
|
| 10 |
"0"
|
rx_no_preamble
|
| receive starts, when rxdv gets active |
|
| 9 |
"0"
|
rx_exact_preamble
|
Accept only packages with exact preamble, rx_preamble_error IRQ will be generated independant on this setting. |
|
| 8 |
"0"
|
rx_allow_jumbo_packets
|
Receive frames > 1522 bytes. If jumbo_packets are not allowed, the receive frame buffer must be 1524 bytes. Warning: Frames with len > 2047 will be received, but rx_frame_len has only 11 bit. |
|
| 7 |
"0"
|
rx_delay_inputs
|
Delay mii inputs (rx_d, rx_dv, rx_err, crs, col) by 1 clockcycle before sampling them. This leads to inputs fitting to sampled rxclk. Enable this in MAC mode, disable in PHY mode. |
|
| 6 - 4 |
"000"
|
rx_sample_phase
|
clk-phase in which rxd is sampled: PHY mode (phy_mode=1): |
| 0,4: |
sample at posedge tx_clk |
| 1,5: |
sample at posedge tx_clk + 1cc |
| 2,6: |
sample at posedge tx_clk + 2cc |
| 3,7: |
sample at posedge tx_clk + 3cc |
| 0: |
sample at posedge rx_clk + 1cc |
| 1: |
sample at posedge rx_clk + 2cc |
| 2: |
sample at posedge rx_clk + 3cc |
| 3: |
sample at posedge rx_clk + 4cc |
| 4: |
sample at negedge rx_clk + 3cc |
| 5: |
sample at negedge rx_clk + 4cc |
| 6: |
sample at negedge rx_clk + 1cc |
| 7: |
sample at negedge rx_clk + 2cc |
|
| 3 - 0 |
"0100"
|
rx_watermark_irq
|
Watermark for RX-FIFO, that generates interrupt This number of DWords is available inside RX-FIFO |
|
| eth_tx_config |
|
R/W
|
0x02188084
|
Address : 0xff480004
|
Bits |
Reset value |
Name |
Description |
| 31 |
"0"
|
half_duplex
|
1:
|
In half duplex mode transmission of a frame starts after the following sequence: - tx_watermark_start was reached - mii_crs became low and stayed low for tx_crs_low_cycles - (tx_min_ifg_cycles - tx_crs_low_cycles) are passed |
0: |
In full duplex mode transmission of a frame starts after the following sequence: - tx_min_ifg_cycles are passed after the last transmitted frame - tx_watermark_start was reached |
|
| 30 |
"0"
|
tx_dma_mode
|
In tx_dma_mode tx_len comes from DMAC automatically. An extra tx_lsreq will be generated to request tx_len, before frame data is requested (and after previous frame is finished). In tx_dma_mode irq_raw-tx_frame_finished is reset automatically. |
|
| 29 |
"0"
|
tx_systime_sfd
|
| 1: |
Sample systime_ns to eth_tx_systime_ns at SFD (-constant offset) |
| 0: |
Sample systime_ns to eth_tx_systime_ns when txen gets active (-constant offset) |
|
| 28 - 26 |
"000"
|
tx_abort_frame
|
| Different abort mechanisms: |
| 000: |
no abort: Transmit frame from TX-FIFO until tx_len and append correct FCS. |
001: |
standard abort: Abort transmission, send wrong FCS, activate mii_txer. SW should keep bit active until irq-tx_frame_finished, then reset TX-FIFO. |
010: |
abort with dribble nibble: Like standard abort, but append dribble nibble after wrong FCS (needed by some PHYs to detect error condition) SW should keep bit active until irq-tx_frame_finished, then reset TX-FIFO. |
| 011: |
no FCS mode: Transmit frame from TX-FIFO until tx_len but do not append FCS. Never activate mii_txer (except in case of tx_fifo_undr). |
100:
|
Fast Track Switching controlled abort: Wait for next byte-border, then attach special FCS as wrong FCS. Special FCS is "a0a0a0a0", or "a0a0a0a1" in case that real FCS would end with "a0". Do not activate mii_txer. SW should keep bit active until irq-tx_frame_finished, then reset TX-FIFO. |
| 101: |
reserved |
| 110: |
reserved |
| 111: |
reserved |
|
| 25 - 21 |
"10000"
|
tx_crs_low_cycles
|
txclk-cycles with mii_crs low, before free carrier is detected (only used in half_duplex mode): Value range: [0,tx_min_ifg_cycles]. For details s. half_duplex mode. |
|
| 20 - 16 |
"11000"
|
tx_min_ifg_cycles
|
minimum IFG in txclk-cycles In half_duplex mode reduce value by 2 to compensate cycles for sampling of mii_crs. |
|
| 15 - 11 |
"10000"
|
tx_preamble_len
|
| Length of TX-preamble in nibbles (incl. SFD) |
|
| 10 - 8 |
"000"
|
tx_output_phase
|
clk-phase in which txd, txen, txer is changed at output PHY mode (phy_mode=1): |
| 0,4: |
change output at negedge tx_clk |
| 1,5: |
change output at negedge tx_clk + 1cc |
| 2,6: |
change output at negedge tx_clk + 2cc |
| 3,7: |
change output at negedge tx_clk + 3cc |
| 0: |
change output at posedge tx_clk + 2cc |
| 1: |
change output at posedge tx_clk + 3cc |
| 2: |
change output at posedge tx_clk + 4cc |
| 3: |
change output at posedge tx_clk + 5cc |
| 4: |
change output at negedge tx_clk + 4cc |
| 5: |
change output at negedge tx_clk + 5cc |
| 6: |
change output at negedge tx_clk + 2cc |
| 7: |
change output at negedge tx_clk + 3cc |
|
| 7 - 4 |
"1000"
|
tx_watermark_start
|
Watermark for TX-FIFO, that starts transmission. This number of DWords is inside TX-FIFO |
|
| 3 - 0 |
"0100"
|
tx_watermark_irq
|
Watermark for TX-FIFO, that generates IRQ. This number of DWords is free inside TX-FIFO |
|
| eth_irq_raw |
Raw IRQ: Read access shows status of unmasked IRQs. IRQs are set automatically and reset by writing to this register: Write access with '1' resets the appropriate IRQ. Write access with '0' does not influence this bit. Write access with '1' to rx_/tx_fifo_undr/_ovfl resets RX-FIFO/TX-FIFO. Bits rx_data and tx_fifo are cleared by reading from/filling the appropriate FIFO. |
|
R/W
|
0x00000000
|
Address : 0xff480028
|
Bits |
Reset value |
Name |
Description |
| 31 - 13 |
0
|
-
|
reserved |
| 12 |
"0"
|
tx_late_col
|
| late colision detected in half_duplex mode, started sending jam |
|
| 11 |
"0"
|
tx_col
|
| collision detected in half_duplex mode, started sending jam |
|
| 10 |
"0"
|
rx_preamble_error
|
| data <> 0x5 during preamble or wrong length of preamble |
|
| 9 |
"0"
|
rx_short_dv
|
| mii_rxdv becomes low before SFD |
|
| 8 |
"0"
|
rx_cpu_too_slow
|
| next frame started before irq_raw_rx_frame_finished was cleared |
|
| 7 |
"0"
|
rx_fifo_ovfl
|
|
| 6 |
"0"
|
rx_fifo_undr
|
| RX-FIFO underrun (debug only, can never happen in ASIC) |
|
| 5 |
"0"
|
tx_fifo_ovfl
|
| TX-FIFO overflow (debug only, can never happen in ASIC) |
|
| 4 |
"0"
|
tx_fifo_undr
|
|
| 3 |
"0"
|
rx_frame_finished
|
RX frame finished: Clearing this bit tells the module, that the CPU has read rx_len_stat and the next frame can be received. In rx_dma_mode this bit is handled automatically, demask it to the CPU. |
|
| 2 |
"0"
|
rx_data
|
|
| 1 |
"0"
|
tx_frame_finished
|
TX frame finished: In tx_dma_mode this bit is handled automatically, demask it to the CPU. |
|
| 0 |
"0"
|
tx_fifo
|
|
| eth_irq_msk_set |
IRQ mask set: The IRQ mask enables interrupt requests for corresponding interrupt sources. As its bits might be changed by different software tasks, the IRQ mask register is not writable directly, but by set and reset masks: Write access with '1' sets interrupt mask bit. Write access with '0' does not influence this bit. Read access shows actual interrupt mask. Attention: Before activating interrupt mask, delete old pending interrupts by writing the same value to adr_eth_irq_raw. |
|
R/W
|
0x00000000
|
Address : 0xff480030
|
Bits |
Reset value |
Name |
Description |
| 31 - 13 |
0
|
-
|
reserved |
| 12 |
"0"
|
tx_late_col
|
| late colision detected in half_duplex mode, started sending jam |
|
| 11 |
"0"
|
tx_col
|
| collision detected in half_duplex mode, started sending jam |
|
| 10 |
"0"
|
rx_preamble_error
|
| data <> 0x5 during preamble or wrong length of preamble |
|
| 9 |
"0"
|
rx_short_dv
|
| mii_rxdv becomes low before SFD |
|
| 8 |
"0"
|
rx_cpu_too_slow
|
| next frame started before irq_raw_rx_frame_finished was cleared |
|
| 7 |
"0"
|
rx_fifo_ovfl
|
|
| 6 |
"0"
|
rx_fifo_undr
|
| RX-FIFO underrun (debug only, can never happen in ASIC) |
|
| 5 |
"0"
|
tx_fifo_ovfl
|
| TX-FIFO overflow (debug only, can never happen in ASIC) |
|
| 4 |
"0"
|
tx_fifo_undr
|
|
| 3 |
"0"
|
rx_frame_finished
|
|
| 2 |
"0"
|
rx_data
|
|
| 1 |
"0"
|
tx_frame_finished
|
|
| 0 |
"0"
|
tx_fifo
|
|
| eth_irq_msk_reset |
IRQ mask reset: This is the corresponding reset mask to disable interrupt requests for corresponding interrupt sources: Write access with '1' resets interrupt mask bit. Write access with '0' does not influence this bit. Read access shows actual interrupt mask. |
|
R/W
|
0x00000000
|
Address : 0xff480034
|
Bits |
Reset value |
Name |
Description |
| 31 - 13 |
0
|
-
|
reserved |
| 12 |
"0"
|
tx_late_col
|
| late colision detected in half_duplex mode, started sending jam |
|
| 11 |
"0"
|
tx_col
|
| collision detected in half_duplex mode, started sending jam |
|
| 10 |
"0"
|
rx_preamble_error
|
| data <> 0x5 during preamble or wrong length of preamble |
|
| 9 |
"0"
|
rx_short_dv
|
| mii_rxdv becomes low before SFD |
|
| 8 |
"0"
|
rx_cpu_too_slow
|
| next frame started before irq_raw_rx_frame_finished was cleared |
|
| 7 |
"0"
|
rx_fifo_ovfl
|
|
| 6 |
"0"
|
rx_fifo_undr
|
| RX-FIFO underrun (debug only, can never happen in ASIC) |
|
| 5 |
"0"
|
tx_fifo_ovfl
|
| TX-FIFO overflow (debug only, can never happen in ASIC) |
|
| 4 |
"0"
|
tx_fifo_undr
|
|
| 3 |
"0"
|
rx_frame_finished
|
|
| 2 |
"0"
|
rx_data
|
|
| 1 |
"0"
|
tx_frame_finished
|
|
| 0 |
"0"
|
tx_fifo
|
|
| dmac_chctrl |
| channel control registers |
|
R/W
|
0x00000000
|
Address@dmac_app_ch0 : 0xff80010c
Address@dmac_app_ch1 : 0xff80012c
Address@dmac_app_ch2 : 0xff80014c
Address@dmac_app_ch3 : 0xff80016c
|
Bits |
Reset value |
Name |
Description |
| 31 |
"0"
|
I
|
| Terminal count interrupt enable bit. It controls whether the current LLI is expected to trigger the terminal count interrupt. |
|
| 30 - 28 |
"000"
|
Prot
|
|
| 27 |
"0"
|
DI
|
| Destination increment. When set the destination address is incremented after each transfer. |
|
| 26 |
"0"
|
SI
|
| Source increment. When set the source address is incremented after each transfer. |
|
| 25 |
0
|
-
|
reserved |
| 24 |
"0"
|
ARM_EQ
|
Set equal behaviour to arm implementation This bit should always be set to 1 (default of 0 is from historical reasons). This bit changes 2 behavioural details: 1. ARM_EQ=1: ignore single requests in DMA-controlled Memory-to-Peripheral accesses. ARM_EQ=0: handle single requests like burst requests (in this case DBSize should be 1 access). Note: In DMA-controlled Memory-to-Peripheral mode only burst request signals are allowed. The behaviour of single requests (from peripheral to DMAC) is not defined. Modules generating single requests anyways might use ARM_EQ=0 in combination with DBSize=000. 2. ARM_EQ=1: Always read 0 from TransferSize in this register. ARM_EQ=0: Read some internal value for debug purposes |
|
| 23 - 21 |
"000"
|
DWidth
|
Destination transfer width: The source and destination widths can be different from each other. The hardware automatically packs and unpacks the data as required. _________________________ bit_value data_width ------------------------- 000 8 bit 001 16 bit 010 32 bit ========================= |
|
| 20 - 18 |
"000"
|
SWidth
|
Source transfer width: The source and destination widths can be different from each other. The hardware automatically packs and unpacks the data as required. _________________________ bit_value data_width ------------------------- 000 8 bit 001 16 bit 010 32 bit ========================= |
|
| 17 - 15 |
"000"
|
DBSize
|
Destination burst size: Indicates the number of transfers which make up a destination burst transfer request. This value must be set to the burst size of the destination peripheral, or if the destination is memory, to the memory boundary size. The burst size is the amount of data that is transferred when the DMACxBREQ signal goes active in the destination peripheral. The burst size is not related to the AHB HBURST signal. Note: If flow controller is DMAC and destination is a peripheral, only bursts are transferred to the peripheral (DMACxSREQ is ignored if set by peripheral). The source burst size has no such limitation. ________________________________ bit_value burst_transfer_size -------------------------------- 000 1 001 4 010 8 011 16 100 32 101 64 110 128 111 256 ================================ |
|
| 14 - 12 |
"000"
|
SBSize
|
Source burst size: Indicates the number of transfers which make up a source burst. This value must be set to the burst size of the source peripheral, or if the source is memory, to the memory boundary size. The burst size is the amount of data that is transferred when the DMACxBREQ signal goes active in the source peripheral. The burst size is not related to the AHB HBURST signal. ________________________________ bit_value burst_transfer_size -------------------------------- 000 1 001 4 010 8 011 16 100 32 101 64 110 128 111 256 ================================ |
|
| 11 - 0 |
0x0
|
TransferSize
|
Transfer size: For writes, this field indicates the number of (Source width) transfers to perform when the DMAC is the flow controller. For reads, the transfer size indicates the number of transfers completed on the destination bus. Reading the register when the channel is active does not give useful information, as by the time that the software has processed the value read, the channel might have progressed. It is intended to be used only when a channel is enabled and then disabled. If the DMAC controller is not the flow controller the transfer size should be set to 0. |
|
| dmac_chcfg |
| channel configuration registers |
|
R/W
|
0x00000000
|
Address@dmac_app_ch0 : 0xff800110
Address@dmac_app_ch1 : 0xff800130
Address@dmac_app_ch2 : 0xff800150
Address@dmac_app_ch3 : 0xff800170
|
Bits |
Reset value |
Name |
Description |
| 31 - 19 |
0
|
-
|
reserved |
| 18 |
"0"
|
H
|
Halt: 0 = allow DMA requests 1 = ignore further source DMA requests. The contents of the channels FIFO are drained. This value can be used with the Active and Channel Enable bits to cleanly disable a DMA channel. |
|
| 17 |
"0"
|
A
|
Active: 0 = there is no data in the FIFO of the channel 1 = the FIFO of the channel has data. (ro) This value can be used with the Halt and Channel Enable bits to cleanly disable a DMA channel. |
|
| 16 |
"0"
|
L
|
| Lock. When set this bit enables locked transfers. |
|
| 15 |
"0"
|
ITC
|
| Terminal count interrupt mask. When cleared this bit masks out the terminal count interrupt of the relevant channel. |
|
| 14 |
"0"
|
IE
|
| Interrupt error mask. When cleared this bit masks out the error interrupt of the relevant channel. |
|
| 13 - 11 |
"000"
|
FlowCntrl
|
Flow control and transfer type. This value is used to indicate the flow controller and transfer type. The flow controller can be the DMAC, the source peripheral, or the destination peripheral. The transfer type can be either memory-to-memory, memory-to-peripheral, peripheral-to-memory, or peripheral-to-peripheral. _______________________________________________________________________ bit_value transfer_type controller ----------------------------------------------------------------------- 000 Memory-to-memory DMAC 001 Memory-to-peripheral DMAC 010 Peripheral-to-memorys DMAC 011 Source peripheral-to-destination peripheral DMAC (not supported in netX system) 100 Source peripheral-to-destination peripheral Destination peripheral (not supported in netX system) 101 Memory-to-peripheral Peripheral 110 Peripheral-to-memory Peripheral 111 Source peripheral-to-destination peripheral Source peripheral (not supported in netX system) ======================================================================== Note: Peripheral-to-peripheral transfers are configurable, but not supported in the netX system. Don't use these three modes. |
|
| 10 |
0
|
-
|
reserved |
| 9 - 6 |
"0000"
|
DestPeripheral
|
Destination peripheral. This value selects the DMA destination request peripheral. This field is ignored if the destination of the transfer is to memory. For mapping of peripheral to value see 'SrcPeripheral' bit-field in this register. |
|
| 5 |
0
|
-
|
reserved |
| 4 - 1 |
"0000"
|
SrcPeripheral
|
Source peripheral. This value selects the DMA source request peripheral. This field is ignored if the source of the transfer is from memory. Note: The mapping of peripherals to App-side DMAC inputs is done within the DMAC_MUX_APP module. See 'dmac_mux_peripheral_input_sel*' registers for default mapping / current mapping. |
| value |
Com-side |
App-side |
| 0 |
uart_rx |
dmac_mux_peripheral_input_sel0 |
| 1 |
uart_tx |
dmac_mux_peripheral_input_sel1 |
| 2 |
i2c0_com_master |
dmac_mux_peripheral_input_sel2 |
| 3 |
i2c0_com_slave |
dmac_mux_peripheral_input_sel3 |
| 4 |
i2c1_com_master |
dmac_mux_peripheral_input_sel4 |
| 5 |
i2c1_com_slave |
dmac_mux_peripheral_input_sel5 |
| 6 |
sqi_rx |
dmac_mux_peripheral_input_sel6 |
| 7 |
sqi_tx |
dmac_mux_peripheral_input_sel7 |
| 8 |
eth_rx |
reserved |
| 9 |
eth_tx |
reserved |
| 10 |
hash |
reserved |
| 11 |
aes_in |
reserved |
| 12 |
aes_out |
reserved |
| 13 |
reserved |
reserved |
| 14 |
reserved |
reserved |
| 15 |
reserved |
reserved |
|
| 0 |
"0"
|
E
|
Channel enable. Reading this bit indicates whether a channel is currently enabled or disabled: 0 = channel disabled 1 = channel enabled. The Channel Enable bit status can also be found by reading the DMACEnbldChns register. A channel is enabled by setting this bit. Before enabling a single channel the DMA controller must be enabled globally by setting the DMACENABLE bit in the dmac_config register. Enabling a channel while the controller is disabled leads to undefined behaviour. A channel can be disabled by clearing the Enable bit. This causes the current AHB transfer (if one is in progress) to complete and the channel is then disabled. Any data in the channels FIFO is lost. Restarting the channel by simply setting the Channel Enable bit has unpredictable effects and the channel must be fully re-initialized. The channel is also disabled, and Channel Enable bit cleared, when the last LLI is reached or if a channel error is encountered. If a channel has to be disabled without losing data in a channels FIFO the Halt bit must be set so that further DMA requests are ignored. The Active bit must then be polled until it reaches 0, indicating that there is no data left in the channels FIFO. Finally the Channel Enable bit can be cleared. |
|
| i2c_mcr |
| I2C master control register: |
|
R/W
|
0x00000000
|
Address@i2c_app : 0xff801080
Address@i2c_xpic_app : 0xff900340
|
Bits |
Reset value |
Name |
Description |
| 31 - 19 |
0
|
-
|
reserved |
| 18 |
"0"
|
en_timeout
|
Enable I2C command timeout detection. Enabling the timeout detection is recommended to prevent the module from stalling if another device holds the I2C signals permanently low. For details, see the description of bit i2s_sr.timeout. |
|
| 17 |
"0"
|
rst_i2c
|
Reset the I2C bus-state-detection logic. To avoid conflicts with other masters, some I2C bus states, which are important when there are multiple masters on the I2C bus, are always monitored, even if the I2C module is disabled. For details, see bits i2c_sr.started and i2c.bus_master. However, it may happen that bus states are detected which lock up the I2C module. E.g. hazards during power-up or IO configuration or sequences, which are not I2C compliant, can cause a lock-up. This bit can be used to escape from such a situation. Write a '1' here to reset the I2C bus-state-detection logic of register i2c_sr. Note: This bit is new since netX51/52. It is always '0' when read. |
|
| 16 |
"0"
|
pio_mode
|
If this bit is set, SCL and SDA can be controlled directly by register i2c_pio (e.g. to access devices being incompatible with I2C). In PIO mode, the I2C controller state machine is disabled: FIFOs are not used, no IRQs will be set, and no DMA controlling is possible. |
|
| 15 - 11 |
0
|
-
|
reserved |
| 10 - 4 |
"0000000"
|
sadr
|
7-bit slave address sent after (r)START: For 10-bit addressing, the first byte (10-bit start '11110', address bits[9:8] must be programmed here. The second start byte (lower slave address bits) must be on top of the master FIFO (i2c_mdr). This register must be rewritten (even if the value does not change) to address another slave in the 10-bit mode (run 2-byte start sequence). The register must not be rewritten before a repeated START on the same 10-bit addressed slave (run 1-byte start sequence e.g. write to read change). |
|
| 3 - 1 |
"000"
|
mode
|
I2C-speed-mode: If this device is used as a slave only, the mode should be set to the data rate generated by the fastest master on the I2C-bus for appropriate input filtering and spike suppression. |
| 000: |
Fast/Standard mode, 50 kbit/s |
| 001: |
Fast/Standard mode, 100 kbit/s |
| 010: |
Fast/Standard mode, 200 kbit/s |
| 011: |
Fast/Standard mode, 400 kbit/s |
| 100: |
High-speed mode, 800 kbit/s |
| 101: |
High-speed mode, 1.2 Mbit/s |
| 110: |
High-speed mode, 1.7 Mbit/s |
| 111: |
High-speed mode, 3.4 Mbit/s) |
|
| 0 |
"0"
|
en_i2c
|
| Global I2C controller enable |
| 1: |
Enable I2C controller |
| 0: |
Disable I2C controller |
Disabling the I2C module during a transfer will immediately disconnect the I2C module from the bus without generating a STOP. The internal I2C state machine will be set back to initial/idle state. The I2C bus-state-detection for the bits i2c_sr.bus_master and i2c_sr.started are performed even if the module is disabled. For details, see these bits. |
|
| i2c_scr |
| I2C slave control register: |
|
R/W
|
0x00000000
|
Address@i2c_app : 0xff801084
Address@i2c_xpic_app : 0xff900344
|
Bits |
Reset value |
Name |
Description |
| 31 - 21 |
0
|
-
|
reserved |
| 20 |
"0"
|
autoreset_ac_start
|
| Auto reset ac_start (ac_start must be set again after any (r)START): |
| 0: |
ac_start will not be reset automatically (netX 50-compatible, but not recommended) |
| 1: |
Reset ac_start after this slave acknowledged a start sequence (recommended) |
|
| 19 |
0
|
-
|
reserved |
| 18 |
"0"
|
ac_gcall
|
| General call acknowledge: |
| 0: |
Do not generate an acknowledge after a general call |
| 1: |
Generate an acknowledge after a general call |
|
| 17 |
"0"
|
ac_start
|
Enable start sequence acknowledge: If the received address matches the sid-bits, the start-byte (2 bytes if sid10 is set) will be acknowledged. If the master requests a read transfer, a slave FIFO read access will be carried out immediately after the acknowledge, i.e. valid data must be present in the slave FIFO before enabling the acknowledge. If autoreset_ac_start is enabled, the controller will automatically reset this bit. If it is not enabled, the software should reset this bit after the start sequence has been acknowledged to avoid acknowledge and FIFO errors after the next (r)START. |
| 0: |
Do not generate an acknowledge after the start sequence |
| 1: |
Generate an acknowledge after the start sequence |
| This bit is writable, but can also be changed by hardware. |
|
| 16 |
"0"
|
ac_srx
|
| Enable slave-receive-data acknowledge: |
| 0: |
Do not acknowledge receive bytes |
| 1: |
Acknowledge receive bytes |
| If the slave FIFO is full, receive data will not be acknowledged. |
|
| 15 - 11 |
0
|
-
|
reserved |
| 10 |
"0"
|
sid10
|
| 10-bit slave device ID/address: |
| 0: |
Wait for 7-bit slave address after (r)START |
| 1: |
Wait for 10-bit slave address after (r)START |
|
| 9 - 0 |
0x0
|
sid
|
Slave device ID/address: External masters can address this device (this I2C module in slave mode) by the ID/address programmed here. If sid10 is not set, bits 9 to 7 will be ignored. |
|
| i2c_cmd |
| I2C master command register: |
|
R/W
|
0x0000000e
|
Address@i2c_app : 0xff801088
Address@i2c_xpic_app : 0xff900348
|
Bits |
Reset value |
Name |
Description |
| 31 - 28 |
0
|
-
|
reserved |
| 27 - 20 |
"00000000"
|
acpollmax
|
Number of tries (acpollmax+1, i.e. 1 to 256) for start sequence acknowledge polling: For 7-bit addressing, acknowledge polling START and the first byte containing the slave address (i2c_mcr.sadr) will be repeated up to acpollmax+1 times until a slave generates an acknowledge. If no acknowledge is received within acpollmax+1 tries, IRQ cmd_err will be generated. For 10-bit-addressing, the 2-byte start sequence is performed. The second address byte (lower address bits) must be on top of the master FIFO (i2c_mdr). For subsequent transfers, the value programmed in tsize has to ignore this byte. The programmed value of acpollmax will count down during acknowledge polling after each start sequence. This bit is writable, but can also be changed by hardware. |
|
| 19 - 18 |
0
|
-
|
reserved |
| 17 - 8 |
0x0
|
tsize
|
Transfer tsize+1 bytes (1...1024): If no acknowledge is generated by the slave (receiver), write transfers will be terminated and IRQ cmd_err will be generated. For 10-bit-addressing, the second start-byte (lower address bits) must be on top of the master FIFO. For subsequent transfers, the value programmed here has to ignore this byte. This value will count down during transfers after each byte. This bit is writable, but can also be changed by hardware. |
|
| 7 - 4 |
0
|
-
|
reserved |
| 3 - 1 |
"111"
|
cmd
|
I2C sequence command: All commands will generate IRQ cmd_ok or IRQ cmd_err. A successful command termination will always generate IRQ cmd_ok. In case of an unsuccessful command termination, IRQ cmd_err will be set. |
| 000 |
START |
Generate (r)START-condition |
| 001 |
S_AC |
Acknowledge-polling: generate up to acpollmax+1 START-sequences (until acknowledged by slave) |
| 010 |
S_AC_T |
Run S_AC, then transfer tsize+1 bytes from/to master FIFO. Not to be continued |
| 011 |
S_AC_TC |
Run S_AC, then transfer tsize+1 bytes from/to master FIFO. To be continued |
| 100 |
CT |
Continued transfer not to be continued |
| 101 |
CTC |
Continued transfer to be continued |
| 110 |
STOP |
Generate STOP-condition |
| 111 |
IDLE |
Nothing to do, last command finished, break current command |
Sequences including read transfers that are not to be continued (S_AC_T, CT with 'nwr' bit set) will not generate an acknowledge after the last received byte (read transfer ends). Read transfers that are to be continued (S_AC_TC, CTC) will generate an acknowledge after the last received byte and must be followed by CT or CTC. Before continued transfers (CT, CTC), a command including START (START, S_AC, S_AC_T, S_AC_TC) must be executed to generate a valid I2C sequence. STOP must always be executed by software to free the bus after transfer end. STOP is not included in any command sequence and never executed automatically by this module. Some commands are handled as sequences (i.e. after setting S_AC_T, first S_AC then CT will be seen when read). You need not poll for IDLE here before setting up a new command, but you have to wait for cmd_ok or cmd_err status flags of register i2c_irqsr to be set. This bit is writable, but can also be changed by hardware. |
|
| 0 |
"0"
|
nwr
|
| Transfer direction (not-write/read): |
| 0: |
cmd will be executed as write |
| 1: |
cmd will be executed as read |
| Master FIFO-requests (IRQ and DMA) are generated depending on this direction flag. |
|
| i2c_sr |
|
R/W
|
0xc0110040
|
Address@i2c_app : 0xff80109c
Address@i2c_xpic_app : 0xff90035c
|
Bits |
Reset value |
Name |
Description |
| 31 |
-
|
sda_state
|
SDA signal state sampled and filtered from bus (e.g. to detect bus blockings) This is a read-only status bit. |
|
| 30 |
-
|
scl_state
|
SCL signal state sampled and filtered from bus (e.g. to detect bus blockings) This is a read-only status bit. |
|
| 29 |
0
|
-
|
reserved |
| 28 |
"0"
|
timeout
|
I2C command timeout detection (for I2C master). I2C slaves can stretch low SCL phases by holding the SCL line low. The master must detect this and wait until the SCL line is released before the current transfer can continue. In error cases, the I2C bus can be blocked permanently by a low signal state of SCL. The reason for the blocking can be e.g. a crashed I2C slave or a false I/O configuration. To escape from such a situation, a timeout watchdog is implemented: A timeout will be detected if the SCL line is held low for more than 256 SCL periods. In this case, the recent command will be terminated and IRQ cmd_err will be set. The timeout detection must be enabled by bit i2c_mcr.en_timeout. It is disabled by default for backward compatibility. However, enabling is strongly recommended. If timeout is detected, the status bit must be cleared before a new command can be applied. This status bit can be cleared by writing a '1' to it or when bit i2c_mcr.rst_i2c performs a reset of the bus-state-detection logic. |
|
| 27 |
-
|
sid10_aced
|
| 10-bit slave address acknowledge state. |
| 0: |
There was no 10-bit slave address or it was not acknowledged. |
1:
|
A 10-bit slave address was broadcasted and a slave acknowledged this broadcast. I.e. for the master side: A 10-bit slave was addressed and the slave acknowledged. I.e. for the slave side: A master broadcasted a start with the address programmed in register i2c_scr.sid and the i2c module acknowledged this broadcast as bit i2c_scr.ac_start is set. |
This read-only status bit is cleared automatically when the module detects a STOP or when register i2c_mcr is written (e.g. to perform a module reset by bit i2c_mcr.rst_i2c or to address another slave by changing the bits i2c_mcr.sadr). Remember that during rSTART, the master will generate only the first START-byte. |
|
| 26 |
-
|
gcall_aced
|
| General call acknowledge state. |
| 0: |
No general call start-byte, or general call start-byte was not acknowledged. |
| 1: |
The slave side of the i2c module received and acknowledged a general call. |
Bit i2c_scr.ac_gcall controls the acknowledging of a general call. This read-only status bit will be cleared automatically if the last start-byte is not a general call or if it is a general call but bit i2c_scr.ac_gcall is not set. This bit is forced to '0' when the bit i2c_mcr.rst_i2c performs a reset of the bus-state-detection logic. Note: The bit has no function for the master side of the i2c module |
|
| 25 |
-
|
nwr_aced
|
| Transfer direction (nwr-bit) of the last acknowledged start-byte (or 2-byte start sequence for 10-bit addressing). |
| 0: |
The last acknowledged start-byte defined a write transfer. |
| 1: |
The last acknowledged start-byte defined a read transfer. |
Slave FIFO requests generating IRQ and DMA requests depend on this direction flag. This read-only status bit is forced to '0' when bit i2c_mcr.rst_i2c performs a reset of the bus-state-detection logic. |
|
| 24 |
-
|
last_ac
|
| Last acknowledge detected on bus. |
| 0: |
SDA was high at the last acknowledge, i.e. no acknowledge. |
| 1: |
SDA was low at the last acknowledge, i.e. acknowledge. |
| This read-only status bit is forced to '0' when bit i2c_mcr.rst_i2c performs a reset of the bus-state-detection logic. |
|
| 23 |
-
|
slave_access
|
| 0: |
No slave access to this device. |
| 1: |
A master addressed this slave device. |
This read-only status bit is set if a start-byte (2 bytes for 10-bit address) containing the address programmed in register i2c_scr.sid has been received. This bit is always reset to 0 during START or STOP. This bit is forced to '0' when bit i2c_mcr.rst_i2c performs a reset of the bus-state-detection logic. Note: This bit does not depend on whether the start-byte has been acknowledged or not. |
|
| 22 |
-
|
started
|
| START condition detection: |
| 0: |
The bus is idle (STOP was detected, not started). |
| 1: |
(r)START was detected on the bus. The bus is occupied. |
This detection will also take place while the module is disabled. This is important if there are multiple I2C masters on the bus: If another master occupies the bus while the I2C module is disabled, the I2C module must not start a transfer, before the other master has released the bus. Use bit i2c_mcr.rst_i2c to force this read-only status bit to '0', e.g. in order to escape from an accidentally detected START or a START that is not followed by a STOP. |
|
| 21 |
-
|
nwr
|
| Transfer direction detected after last (r)START. |
| 0: |
The last start-byte defined a write transfer. |
| 1: |
The last start-byte defined a read transfer. |
This read-only status bit is always reset to 0 during (r)START. This bit is forced to '0' when bit i2c_mcr.rst_i2c performs a reset of the bus-state-detection logic. Note: This bit does not depend on whether the start-byte has been acknowledged or not. |
|
| 20 |
-
|
bus_master
|
| 0: |
Master lost I2C bus arbitration, bus is busy by another master. |
| 1: |
Master gains I2C bus arbitration or bus is idle. |
This read-only status bit is set when the monitored bus state does not match the bus state expected by the I2C module. The bit is reset, when a STOP is detected. This detection will also take place while the module is disabled. This is important if there are multiple I2C masters on the bus: If another master occupies the bus while the I2C module is disabled, the I2C module must not start a transfer, before the other master has released the bus. Use bit i2c_mcr.rst_i2c to force this bit to '0', e.g. in order to escape from an arbitration loss not followed by a STOP. |
|
| 19 |
-
|
sfifo_err_undr
|
Slave FIFO underrun error occurred. Data is lost and the slave FIFO must be cleared by bit i2c_sfifo_cr.sfifo_clr. Clearing the slave FIFO will also clear this read-only status bit. |
|
| 18 |
-
|
sfifo_err_ovfl
|
Slave FIFO overflow error occurred. Data is lost and the slave FIFO must be cleared by bit i2c_sfifo_cr.sfifo_clr. Clearing the slave FIFO will also clear this read-only status bit. |
|
| 17 |
-
|
sfifo_full
|
Slave FIFO is full (1 if full) This is a read-only status bit. |
|
| 16 |
-
|
sfifo_empty
|
Slave FIFO is empty (1 if empty) This is a read-only status bit. |
|
| 15 |
0
|
-
|
reserved |
| 14 - 10 |
-
|
sfifo_level
|
Slave FIFO level (0..16) This is a read-only status bit field. |
|
| 9 |
-
|
mfifo_err_undr
|
Master FIFO underrun error occurred. Data is lost and the master FIFO must be cleared by bit i2c_mfifo_cr.mfifo_clr. Clearing the master FIFO will also clear this read-only status bit. |
|
| 8 |
-
|
mfifo_err_ovfl
|
Master FIFO overflow error occurred. Data is lost and the master FIFO must be cleared by bit i2c_mfifo_cr.mfifo_clr. Clearing the master FIFO will also clear this read-only status bit. |
|
| 7 |
-
|
mfifo_full
|
Master FIFO is full (1 if full) This is a read-only status bit. |
|
| 6 |
-
|
mfifo_empty
|
Master FIFO is empty (1 if empty) This is a read-only status bit. |
|
| 5 |
0
|
-
|
reserved |
| 4 - 0 |
-
|
mfifo_level
|
Master FIFO level (0..16) This is a read-only status bit field. |
|
| i2c_irqsr |
I2C interrupt state register (raw interrupt before masking): Writing '1' will clear the corresponding IRQ. |
|
R/W
|
0x00000000
|
Address@i2c_app : 0xff8010a4
Address@i2c_xpic_app : 0xff900364
|
Bits |
Reset value |
Name |
Description |
| 31 - 7 |
0
|
-
|
reserved |
| 6 |
"0"
|
sreq
|
Unmasked slave request interrupt state: Purpose: Set up slave FIFO |
| 1: |
External master was running START-sequence and requested this slave |
| 0: |
Slave is not requested |
|
| 5 |
"0"
|
sfifo_req
|
Unmasked slave FIFO action request interrupt state: Purpose: Slave FIFO should be updated |
| 1: |
Slave FIFO request: i2c_sr.sfifo_level is above or below i2c_sfifo_cr.sfifo_wm (see description i2c_sfifo_cr) |
| 0: |
Slave FIFO state not critical |
|
| 4 |
"0"
|
mfifo_req
|
Unmasked master FIFO action request interrupt state: Purpose: Master FIFO should be updated |
| 1: |
Master FIFO request: i2c_sr.mfifo_level is above or below i2c_mfifo_cr.mfifo_wm (see description i2c_mfifo_cr) |
| 0: |
Master FIFO state not critical |
|
| 3 |
"0"
|
bus_busy
|
Unmasked external I2C-bus is busy interrupt state: Purpose: Detect I2C-bus arbitration loss |
| 1: |
Master did not gain the requested bus access because another master accessed the bus |
| 0: |
Bus is idle or no transfer is requested by this master |
|
| 2 |
"0"
|
fifo_err
|
Unmasked FIFO error interrupt state: Purpose: Detect FIFO errors/transfer failures |
| 1: |
FIFO error occurred, check register i2c_sr |
| 0: |
FIFOs ok |
|
| 1 |
"0"
|
cmd_err
|
Unmasked command error interrupt state: Purpose: Check last command termination |
| 1: |
Last command finished erroneously |
| 0: |
Command not finished, no command or command finished successfully |
|
| 0 |
"0"
|
cmd_ok
|
Unmasked command OK interrupt state: Purpose: Check last command termination |
| 1: |
Last command finished successfully |
| 0: |
Command not finished, no command or command finished erroneously |
|
| i2c_dmacr |
I2C DMA control register: Required settings for the DMA controller: - DMA transfer size to/from I2C module: Byte - DMA burst length to/from I2C module: 4 DMA burst requests will be generated if the corresponding FIFO contains more than 4 bytes (receive case) or if more than 4 bytes are writable to the corresponding FIFO (transmit case). DMA single transfer requests will be generated if the corresponding FIFO contains more than 1 byte (receive case) or if more than 1 byte is writable to the corresponding FIFO (transmit case). No further DMA requests will be generated if all transmit data is written to the master FIFO and the i2c module is the DMA flow controller (for master data only). Once all data is written to the master FIFO, the last burst/single request will be generated for the DMA controller. If the DMA controller sets DMACTC (terminal count) to indicate the end of transfer, the corresponding bit will be cleared. If one of the bits of this register is set to 0 by software and a DMA transfer has been requested before, the DMA controller will perform one last transfer to reset DMA request signals. |
|
R/W
|
0x00000000
|
Address@i2c_app : 0xff8010ac
Address@i2c_xpic_app : 0xff90036c
|
Bits |
Reset value |
Name |
Description |
| 31 - 4 |
0
|
-
|
reserved |
| 3 |
"0"
|
sdmab_en
|
Enable DMA burst requests for I2C slave data. The DMA controller must be the flow controller. This bit is writable, but can also be changed by hardware. |
|
| 2 |
"0"
|
sdmas_en
|
Enable DMA single requests for I2C slave data. The DMA controller must be the flow controller. This bit is writable, but can also be changed by hardware. |
|
| 1 |
"0"
|
mdmab_en
|
Enable DMA burst requests for I2C master data. The I2C module is the flow controller (i.e. peripheral-controlled flow control). Both, single and burst requests must be enabled. This bit is writable, but can also be changed by hardware. |
|
| 0 |
"0"
|
mdmas_en
|
Enable DMA single requests for I2C master data. The I2C module is the flow controller (i.e. peripheral-controlled flow control). Both, single and burst requests must be enabled. This bit is writable, but can also be changed by hardware. |
|
| i2c_pio |
PIO mode register: This register can directly control the I2C signals SCL and SDA if pio_mode is enabled in register i2c_mcr. In PIO mode, the I2C controller state machine is disabled, thus, no FIFO action takes place, no IRQs will be set, and no DMA-controlling is possible. Note: To avoid external driving conflicts, the I2C signals SCL and SDA are never driven active-high according to the I2C bus specification. The high level of these signals is realized by a pull-up (of the pad or externally) and by setting the appropriate output enable to 0 (scl_oe, sda_oe) instead of driving the level active-high. Driving the signals directly by enabling the outputs (programming the bits sda_oe or scl_oe to '1') can lead to driving conflicts and could cause damage. |
|
R/W
|
0x00000044
|
Address@i2c_app : 0xff8010b0
Address@i2c_xpic_app : 0xff900370
|
Bits |
Reset value |
Name |
Description |
| 31 - 7 |
0
|
-
|
reserved |
| 6 |
-
|
sda_in_ro
|
| SDA input state (read-only) |
|
| 5 |
"0"
|
sda_oe
|
| 0: |
Do not drive SDA, switch pad to high-z. |
| 1: |
Drive SDA, switch pad to programmed sda_out-state |
|
| 4 |
"0"
|
sda_out
|
| Driving level of SDA (1: high, 0: low) if output is enabled (sda_oe is set) |
|
| 3 |
0
|
-
|
reserved |
| 2 |
-
|
scl_in_ro
|
| SCL input state (read-only) |
|
| 1 |
"0"
|
scl_oe
|
| 0: |
Do not drive SCL, switch pad to high-z. |
| 1: |
Drive SCL, switch pad to programmed scl_out-state |
|
| 0 |
"0"
|
scl_out
|
| Driving level of SCL (1: high, 0: low) if output is enabled (scl_oe is set) |
|
| spi_cr0 |
SPI control register 0 Registers 0x30..0x3C can be used instead of registers 0x00...0x24 to keep netx50 software compliant to netx100/500. |
|
R/W
|
0x80080007
|
Address@spi0_app : 0xff8010c0
Address@spi1_app : 0xff801100
Address@spi2_app : 0xff801140
Address@spi_xpic_app : 0xff900380
|
Bits |
Reset value |
Name |
Description |
| 31 |
"1"
|
netx100_comp
|
| Use netx100/500-compatible SPI mode: |
| 0: |
start transfer after writing data |
| 1: |
start transfer after setting CR_write or CR_read |
|
| 30 - 29 |
0
|
-
|
reserved |
| 28 |
"0"
|
slave_sig_early
|
Generate MISO in slave mode 1 SCK clock edge earlier than defined in the SPI specification. This is to compensate pad or sampling delays on fast data rates. However, hold timing problems could come up as MISO is generated very fast after the sampling SPI clock edge. If filter_in is enabled, it takes at least 3 system clocks to generate MISO after SCK. If filter_in is disabled, it takes at least 2 system clocks to generate MISO after SCK. |
|
| 27 |
"0"
|
filter_in
|
Receive data is sampled every 10ns (100MHz system clock). If this bit is set, the stored receive value will be the result of a majority decision of the three sampling points around a SPI-clock edge (if two or more '1s! were sampled a '1' will be stored, else a '0' will be stored. In slave mode chip-select and SCK edges will also be detected by oversampling if this bit is set: An edge will be detected if the majority-result of 3 subsequent sampled values toggles. Input filtering should be used for sck_muladd<=0x200 (i.e. below 12.5MHz). Stable signal phases are too short with higher frequencies and input filtering cannot be used. |
|
| 26 |
0
|
-
|
reserved |
| 25 - 24 |
"00"
|
format
|
| 00: |
Motorola SPI frame format |
| 01..11: |
reserved |
|
| 23 - 20 |
0
|
-
|
reserved |
| 19 - 8 |
0x800
|
sck_muladd
|
Serial clock rate multiply add value for master SCK generation. The SPI clock frequency is: f_spi_sck = (sck_muladd * 100)/4096 [MHz]. Default value 0x800 equals 50MHz SPI clock rate. All serial clock rates are derived from 100MHz netX system clock. Hence, all serial clock phases are multiples of 10ns. This leads to non-constant serial clock phases when a clock rate is programmed which cannot be generated by 100MHz/(2*n) without remainder. E.g. programming 0x4CC here will lead to a mean clock-rate of 30MHz. However, single clock high and low phases of 10ns and clock periods of 30ns will occur. This must be considered for serial device selection. E.g. using a 30MHz device which requires 33ns minimum clock period and a duty cycle of 50% will fail. Note: If sck_muladd is set to zero, SPI transfer will freeze. The SPI clock must not exceed (system frequency/4) in slave mode, if correct data sampling should always be guaranteed. Note: The value programmed here has no impact in slave mode. |
|
| 7 |
"0"
|
SPH
|
| Serial clock phase (netx500: CR_ncpha): |
| 1: |
sample data at second clock edge, data is generated half a clock phase before sampling |
| 0: |
sample data at first clock edge, data is generated half a clock phase before sampling |
|
| 6 |
"0"
|
SPO
|
| Serial clock polarity (netx500: CR_cpol): |
| 0: |
idle: clock is low, first edge is rising |
| 1: |
idle: clock is high, first edge is falling |
|
| 5 - 4 |
0
|
-
|
reserved |
| 3 - 0 |
"0111"
|
datasize
|
| DSS: data size select (transfer size = datasize + 1 bits): |
| 0000...0010: |
reserved |
| 0011: |
4 bit |
| 0100: |
5 bit |
| ... |
|
| 0111: |
8 bit |
| ... |
|
| 1111: |
16 bit |
| Note: 16 bit TX-data-loss bug of netX50/netX5 is fixed since netX10. |
|
| spi_cr1 |
SPI control register 1 Registers 0x30..0x3C can be used instead of registers 0x00...0x24 to keep netx50 software compliant to netx100/500. |
|
R/W
|
0x08080000
|
Address@spi0_app : 0xff8010c4
Address@spi1_app : 0xff801104
Address@spi2_app : 0xff801144
Address@spi_xpic_app : 0xff900384
|
Bits |
Reset value |
Name |
Description |
| 31 - 29 |
0
|
-
|
reserved |
| 28 |
"0"
|
rx_fifo_clr
|
| Writing "1" to this bit will clear the receive FIFOs. |
|
| 27 - 24 |
"1000"
|
rx_fifo_wm
|
| Receive FIFO watermark for IRQ generation |
|
| 23 - 21 |
0
|
-
|
reserved |
| 20 |
"0"
|
tx_fifo_clr
|
Writing "1" to this bit will clear the transmit FIFOs. Note: There must be at least 1 system clock idle after clear before writing new data to the FIFO. This is guaranteed by the netX internal bus structure and needs not being considered by software. |
|
| 19 - 16 |
"1000"
|
tx_fifo_wm
|
| Transmit FIFO watermark for IRQ generation |
|
| 15 - 12 |
0
|
-
|
reserved |
| 11 |
"0"
|
fss_static
|
| 0: |
SPI chip-select will be toggled automatically before and after each transferred word according to fss and datasize. |
| 1: |
SPI chip-select will be set statically according to the fss bits. |
|
| 10 - 8 |
"000"
|
fss
|
Frame or slave select. There are up to 3 external SPI chip-select signals. In master mode, the fss bits define the states of the chip-select signals. The inversion for low-active chip-selects (e.g. for Motorola SPI frame format) is done automatically depending on the value programmed to the 'format' bits. Example: To use the netX IO CS1 as chip-select, program '010' here, regardless whether the external chip-select is low or high active. In slave mode, the fss bits are a mask to select which netX input should be used as chip-select. Example: To use the netX IO CS0 as chip-select, program '001' here. |
|
| 7 - 4 |
0
|
-
|
reserved |
| 3 |
"0"
|
SOD
|
| Slave mode output disable (to connect multiple slaves to one master): |
| 0: |
MISO can be driven in slave mode |
| 1: |
MISO is not driven in slave mode |
|
| 2 |
"0"
|
MS
|
| 0: |
Module is configured as master |
| 1: |
Module is configured as slave |
|
| 1 |
"0"
|
SSE
|
| 0: |
Module disabled |
| 1: |
Module enabled |
|
| 0 |
"0"
|
LBM
|
| 0: |
Internal loop back disabled |
| 1: |
Internal loop back enabled, spi_cr0.filter_in must be set for loopback function |
|
| spi_sr |
SPI status register Registers 0x30..0x3C can be used instead of registers 0x00...0x24 to keep netx50 software compliant to netx100/500. Note: Both FIFOs (receive and transmit) have a depth of 16. |
|
R
|
Address@spi0_app : 0xff8010cc
Address@spi1_app : 0xff80110c
Address@spi2_app : 0xff80114c
Address@spi_xpic_app : 0xff90038c
|
Bits |
Name |
Description |
| 31 |
rx_fifo_err_undr
|
| Receive FIFO underrun error occurred, data is lost |
|
| 30 |
rx_fifo_err_ovfl
|
| Receive FIFO overflow error occurred, data is lost |
|
| 29 |
-
|
reserved |
| 28 - 24 |
rx_fifo_level
|
| Receive FIFO level (number of received words to read out are left in FIFO) |
|
| 23 |
tx_fifo_err_undr
|
| Transmit FIFO underrun error occurred, data is lost |
|
| 22 |
tx_fifo_err_ovfl
|
| Transmit FIFO overflow error occurred, data is lost |
|
| 21 |
-
|
reserved |
| 20 - 16 |
tx_fifo_level
|
| Transmit FIFO level (number of words to transmit are left in FIFO) |
|
| 15 - 5 |
-
|
reserved |
| 4 |
BSY
|
| Device busy (1 if data is currently transmitted/received or the transmit FIFO is not empty) |
|
| 3 |
RFF
|
| Receive FIFO is full (1 if full) |
|
| 2 |
RNE
|
| Receive FIFO is not empty (0 if empty) |
|
| 1 |
TNF
|
| Transmit FIFO is not full (0 if full) |
|
| 0 |
TFE
|
| Transmit FIFO is empty (1 if empty) |
|
| spi_imsc |
SPI Interrupt Mask Set and Clear register: Registers 0x30..0x3C can be used instead of registers 0x00...0x24 to keep netx50 software compliant to netx100/500. IRQ mask is an AND-mask: only raw interrupts with mask bit set can generate a module IRQ. When writing this register, the corresponding interrupt is cleared similar to writing the register spi_icr.
Note: The functionality of this register is similar to the corresponding SQI register sqi_irq_mask. However, in contrast to this register, setting bits in sqi_irq_mask does not clear the corresponding interrupts.
Note: Both FIFOs (receive and transmit) have a depth of 16. |
|
R/W
|
0x00000000
|
Address@spi0_app : 0xff8010d4
Address@spi1_app : 0xff801114
Address@spi2_app : 0xff801154
Address@spi_xpic_app : 0xff900394
|
Bits |
Reset value |
Name |
Description |
| 31 - 7 |
0
|
-
|
reserved |
| 6 |
"0"
|
txeim
|
| Transmit FIFO empty interrupt mask (for netx100/500 compliance) |
|
| 5 |
"0"
|
rxfim
|
| Receive FIFO full interrupt mask (for netx100/500 compliance) |
|
| 4 |
"0"
|
rxneim
|
| Receive FIFO not empty interrupt mask (for netx100/500 compliance) |
|
| 3 |
"0"
|
TXIM
|
| Transmit FIFO interrupt mask |
|
| 2 |
"0"
|
RXIM
|
| Receive FIFO interrupt mask |
|
| 1 |
"0"
|
RTIM
|
| Receive timeout interrupt mask |
|
| 0 |
"0"
|
RORIM
|
| Receive FIFO overrun interrupt mask |
|
| spi_ris |
SPI interrupt state before masking register (raw interrupt) Registers 0x30..0x3C can be used instead of registers 0x00...0x24 to keep netx50 software compliant to netx100/500. Note: Both FIFOs (receive and transmit) have a depth of 16. |
|
R
|
Address@spi0_app : 0xff8010d8
Address@spi1_app : 0xff801118
Address@spi2_app : 0xff801158
Address@spi_xpic_app : 0xff900398
|
Bits |
Name |
Description |
| 31 - 7 |
-
|
reserved |
| 6 |
txeris
|
| Unmasked transmit FIFO empty interrupt state (for netx100/500 compliance) |
| 1: |
transmit FIFO is empty |
| 0: |
transmit FIFO is not empty |
|
| 5 |
rxfris
|
| Unmasked receive FIFO full interrupt state (for netx100/500 compliance) |
| 1: |
receive FIFO is full |
| 0: |
receive FIFO is not full |
|
| 4 |
rxneris
|
| Unmasked receive FIFO not empty interrupt state (for netx100/500 compliance) |
| 1: |
receive FIFO is not empty |
| 0: |
receive FIFO is empty |
|
| 3 |
TXRIS
|
| Unmasked transmit FIFO interrupt state |
| 1: |
transmit FIFO level is below spi_cr1.tx_fifo_wm |
| 0: |
transmit FIFO equals or is higher than spi_cr1.tx_fifo_wm |
|
| 2 |
RXRIS
|
| Unmasked receive FIFO interrupt state |
| 1: |
receive FIFO is higher than spi_cr1.rx_fifo_wm |
| 0: |
receive FIFO is equals or is below spi_cr1.rx_fifo_wm |
|
| 1 |
RTRIS
|
Unmasked receive timeout interrupt state Timeout period are 32 SPI clock periods depending on adr_spi_cr0.sck_muladd |
| 1: |
receive FIFO is not empty and not read out in the passed timeout period |
| 0: |
receive FIFO is empty or read during the last timeout period |
|
| 0 |
RORRIS
|
| Unmasked receive FIFO overrun interrupt state |
| 1: |
receive FIFO overrun error occurred |
| 0: |
no receive FIFO overrun error occurred |
|
spi_status_register (NETX_SPI%_STAT) |
netx100/500 compliant SPI status register (SR): Shows the actual status of the SPI interface. Bits 24..18 show occurred interrupts; writing ones into these bits clears the interrupts. Writing into other bits has no effect. In netx50 and later versions both FIFOs (receive and transmit) have a depth of 16, fill values are fixed to 4. To keep software compatible, not more than 8 bytes should be in netx100/500 FIFOs. |
|
R
|
Address@spi0_app : 0xff8010f4
Address@spi1_app : 0xff801134
Address@spi2_app : 0xff801174
Address@spi_xpic_app : 0xff9003b4
|
Bits |
Name |
Description |
| 31 - 26 |
-
|
reserved |
| 25 |
SR_selected
|
| External master has access to SPI interface |
|
| 24 |
SR_out_full
|
| Output FIFO is full. This is only with netx100/500 an IRQ. |
|
| 23 |
SR_out_empty
|
| Output FIFO is empty in slave mode (equals spi_ris.txeris in netx50 and later versions) |
|
| 22 |
SR_out_fw
|
netX is writing data too fast into output FIFO. Available as an IRQ only on netx100/500 (equals spi_sr.tx_fifo_err_ovfl in netx50 and later versions). |
|
| 21 |
SR_out_fuel
|
| Adjustable fill value of output FIFO reached (equals spi_ris.TXRIS in netx50 and later versions) |
|
| 20 |
SR_in_full
|
| Input FIFO is full (equals spi_ris.rxfris in netx50 and later versions) |
|
| 19 |
SR_in_recdata
|
| Valid data bytes in input FIFO (equals spi_ris.rxneris in netx50 and later versions) |
|
| 18 |
SR_in_fuel
|
| Adjustable fill value of input FIFO reached (equals spi_ris.RXRIS in netx50 and later versions) |
|
| 17 - 9 |
SR_out_fuel_val
|
| Output FIFO fill value (number of bytes) |
|
| 8 - 0 |
SR_in_fuel_val
|
| Input FIFO fill value (number of bytes) |
|
spi_control_register (NETX_SPI%_CTRL) |
| netx100/500 compliant SPI control register (CR) |
|
R/W
|
0x00000000
|
Address@spi0_app : 0xff8010f8
Address@spi1_app : 0xff801138
Address@spi2_app : 0xff801178
Address@spi_xpic_app : 0xff9003b8
|
Bits |
Reset value |
Name |
Description |
| 31 |
"0"
|
CR_en
|
| 1: |
enable |
| 0: |
disable SPI interface |
|
| 30 |
"0"
|
CR_ms
|
1: master mode 0:slave mode |
|
| 29 |
"0"
|
CR_cpol
|
| 1: |
falling edge of SCK is primary |
| 0: |
rising edge of SCK is primary |
|
| 28 |
"0"
|
CR_ncpha
|
| SPI clock phase mode (Note: meaning of this bit is inverted to functionality of bit spi_cr0.SPH): |
| 0: |
change data on secondary SCK edge data is active on primary SCK edge |
| 1: |
change data on primary SCK edge data is active on secondary SCK edge |
|
| 27 - 25 |
"000"
|
CR_burst
|
| netx100/netx500 only, obsolete in later versions: burst length = 2^CR_burst |
|
| 24 - 22 |
"000"
|
CR_burstdelay
|
netx100/netx500 only, obsolete in later versions: delay between transmission of 2 data bytes (0 to 7 SCK cycles) |
|
| 21 |
"0"
|
CR_clr_outfifo
|
|
| 20 |
"0"
|
CR_clr_infifo
|
|
| 19 - 12 |
0
|
-
|
reserved |
| 11 |
"0"
|
CS_mode
|
| 1: |
chip select is generated automatically by the internal state machine |
| 0: |
chip select is directly controlled by software (see bits CR_ss). |
|
| 10 - 8 |
"000"
|
CR_ss
|
|
| 7 |
"0"
|
CR_write
|
| netx100/netx500 only, in later versions always "1": 1: enable SPI interface write data |
|
| 6 |
"0"
|
CR_read
|
| netx100/netx500 only, in later versions always "1": 1: enable SPI interface read data |
|
| 5 |
0
|
-
|
reserved |
| 4 - 1 |
"0000"
|
CR_speed
|
Clock divider for SPI clock (2 - 2^16) If SPI clock rate is changed using spi_cr0.sck_muladd, this value will not be updated and may be incorrect There are 16 different SPI clocks frequencies to choose: |
| 0000: |
0.025 MHz (Note: Not compatible to netx100/500. "0000" freezes SCK in netx100/500.) |
| 0001: |
0.05 MHz |
| 0010: |
0.1 MHz |
| 0011: |
0.2 MHz |
| 0100: |
0.5 MHz |
| 0101: |
1 MHz |
| 0110: |
1.25 MHz |
| 0111: |
2 MHz |
| 1000: |
2.5 MHz |
| 1001: |
3.3333 MHz |
| 1010: |
5 MHz |
| 1011: |
10 MHz |
| 1100: |
12.5 MHz |
| 1101: |
16.6666 MHz |
| 1110: |
25 MHz |
| 1111: |
50 MHz |
|
| 0 |
"0"
|
CR_softreset
|
| write only: no function in netx100/netx500; later versions: clears IRQs and FIFOs |
|
spi_interrupt_control_register (NETX_SPI%_INT_CTRL) |
netx100/500 compliant SPI interrupt control register (IR) In netx50 and later versions both FIFOs (receive and transmit) have a depth of 16, fill values are fixed to 4. To keep software compatible, not more than 8 bytes should be in netx100/500 FIFOs. |
|
R/W
|
0x00000000
|
Address@spi0_app : 0xff8010fc
Address@spi1_app : 0xff80113c
Address@spi2_app : 0xff80117c
Address@spi_xpic_app : 0xff9003bc
|
Bits |
Reset value |
Name |
Description |
| 31 - 25 |
0
|
-
|
reserved |
| 24 |
"0"
|
IR_out_full_en
|
| IRQ enable for irq_spi(6), netx100/netx500 only, always "0" in later versions |
|
| 23 |
"0"
|
IR_out_empty_en
|
| IRQ enable for irq_spi(5) (equals spi_imsc.rxeim in netx50 and later versions) |
|
| 22 |
"0"
|
IR_out_fw_en
|
| IRQ enable for irq_spi(4), netx100/netx500 only, always "0" in later versions |
|
| 21 |
"0"
|
IR_out_fuel_en
|
| IRQ enable for irq_spi(3) (equals spi_imsc.TXIM in netx50 and later versions) |
|
| 20 |
"0"
|
IR_in_full_en
|
| IRQ enable for irq_spi(2) (equals spi_imsc.txfim in netx50 and later versions) |
|
| 19 |
"0"
|
IR_in_recdata_en
|
| IRQ enable for irq_spi(1) (equals spi_imsc.txneim in netx50 and later versions) |
|
| 18 |
"0"
|
IR_in_fuel_en
|
| IRQ enable for irq_spi(0) (equals spi_imsc.RXIM in netx50 and later versions) |
|
| 17 - 9 |
0x0
|
IR_out_fuel
|
| Adjustable watermark level of output FIFO |
|
| 8 - 0 |
0x0
|
IR_in_fuel
|
| Adjustable watermark level of input FIFO |
|
| canctrl_command |
|
W
|
0x00000000
|
Address@can_ctrl0_app : 0xff801204
Address@can_ctrl1_app : 0xff801284
|
Bits |
Reset value |
Name |
Description |
| 31 - 5 |
0
|
-
|
reserved |
| 4 |
"0"
|
self_rx_request
|
Self Reception Request, self-clearing 1 present; a message shall be transmitted and received simultaneously Setting tx_request and self_rx_request simultaneously will ignore the set self_rx_request bit. |
|
| 3 |
"0"
|
clr_overrun
|
Clear Data Overrun, self-clearing 1 clear; the data overrun status bit is cleared, shall be used together with release_rx_buf to release invalid buffer |
|
| 2 |
"0"
|
release_rx_buf
|
Release Receive Buffer, self-clearing 1 released; the receive buffer, representing the message memory space in the RXFIFO is released |
|
| 1 |
"0"
|
abort_tx
|
Abort Transmission, self-clearing 1 present; if not already in progress, a pending transmission request is cancelled Setting the command bits tx_request and abort_tx simultaneously results in sending the transmit message once. No re-transmission will be performed in the event of an error or arbitration lost (single-shot transmission). |
|
| 0 |
"0"
|
tx_request
|
Transmission Request, self-clearing 1 present; a message shall be transmitted |
|
| canctrl_status |
|
R
|
Address@can_ctrl0_app : 0xff801208
Address@can_ctrl1_app : 0xff801288
|
Bits |
Name |
Description |
| 31 - 9 |
-
|
reserved |
| 8 |
tx_aborted
|
Transmission aborted 1 Previously requested transmission is aborted |
|
| 7 |
bus_status
|
Bus Status 1 bus-off; the CAN controller is not involved in bus activities 0 bus-on; the CAN controller is involved in bus activities |
|
| 6 |
error_status
|
Error Status 1 error; at least one of the error counters has reached or exceeded the CPU warning limit defined by the Error Warning Limit Register (EWLR) 0 ok; both error counters are below the warning limit |
|
| 5 |
tx_status
|
Transmit Status 1 transmit; the CAN controller is transmitting a message 0 idle |
|
| 4 |
rx_status
|
Receive Status 1 receive; the CAN controller is receiving a message 0 idle |
|
| 3 |
tx_complete
|
Transmission Complete 1 complete; last requested transmission has been successfully completed 0 incomplete; previously requested transmission is not yet completed |
|
| 2 |
tx_buf_status
|
Transmit Buffer Status 1 released; the CPU may write a message into the transmit buffer 0 locked; the CPU cannot access the transmit buffer ; a message is either waiting for transmission or is in the process of being transmitted |
|
| 1 |
overrun
|
Data Overrun Status 1 overrun; a message was lost because there was not enough space for that message in the RXFIFO 0 absent; no data overrun has occurred since the last clear data overrun command was given |
|
| 0 |
rx_buf_status
|
Receive Buffer Status 1 full; one or more complete messages are available in the RXFIFO 0 empty; no message is available |
|
| canctrl_irq |
CAN interrupt register reading the register will clear all bits except rx_irq |
|
R
|
Address@can_ctrl0_app : 0xff80120c
Address@can_ctrl1_app : 0xff80128c
|
Bits |
Name |
Description |
| 31 - 8 |
-
|
reserved |
| 7 |
bus_error_irq
|
Bus Error Interrupt 1 set; this bit is set when the CAN controller detects an error on the CAN-bus and the bus_error_irq_en bit is set within the interrupt enable register, will only get active again if canctrl_err_code_capture register is read 0 reset |
|
| 6 |
arb_lost_irq
|
Arbitration Lost Interrupt 1 set; this bit is set when the CAN controller lost the arbitration and becomes a receiver and the arb_lost_irq_en bit is set within the interrupt enable register, will only get active again if canctrl_arb_lost_capture register is read 0 reset |
|
| 5 |
err_passive_irq
|
Error Passive Interrupt 1 set; this bit is set whenever the CAN controller has reached the error passive status (at least one error counter exceeds the protocol-defined level of 127) or if the CAN controller is in the error passive status and enters the error active status again and the err_passive_irq_en bit is set within the interrupt enable register 0 reset |
|
| 4 |
-
|
reserved |
| 3 |
overrun_irq
|
Data Overrun Interrup 1 set; this bit is set on a `0-to-1' transition of the data overrun status bit and the overrun_irq_en bit is set within the interrupt enable register 0 reset |
|
| 2 |
warning_irq
|
Error Warning Interrupt 1 set; this bit is set on every change (set and clear) of either the error status or bus status bits and the warning_irq_en bit is set within the interrupt enable register 0 reset |
|
| 1 |
tx_irq
|
Transmit Interrupt 1 set; this bit is set whenever the transmit buffer status changes from `0-to-1' (released) and the tx_irq_en bit is set within the interrupt enable register 0 reset |
|
| 0 |
rx_irq
|
Receive Interrupt 1 set; this bit is set while the receive FIFO is not empty and the rx_irq_en bit is set within the interrupt enable register 0 reset; no more message is available within the RXFIFO |
|
| canctrl_irq_en |
CAN interrupt enable register in not extended mode: acceptance_code_0 |
|
R/W
|
0x00000000
|
Address@can_ctrl0_app : 0xff801210
Address@can_ctrl1_app : 0xff801290
|
Bits |
Reset value |
Name |
Description |
| 31 - 8 |
0
|
-
|
reserved |
| 7 |
"0"
|
bus_error_irq_en
|
Bus Error Interrupt Enable 1 enabled; if an bus error has been detected, the CAN controller requests the respective interrupt 0 disabled |
|
| 6 |
"0"
|
arb_lost_irq_en
|
Arbitration Lost Interrupt Enable 1 enabled; if the CAN controller has lost arbitration, the respective interrupt is requested 0 disabled |
|
| 5 |
"0"
|
err_passive_irq_en
|
Error Passive Interrupt Enable 1 enabled; if the error status of the CAN controller changes from error active to error passive or vice versa, the respective interrupt is requested 0 disabled |
|
| 4 |
0
|
-
|
reserved |
| 3 |
"0"
|
overrun_irq_en
|
Data Overrun Interrupt Enable 1 enabled; if the data overrun status bit is set (see status register; Table 14), the CAN controller requests the respective interrupt 0 disabled |
|
| 2 |
"0"
|
warning_irq_en
|
Error Warning Interrupt Enable 1 enabled; if the error or bus status change (see status register), the CAN controller requests the respective interrupt 0 disabled |
|
| 1 |
"0"
|
tx_irq_en
|
Transmit Interrupt Enable 1 enabled; when a message has been successfully transmitted or the transmit buffer is accessible again (e.g. after an abort transmission command), the CAN controller requests the respective interrupt 0 disabled |
|
| 0 |
"0"
|
rx_irq_en
|
Receive Interrupt Enable 1 enabled; when the receive buffer status is `full' the CAN controller requests the respective interrupt 0 disabled |
|
| mled_ctrl_app_cfg |
Global configuration register. This register controls global configuration options for all Multi-LED outputs. Description of Multi-LED control module operation: a) Time-multiplexed PWM mode: Each output drives two LEDs: Low-side and high-side LED. Three states of the output pin are possible: High (i.e. the low-side LED is on), low (i.e. the high-side LED is on), or high-z (i.e. both LEDs are off). The PWM period, determined by bit field prescale_counter_max, is the same for all outputs. The prescale counter will be increased by the netX system clock (i.e. 100 MHz). A second counter (the PWM counter) will be increased when the prescale counter reaches its configured max. value. The PWM counter is a fixed-width counter and always counts from 0 to 511. If the PWM counter is in the range of 0 - 255, the high-side LED will be driven depending on the configured switch-on time (registers on_time[x], with x being an even number). The output pin will be driven low when the high-side phase starts. If the PWM counter reaches on_time[x] - 1, the output pin will switch to high-z state. If the PWM counter is in the range of 256 - 511, the low-side LED will be driven depending on the configured switch-on time (registers on_time[y], with y being an odd number). The output pin will be driven high when the low-side phase starts. If the PWM counter reaches 256 + on_time[y] - 1, the output pin will switch to high-z state. The state of an LED depends on the input value selected by the input multiplexer. For a list of selectable signals, see register mled_ctrl_output_sel[0]. When the selected input signal is off, the output signal will be high-z during the entire corresponding PWM phase.
b) Pass-through mode: This mode disables the time-multiplexed PWM entirely and a configured signal will be output directly or inverted (delayed by one netX system cycle). This mode will be used when all bits of bit field sel of the output phase 0 configuration register (high-side LED) are set to '1'. The input signal (and inversion) is selected by the corresponding phase 1 configuration register (low-side LED). The output can be configured to high-z state if the corresponding phase 1 on_time register is set to '0', therefore it must be set != '0' for regular pass-through operation (i.e. the output will be driven high or low depending on the input signal).
c) Multi-LED internal blink generator: The blink signal synchronizes the blinking of several LEDs. Bit field blink_counter_max determines the blink frequency which is the same for all outputs configured to blink mode. |
|
R/W
|
0x00018ffe
|
Address : 0xff801300
|
Bits |
Reset value |
Name |
Description |
| 31 - 20 |
0
|
-
|
reserved |
| 19 - 11 |
0x31
|
blink_counter_max
|
Maximum value the blink counter will count to. The blink counter determines the blink frequency: f_blink = 50 Hz / (blink_counter_max + 1) blink_counter_max = (50 Hz / f_blink) - 1. The range of the blink frequency is therefore within ~0.1 Hz and 50 Hz. |
|
| 10 - 1 |
0x3ff
|
prescale_counter_max
|
Maximum value the prescale counter will count to. The prescale counter determines the PWM frequency of all outputs: f_pwm = f_clk / (512 * (prescale_counter_max + 1)) prescale_counter_max = (f_clk / (512 * f_pwm)) - 1 with f_clk = 100 MHz (netX system frequency). The range of the PWM frequency is therefore within ~191 Hz and ~195 kHz. |
|
| 0 |
"0"
|
enable
|
Writing a '1' to this bit will enable the MLED_CTRL_APP module. When disabled, all counters will be stopped to save power and outputs will be switched to high-z state. |
|
| gpio_app_counter0_ctrl |
GPIO_APP counter0 control register: This register is accessible via address areas inlogic_app and xpic_app_system. |
|
R/W
|
0x00000000
|
Address@gpio_app : 0xff801440
Address@gpio_xpic_app : 0xff900240
|
Bits |
Reset value |
Name |
Description |
| 31 - 10 |
0
|
-
|
reserved |
| 9 - 7 |
"000"
|
gpio_ref
|
|
| 6 - 5 |
"00"
|
event_act
|
| Define action of selected external event (dependent on sel_event, gpio_ref) |
| 00: |
count every clock cycle, ignore external events |
| 01: |
count only external events (edge or level according to bit sel_event) |
| 10: |
enable watchdog mode of counter (external event will be reset without IRQ, overflow generates IRQ). |
| 11: |
enable automatic run mode (external event sets run bit, used for DC-DC PWM in combination with bit once=1) |
|
| 4 |
"0"
|
once
|
| 1: |
count once (reset run bit after 1 period) |
| 0: |
count continuously |
|
| 3 |
"0"
|
sel_event
|
| 0: |
high level, invert gpio in register gpio_app_cfg to select low level |
| 1: |
pos. edge, invert gpio in register gpio_app_cfg to select neg. edge |
|
| 2 |
"0"
|
irq_en
|
| 1: |
enable interrupt request on sel_event |
| 0: |
disable interrupt request |
|
| 1 |
"0"
|
sym_nasym
|
| 1: |
symmetric mode (triangle) |
| 0: |
asymmetric mode (sawtooth) |
|
| 0 |
"0"
|
run
|
| 1: |
start counter, counter is running |
| 0: |
stop counter |
|
| gpio_app_irq_mask_set |
GPIO_APP interrupt mask set: The interrupt mask register exists 2x for the different system busses (address areas) it is connected to. This allows 2 CPUs to work in parallel on this module: ARM_APP, xPIC_APP. The inlogic_app IRQ mask enables interrupt requests for ARM_APP. The xpic_app_system IRQ mask enables interrupt requests for xPIC_APP. Since different software tasks might change its bits, the IRQ mask register is not writable directly, but by set and reset masks: Write access with '1' sets the interrupt mask bit (enables the interrupt request for the corresponding interrupt source). Write access with '0' does not influence this bit. Read access shows the current interrupt mask. Note: Before activating the interrupt mask, delete old pending interrupts by writing the same value to gpio_app_irq_raw. |
|
R/W
|
0x00000000
|
Address@gpio_app : 0xff801474
Address@gpio_xpic_app : 0xff900274
|
Bits |
Reset value |
Name |
Description |
| 31 - 8 |
0
|
-
|
reserved |
| 7 |
"0"
|
gpio_app7
|
| Interrupt bit for GPIO_APP7 |
|
| 6 |
"0"
|
gpio_app6
|
| Interrupt bit for GPIO_APP6 |
|
| 5 |
"0"
|
gpio_app5
|
| Interrupt bit for GPIO_APP5 |
|
| 4 |
"0"
|
gpio_app4
|
| Interrupt bit for GPIO_APP4 |
|
| 3 |
"0"
|
gpio_app3
|
| Interrupt bit for GPIO_APP3 |
|
| 2 |
"0"
|
gpio_app2
|
| Interrupt bit for GPIO_APP2 |
|
| 1 |
"0"
|
gpio_app1
|
| Interrupt bit for GPIO_APP1 |
|
| 0 |
"0"
|
gpio_app0
|
| Interrupt bit for GPIO_APP0 |
|
| gpio_app_irq_mask_rst |
GPIO_APP interrupt mask reset: This reset mask serves to disable the interrupt requests for the corresponding interrupt sources. Like irq_msk_set, this address exists for the following address areas: inlogic_app, xpic_app_system. Write access with '1' resets the interrupt mask bit (disables the interrupt request for the corresponding interrupt source). Write access with '0' does not influence this bit. Read access shows the current interrupt mask. |
|
R/W
|
0x00000000
|
Address@gpio_app : 0xff801478
Address@gpio_xpic_app : 0xff900278
|
Bits |
Reset value |
Name |
Description |
| 31 - 8 |
0
|
-
|
reserved |
| 7 |
"0"
|
gpio_app7
|
| Interrupt bit for GPIO_APP7 |
|
| 6 |
"0"
|
gpio_app6
|
| Interrupt bit for GPIO_APP6 |
|
| 5 |
"0"
|
gpio_app5
|
| Interrupt bit for GPIO_APP5 |
|
| 4 |
"0"
|
gpio_app4
|
| Interrupt bit for GPIO_APP4 |
|
| 3 |
"0"
|
gpio_app3
|
| Interrupt bit for GPIO_APP3 |
|
| 2 |
"0"
|
gpio_app2
|
| Interrupt bit for GPIO_APP2 |
|
| 1 |
"0"
|
gpio_app1
|
| Interrupt bit for GPIO_APP1 |
|
| 0 |
"0"
|
gpio_app0
|
| Interrupt bit for GPIO_APP0 |
|
| endat_conf1 |
|
R/W
|
0x00000df0
|
Address@endat0_app : 0xff802014
Address@endat1_app : 0xff802054
|
Bits |
Reset value |
Name |
Description |
| 31 - 30 |
"00"
|
endat_ssi
|
These two bits set either the EnDat (0x2) or the SSI (0x1) transmission mode. Values 0x0 and 0x3 are not permitted. Note: For debugging purposes, this function may also be used to perform an internal status engine software reset without clearing of the other internal registers. |
|
| 29 |
"0"
|
ic_reset
|
Setting of this bit has the effect that the entire interface component is reset to its initial state. IC reset inactive = 0 IC reset active = 1 |
|
| 28 - 26 |
"000"
|
f_sys
|
The system frequency actually used must be selected here. 64/48/32/50/100 MHz = 000/010/100/101/110 |
|
| 25 |
0
|
-
|
reserved |
| 24 |
"0"
|
delay_comp
|
Delay compensation. This bit switches propagation delay compensation on. When this bit is set, propagation time measurement is performed with the next data transmission to the EnDat encoder. The interface component determines the cable propagation time and saves this in conf_reg1. This value is used to determine propagation delay compensation. To measure the propagation time again, the delay compensation bit must be reset and set again. For 16-bit access it must be considered that the measured cable propagation time value is overwritten with 00/h. Delay compensation off = 0 Delay compensation on = 1 In SSI mode, this bit is always on: Delay compensation off = 0 (SSI mode) |
|
| 23 - 16 |
"00000000"
|
cable_prop_time
|
The cable propagation time determined by the interface component is stored here. (The application may change this value. If that is the case the status registers propagation time measurement (LZM) bit will automatically be reset). The binary value has a step width of one system clock. At a system clock of 64 MHz, this corresponds to a setting range from 0 us to 3.98 us in steps of 15.6 ns. The basic setting is 00 hex |
|
| 15 |
"0"
|
auto_reset
|
Autom. reset (automatic reset). If this bit is set, resetting of the status register and error register is performed automatically Autom. reset = 0 Resetting of the above-mentioned registers must be performed by the application. Autom. reset = 1 Resetting of the above-mentioned registers is done automatically. However, this resetting only occurs in the next EnDat transmission with the start of data reception. For safety applications: autom. reset = 0 |
|
| 14 |
"0"
|
reset_window
|
The set bit allows resetting of the status and error register only within a defined time period. Reset window = 0 Resetting of the registers mentioned above can be performed anytime (i.e. without considering malfunctions). Reset Window = 1 Resetting of the registers mentioned above must be performed within a defined time period for acceptance by the protocol engine. For safety applications: reset window = 1 |
|
| 13 - 8 |
"001101"
|
data_word_len
|
Here the data word length is set binary with 6 bits for EnDat or SSI. The permissible setting range for EnDat is from 8 bits to 48 bits. The permissible setting range for SSI is from 8 bits to 48 bits. Data word length = 0 bits = 00 1000 : Data word length = 13 bits = 00 1101 : Data word length = 48 bits = 11 0000 |
| Note: |
The Data word length has to set to 40/d bit while using mode command "encoder transmit test values". |
| Note: |
In SSI mode the additionally required clock cycle for the parity bit is generated automatically by the circuit. |
|
| 7 - 4 |
"1111"
|
f_tclk
|
Setting (4 bit) of transmission rate for EnDat and SSI from 100 kHz to 1 MHz (SSI) or 16 MHz (EnDat). Transmission frequency = 100kHz = 1111 Transmission frequency = 200kHz = 1110 Transmission frequency = 1MHz = 1101 Transmission frequency = 2MHz = 1100 Transmission frequency = 4.16MHz = 1011 Transmission frequency = 8.33MHz = 0110 Transmission frequency = 16.67MHz = 0000..0011 |
|
| 3 |
0
|
-
|
reserved |
| 2 |
"0"
|
endat_cont_clk_mode
|
This bit is used to select the EnDat continuous clock mode. Continuous clock off = 0 Continuous clock on = 1 |
|
| 1 |
"0"
|
uncond_transfer
|
This bit defines the unconditional data transfer to receive registers 1, 2, 3, 4 on completion of a data transmission process, despite a flag being set in the status register. Data transfer according to flag set in the status register = 0 Data transfer despite the flag in the status register = 1 For safety applications uncond_transfer = 1 must be set. |
|
| 0 |
"0"
|
hw_strobe
|
| 1: Enables external /STR signal as strobe signal |
|
| endat_conf2 |
|
R/W
|
0x00040000
|
Address@endat0_app : 0xff802018
Address@endat1_app : 0xff802058
|
Bits |
Reset value |
Name |
Description |
| 31 - 24 |
"00000000"
|
hw_strobe_delay
|
Here the application can enter a value for the HW strobe delay. The binary value has a step width of one system clock. Setting 00 = Off, 3..255=3..255 system clock cycles The values 1, 2 are not permissible. At a system clock of 64 MHz, this corresponds to a value range from 46.88 ns to 3.98 us in steps of 15.6 ns. |
|
| 23 |
0
|
-
|
reserved |
| 22 |
"0"
|
rtm
|
Activates the recovery time measurement that is then performed after each EnDat transmission with the mode command 1-1 "Encoder transmit position value and selection of memory area" with MRS code 0x43 (selection of 2nd word of position value 2). RTM=0 Recovery time measurement is deactivated (default setting after reset) RTM=1 Recovery time measurement is activated |
|
| 21 - 19 |
"000"
|
filter
|
The digital filter for the Data_RC data input can be adjusted in eight steps (3 bits) as shown in the table below. The filter setting value corresponds to system clock cycles. Setting 000 = Off Setting 001 = 3 Setting 010 = 4 Setting 011 = 5 Setting 100 = 6 Setting 101 = 10 Setting 110 = 20 Setting 111 = 40 Setting 000 001 010 011 100 101 110 111 Note on the application: The filter must be set according to the transmission rate of the serial interface to the encoder. Example: fTCLK = 1 MHz (corresponds to 64 system clock cycles with CLK = 64 MHz) For the filter, 1/10 of the fTCLK must be set. That means 6 system clock cycles leads to setting: 100 |
|
| 18 - 16 |
"100"
|
t_st
|
This time is to be set in accordance with EnDat specification. The set time has an accuracy of 0.1 us. Setting 000 = 0.5 * TCLK Setting 001 = 0.5 us Setting 010 = 1 us Setting 011 = 1.5 us Setting 100 = 2 us Setting 101 = 4 us Setting 110 = 8 us Setting 111 = 10 us |
|
| 15 - 8 |
"00000000"
|
watchdog
|
256 different watchdog time values can be set. In the default setting 00 hex or 80 hex the watchdog is off. |
|
| 7 - 0 |
"00000000"
|
timer_for_sampling_rate
|
256 different sampling rates can be set. In the default setting 00 hex or 80 hex the timer is off. |
|
| endat_stat |
Status register The status bits are created by the sequencing controller of the interface component, as required. Status information remains set until it is reset by the application. The application can selectively reset status information with a write command. This occurs by writing 1 to the selected bits. In the event of concurrent access, the internal sequencing controller has priority. This ensures that status information is not 'lost'. The status bits (15:11) are only valid when additional information 1 or 2 has been received. Note on the application: The status register should be read after each data transmission. It provides information about validity of the data contained in the receive registers. The status bits must be reset in order that the internal sequencing controller can recognize a renewed setting of the status bits. Note: Each bit (except for LZM, LZK, Ready for Strobe) can trigger an interrupt (output: INT1). Masking is performed with the interrupt mask register. If a bit that has been set (and thus has triggered an interrupt) is reset, the INT1 output changes from low to three-state if no other bit has triggered an interrupt. |
|
R/W
|
0x40000400
|
Address@endat0_app : 0xff802020
Address@endat1_app : 0xff802060
|
Bits |
Reset value |
Name |
Description |
| 31 |
"0"
|
ready
|
If the ready bit is set, the status register is completely updated. All checks have been performed. Data transmission is not yet completed, however, meaning that the EnDat protocol automation machine is not yet ready again. No Ready = 0 Ready = 1 |
|
| 30 |
"1"
|
ready_for_strobe
|
This bit reports that data transmission has ended and that the EnDat protocol automation machine is ready for the next transmission. The time values Recovery time 1 (tm) and Recovery time 2 (tR) as specified in the EnDat specification are completed. No Ready = 0 Ready = 1 This bit cannot be reset by writing a 1 to the respective bit as this is a status display of the current conditions of internal automation engines. The bit cannot cause an interrupt. |
|
| 29 |
"0"
|
speed_ready
|
(optional). This bit reports that a new velocity value has been calculated. No new velocity value calculated = 0 New velocity value calculated = 1 |
|
| 28 |
"0"
|
rtm_stop
|
| This bit indicates the end of the recovery time, if conf2(22)=1 during EnDat transmission with mode command 1-1 "Encoder transmit position value and selection of memory area" with MRS code 0x43 (selection of 2nd word of position value 2) |
|
| 27 |
"0"
|
rtm_start
|
| This bit indicates the beginning of the recovery time, if conf2(22)=1 during EnDat transmission with mode command 1-1 "Encoder transmit position value and selection of memory area" with MRS code 0x43 (selection of 2nd word of position value 2) |
|
| 26 - 24 |
0
|
-
|
reserved |
| 23 |
"0"
|
prop_time_measurement
|
(LZM). This bit reports that propagation time measurement was successfully completed. Condition: propagation delay compensation LZK in conf_reg1 is set. If the value for propagation delay compensation in configuration register 1 is corrected by the application, this bit will automatically be reset. LZM incomplete = 0 LZM complete = 1 |
|
| 22 |
"0"
|
delay_comp
|
(LZK). This bit reports if propagation delay compensation is active. If propagation delay compensation in configuration register 1 is switched off, this bit and propagation time measurement will automatically be reset. LZK inactive = 0 LZK active = 1 Neither the LZM nor the LZK bit can be reset by writing a 1 to the respective bit as this is a status display of the current conditions of internal automation engines. Neither of the two bits can cause an interrupt. |
|
| 21 - 19 |
0
|
-
|
reserved |
| 18 |
"0"
|
f_type3
|
Type II error (transmission layer) triggers F type III. Error recognition occurs in the EnDat master. The error did not occur = 0 The error occurred = 1 |
|
| 17 |
"0"
|
watchdog
|
Reports triggering of the watchdog. Condition: watchdog in conf_reg2 is set. Watchdog not triggered = 0 Watchdog triggered = 1 |
|
| 16 |
"0"
|
spike
|
Reports that a Spike was detected at the data input port. Condition: filter in conf_reg1 is set. No spike = 0 Spike occurred = 1 |
|
| 15 |
"0"
|
wrn
|
Contains the WRN status bit as transmitted in the EnDat protocol. WRN = 0 WRN = 1 |
|
| 14 |
"0"
|
rm
|
Contains the RM status bit as transmitted in the EnDat protocol. RM = 0 RM = 1 |
|
| 13 |
"0"
|
busy
|
Contains the Busy status bit as transmitted in the EnDat protocol. Busy = 0 Busy = 1 |
|
| 12 |
"0"
|
crc_zi2
|
During EnDat transmissions, this bit indicates the result of the CRC checking of additional information (ZI2). CRC check of ZI2 okay = 0 CRC check of ZI2 faulty = 1 |
|
| 11 |
"0"
|
crc_zi1
|
During EnDat transmissions, this bit indicates the result of the CRC checking of additional information (ZI1). CRC check of ZI2 okay = 0 CRC check of ZI2 faulty = 1 |
|
| 10 |
"1"
|
error2
|
Contains the /Error 2 status bit from the EnDat protocol (only with EnDat2.2 commands). /Error2 occurred = 0 /Error2 did not occur = 1 |
|
| 9 |
"0"
|
receive3_reg
|
This status flag indicates that the data in Receive-Reg3 has been updated. It must be cleared after Receive-Reg3 has been read to allow the interface component to rewrite data. Receive-Reg3 not updated = 0 Receive-Reg3 updated = 1 |
|
| 8 |
"0"
|
receive2_reg
|
This status flag indicates that the data in Receive-Reg 2 (3) has been updated. It must be cleared after Receive-Reg2 (3) has been read to allow the interface component to rewrite data. Receive-Reg2 (3) not updated = 0 Receive-Reg2 (3) updated = 1 |
|
| 7 |
"0"
|
ir7
|
This bit indicates the state of input pin /IR7. Input /IR7 is at high level = 0 Input /IR7 is at low level = 1 |
|
| 6 |
"0"
|
ir6
|
This bit indicates an H/L edge at input pin /IR6. No H/L edge transition at input /IR6 = 0 H/L edge transition has occurred at input /IR6R6 = 1 |
|
| 5 |
"0"
|
mrs_adr
|
The occurrence of an addressing or acknowledgement error is shown here as described in the EnDat Interface specification. The errors (F type I / II) are special cases of MRS/address errors, i.e. they are a sub-quantity of these. Accordingly, whenever a type I or type II error is identified, the MRS/Adr bit is set. For example, if an MRS/address bit is recognized incorrectly due to a disturbance, only the MRS/Adr status bit will be set, not the F TYP I/II bits. No acknowledgement or addressing error has occurred = 0 An acknowledgement or addressing error has occurred = 1 |
|
| 4 |
"0"
|
f_type2
|
Shows type II error handling in accordance with the EnDat specification at Annex A2. A type II error did not occur = 0 A type II error occurred = 1 |
|
| 3 |
"0"
|
f_type1
|
Shows type I error handling in accordance with the EnDat specification at Annex A2. A type I error did not occur = 0 A type I error occurred = 1 |
|
| 2 |
"0"
|
crcpw_parity
|
This bit has two meanings. With EnDat transmission it represents the result of the CRC check of the received value (position value, parameter or test value). With SSI transmission it shows the result of the parity check. Condition: parity check in conf-Reg1 is switched on. CRC check or parity check okay = 0 CRC and parity check faulty = 1 |
|
| 1 |
"0"
|
error1
|
The status bit error1 from the EnDat protocol is entered here. Error1 did not occur = 0 Error1 occurred = 1 |
|
| 0 |
"0"
|
receive1_reg
|
This status flag indicates that the data in Receive-Reg 1 has been updated. It must be cleared after Receive-Reg1 has been read to allow the interface component to rewrite data there. Receive-Reg1 not updated = 0 Receive-Reg1 updated = 1 Note: This flag is ignored if the uncond_transfer bit is enabled in conf-Reg 1. |
|
| endat_test2 |
|
R/W
|
0x00000000
|
Address@endat0_app : 0xff80202c
Address@endat1_app : 0xff80206c
|
Bits |
Reset value |
Name |
Description |
| 31 - 16 |
0x0
|
ic_test_data
|
RTM value - Counter value of the recovery time measurement if conf2(22)=1. Updated after the completion of the recovery time tm measurement during the EnDat transmission with mode command 1-1 "Encoder transmit position value and selection of memory area" with MRS code 0x43 (selection of 2nd word of position value 2). With conf2(22)=0, data for the recovery time measurement tm are not valid. Writing to the test register sets the internal counter of the recovery time measurement to the value of the "write data" (31:16) - Init word or start value of the recovery time measurement. The value of the internal measuring counter is incremented with the system frequency during the time tm, and the carry is discarded. |
|
| 15 - 14 |
"00"
|
sel_test_mux3
|
(For testing at IC manufacturing site, internal resources can be read via test register 3) Write value test register 3 = 00 (Content written to test register 3 via the I/O port.) Test values counter TM measurement = 01 TM_High_Err & TM_low_Err & F_TM & TM_CT2 &TM_CT1 Limit values for TM measurement = 10 C_WT_HIGH & C_WT_LOW & C_HIGH & C_LOW Test values internal OEM Reg = 11 (only available in customer-specific versions) |
|
| 13 - 12 |
"00"
|
sel_test_mux2
|
(For testing at IC manufacturing site, internal resources can be read via test register 4) Test_Mode_Divider = 0: Selection of test multiplexer 2: Test value Pos1b (Pos1 - Off2) = 00 Test value Pos1c (Pos1 DIV nsrPos1) = 01 Test value Pos1d (Pos1 MOD srM) = 10 Test value Pos2 = 11 Test_Mode_Divider = 1 Selection of test multiplexer 2: Test value quotient (divider) = 00 Test value remainder (divider) = 01 |
|
| 11 |
"0"
|
test_mode_divider
|
(For testing at IC manufacturing site, internal resources can be read via test register 4) Standard operating mode = 0 Test mode active = 1 |
|
| 10 - 8 |
"000"
|
selection_add_info
|
The number of required additional information units (ZI) can also be selected manually(alternatively to implemented ZI automation resources) Automated resources active = 0 00 IC sends clocks for one unit of additional information 1 = 0 01 IC sends clocks for one unit of additional information 2 = 0 10 IC sends clocks for two units of additional information (1+2) = 0 11 IC sends no clocks for additional information = 1 xx |
|
| 7 |
"0"
|
ic_test_mode
|
The IC can be switched to a special test mode, allowing the testing of internal modules Standard application mode = 0 Special test mode = 1 |
|
| 6 |
0
|
-
|
reserved |
| 5 - 4 |
"00"
|
sel_test_mux
|
(for testing at IC manufacturing site, internal resources can be read) Standard operating mode = 00 Central pre-dividers = 01 Start bit counter = 10 Delay counter and register, additional information bit = 11 |
|
| 3 |
"0"
|
test_receive_reg
|
Standard operating mode = TST receive_reg = 0 Test mode for receive register = TST receive_reg = 1 By writing to the address of the receive registers, the content of test register 2 (bits (31:16) is transferred them. It is not possible to directly write to a receive register via the parallel port. |
|
| 2 |
"0"
|
selection_tst_out
|
For testing, the TST_OUT_PIN pin is assigned as follows: Internal (delayed by synchronization) DATA_RC_INT = 0 This signal is the signal that belongs to data strobe pulse. |
|
| 1 - 0 |
0
|
-
|
reserved |
| biss_sc0 |
|
R/W
|
0x00000000
|
Address@biss0_app : 0xff8021c0
Address@biss1_app : 0xff8022c0
|
Bits |
Reset value |
Name |
Description |
| 31 - 16 |
0x0
|
SCRCSTART0
|
| Start value for polynomial SCD CRC calculation |
|
| 15 |
"0"
|
SELCRCS0
|
| Selection between polynomial or length for SCD CRC polynomial |
| 0: |
CRC bit length in SCRCLENx (see SCRCPOLYx) apply dedicated CRC polynomials |
| 1: |
CRC polynomial(7:1) in SCRCPOLYx. SELCRCSx = 1 not applicable with CRC polynomial SCRCPOLYx(7:0) = 0x00 |
|
| 14 - 8 |
"0000000"
|
SCRCPOLY0
|
| - SELCRCx == 0 ( SCRCLENx: polynomial selection by length for SCD CRC check) |
| 0: |
CRC for single cycle data not present, CRC verification deactivated. SELCRCSx = 0b0 |
| 3: |
CRC polynomial = 0x0b |
| 4: |
CRC polynomial = 0x13 |
| 5: |
CRC polynomial = 0x25 |
| 6: |
CRC polynomial = 0x43 |
| 7: |
CRC polynomial = 0x89 |
| 8: |
CRC polynomial = 0x12f |
| 16: |
CRC polynomial = 0x190d9 |
| ..: |
other CRC length are not permitted with SELCRCSx = 0 |
| - SELCRCx == 1 (SCRCPOLYx: polynomial for SCD CRC check) |
| 0x00 : |
CRC polynomial 0x00 not applicable with SELCRCSx = 1 |
| 0x01.. 0x7f: |
CRC polynomial for single cycle data = SCRCPOLYx(7:1) + 0x01 |
|
| 7 |
"0"
|
LSTOP0
|
| - BISS mode(LSTOPx = Actuator stop bit control) |
| 0: |
no leading STOP bit on single cycle actuator data |
| 1: |
leading STOP bit on single cycle actuator data |
| - SSI mode(GRAYSx = Enable SCD gray to binary conversion) |
| 0: |
SSI single cycle data binary coded |
| 1: |
SSI single cycle data gray coded |
|
| 6 |
"0"
|
ENSCD0
|
| 0: |
single cycle data not available |
| 1: |
single cycle data available |
|
| 5 - 0 |
"000000"
|
SCDLEN0
|
| 0 : |
single cycle data length = 1 |
| 1 : |
single cycle data length = 2 |
| ... single cycle data length = SCDLENx + 1 |
| 62: |
single cycle data length = 63 |
| 63: |
single cycle data length = 64 |
|
| biss_sc1 |
|
R/W
|
0x00000000
|
Address@biss0_app : 0xff8021c4
Address@biss1_app : 0xff8022c4
|
Bits |
Reset value |
Name |
Description |
| 31 - 16 |
0x0
|
SCRCSTART1
|
| Start value for polynomial SCD CRC calculation |
|
| 15 |
"0"
|
SELCRCS1
|
| Selection between polynomial or length for SCD CRC polynomial |
| 0: |
CRC bit length in SCRCLENx (see SCRCPOLYx) apply dedicated CRC polynomials |
| 1: |
CRC polynomial(7:1) in SCRCPOLYx. SELCRCSx = 1 not applicable with CRC polynomial SCRCPOLYx(7:0) = 0x00 |
|
| 14 - 8 |
"0000000"
|
SCRCPOLY1
|
| - SELCRCx == 0 ( SCRCLENx: polynomial selection by length for SCD CRC check) |
| 0: |
CRC for single cycle data not present, CRC verification deactivated. SELCRCSx = 0b0 |
| 3: |
CRC polynomial = 0x0b |
| 4: |
CRC polynomial = 0x13 |
| 5: |
CRC polynomial = 0x25 |
| 6: |
CRC polynomial = 0x43 |
| 7: |
CRC polynomial = 0x89 |
| 8: |
CRC polynomial = 0x12f |
| 16: |
CRC polynomial = 0x190d9 |
| ..: |
other CRC length are not permitted with SELCRCSx = 0 |
| - SELCRCx == 1 (SCRCPOLYx: polynomial for SCD CRC check) |
| 0x00 : |
CRC polynomial 0x00 not applicable with SELCRCSx = 1 |
| 0x01.. 0x7f: |
CRC polynomial for single cycle data = SCRCPOLYx(7:1) + 0x01 |
|
| 7 |
"0"
|
LSTOP1
|
| - BISS mode(LSTOPx = Actuator stop bit control) |
| 0: |
no leading STOP bit on single cycle actuator data |
| 1: |
leading STOP bit on single cycle actuator data |
| - SSI mode(GRAYSx = Enable SCD gray to binary conversion) |
| 0: |
SSI single cycle data binary coded |
| 1: |
SSI single cycle data gray coded |
|
| 6 |
"0"
|
ENSCD1
|
| 0: |
single cycle data not available |
| 1: |
single cycle data available |
|
| 5 - 0 |
"000000"
|
SCDLEN1
|
| 0 : |
single cycle data length = 1 |
| 1 : |
single cycle data length = 2 |
| ... single cycle data length = SCDLENx + 1 |
| 62: |
single cycle data length = 63 |
| 63: |
single cycle data length = 64 |
|
| biss_sc2 |
|
R/W
|
0x00000000
|
Address@biss0_app : 0xff8021c8
Address@biss1_app : 0xff8022c8
|
Bits |
Reset value |
Name |
Description |
| 31 - 16 |
0x0
|
SCRCSTART2
|
| Start value for polynomial SCD CRC calculation |
|
| 15 |
"0"
|
SELCRCS2
|
| Selection between polynomial or length for SCD CRC polynomial |
| 0: |
CRC bit length in SCRCLENx (see SCRCPOLYx) apply dedicated CRC polynomials |
| 1: |
CRC polynomial(7:1) in SCRCPOLYx. SELCRCSx = 1 not applicable with CRC polynomial SCRCPOLYx(7:0) = 0x00 |
|
| 14 - 8 |
"0000000"
|
SCRCPOLY2
|
| - SELCRCx == 0 ( SCRCLENx: polynomial selection by length for SCD CRC check) |
| 0: |
CRC for single cycle data not present, CRC verification deactivated. SELCRCSx = 0b0 |
| 3: |
CRC polynomial = 0x0b |
| 4: |
CRC polynomial = 0x13 |
| 5: |
CRC polynomial = 0x25 |
| 6: |
CRC polynomial = 0x43 |
| 7: |
CRC polynomial = 0x89 |
| 8: |
CRC polynomial = 0x12f |
| 16: |
CRC polynomial = 0x190d9 |
| ..: |
other CRC length are not permitted with SELCRCSx = 0 |
| - SELCRCx == 1 (SCRCPOLYx: polynomial for SCD CRC check) |
| 0x00 : |
CRC polynomial 0x00 not applicable with SELCRCSx = 1 |
| 0x01.. 0x7f: |
CRC polynomial for single cycle data = SCRCPOLYx(7:1) + 0x01 |
|
| 7 |
"0"
|
LSTOP2
|
| - BISS mode(LSTOPx = Actuator stop bit control) |
| 0: |
no leading STOP bit on single cycle actuator data |
| 1: |
leading STOP bit on single cycle actuator data |
| - SSI mode(GRAYSx = Enable SCD gray to binary conversion) |
| 0: |
SSI single cycle data binary coded |
| 1: |
SSI single cycle data gray coded |
|
| 6 |
"0"
|
ENSCD2
|
| 0: |
single cycle data not available |
| 1: |
single cycle data available |
|
| 5 - 0 |
"000000"
|
SCDLEN2
|
| 0 : |
single cycle data length = 1 |
| 1 : |
single cycle data length = 2 |
| ... single cycle data length = SCDLENx + 1 |
| 62: |
single cycle data length = 63 |
| 63: |
single cycle data length = 64 |
|
| biss_sc3 |
|
R/W
|
0x00000000
|
Address@biss0_app : 0xff8021cc
Address@biss1_app : 0xff8022cc
|
Bits |
Reset value |
Name |
Description |
| 31 - 16 |
0x0
|
SCRCSTART3
|
| Start value for polynomial SCD CRC calculation |
|
| 15 |
"0"
|
SELCRCS3
|
| Selection between polynomial or length for SCD CRC polynomial |
| 0: |
CRC bit length in SCRCLENx (see SCRCPOLYx) apply dedicated CRC polynomials |
| 1: |
CRC polynomial(7:1) in SCRCPOLYx. SELCRCSx = 1 not applicable with CRC polynomial SCRCPOLYx(7:0) = 0x00 |
|
| 14 - 8 |
"0000000"
|
SCRCPOLY3
|
| - SELCRCx == 0 ( SCRCLENx: polynomial selection by length for SCD CRC check) |
| 0: |
CRC for single cycle data not present, CRC verification deactivated. SELCRCSx = 0b0 |
| 3: |
CRC polynomial = 0x0b |
| 4: |
CRC polynomial = 0x13 |
| 5: |
CRC polynomial = 0x25 |
| 6: |
CRC polynomial = 0x43 |
| 7: |
CRC polynomial = 0x89 |
| 8: |
CRC polynomial = 0x12f |
| 16: |
CRC polynomial = 0x190d9 |
| ..: |
other CRC length are not permitted with SELCRCSx = 0 |
| - SELCRCx == 1 (SCRCPOLYx: polynomial for SCD CRC check) |
| 0x00 : |
CRC polynomial 0x00 not applicable with SELCRCSx = 1 |
| 0x01.. 0x7f: |
CRC polynomial for single cycle data = SCRCPOLYx(7:1) + 0x01 |
|
| 7 |
"0"
|
LSTOP3
|
| - BISS mode(LSTOPx = Actuator stop bit control) |
| 0: |
no leading STOP bit on single cycle actuator data |
| 1: |
leading STOP bit on single cycle actuator data |
| - SSI mode(GRAYSx = Enable SCD gray to binary conversion) |
| 0: |
SSI single cycle data binary coded |
| 1: |
SSI single cycle data gray coded |
|
| 6 |
"0"
|
ENSCD3
|
| 0: |
single cycle data not available |
| 1: |
single cycle data available |
|
| 5 - 0 |
"000000"
|
SCDLEN3
|
| 0 : |
single cycle data length = 1 |
| 1 : |
single cycle data length = 2 |
| ... single cycle data length = SCDLENx + 1 |
| 62: |
single cycle data length = 63 |
| 63: |
single cycle data length = 64 |
|
| biss_sc4 |
|
R/W
|
0x00000000
|
Address@biss0_app : 0xff8021d0
Address@biss1_app : 0xff8022d0
|
Bits |
Reset value |
Name |
Description |
| 31 - 16 |
0x0
|
SCRCSTART4
|
| Start value for polynomial SCD CRC calculation |
|
| 15 |
"0"
|
SELCRCS4
|
| Selection between polynomial or length for SCD CRC polynomial |
| 0: |
CRC bit length in SCRCLENx (see SCRCPOLYx) apply dedicated CRC polynomials |
| 1: |
CRC polynomial(7:1) in SCRCPOLYx. SELCRCSx = 1 not applicable with CRC polynomial SCRCPOLYx(7:0) = 0x00 |
|
| 14 - 8 |
"0000000"
|
SCRCPOLY4
|
| - SELCRCx == 0 ( SCRCLENx: polynomial selection by length for SCD CRC check) |
| 0: |
CRC for single cycle data not present, CRC verification deactivated. SELCRCSx = 0b0 |
| 3: |
CRC polynomial = 0x0b |
| 4: |
CRC polynomial = 0x13 |
| 5: |
CRC polynomial = 0x25 |
| 6: |
CRC polynomial = 0x43 |
| 7: |
CRC polynomial = 0x89 |
| 8: |
CRC polynomial = 0x12f |
| 16: |
CRC polynomial = 0x190d9 |
| ..: |
other CRC length are not permitted with SELCRCSx = 0 |
| - SELCRCx == 1 (SCRCPOLYx: polynomial for SCD CRC check) |
| 0x00 : |
CRC polynomial 0x00 not applicable with SELCRCSx = 1 |
| 0x01.. 0x7f: |
CRC polynomial for single cycle data = SCRCPOLYx(7:1) + 0x01 |
|
| 7 |
"0"
|
LSTOP4
|
| - BISS mode(LSTOPx = Actuator stop bit control) |
| 0: |
no leading STOP bit on single cycle actuator data |
| 1: |
leading STOP bit on single cycle actuator data |
| - SSI mode(GRAYSx = Enable SCD gray to binary conversion) |
| 0: |
SSI single cycle data binary coded |
| 1: |
SSI single cycle data gray coded |
|
| 6 |
"0"
|
ENSCD4
|
| 0: |
single cycle data not available |
| 1: |
single cycle data available |
|
| 5 - 0 |
"000000"
|
SCDLEN4
|
| 0 : |
single cycle data length = 1 |
| 1 : |
single cycle data length = 2 |
| ... single cycle data length = SCDLENx + 1 |
| 62: |
single cycle data length = 63 |
| 63: |
single cycle data length = 64 |
|
| biss_sc5 |
|
R/W
|
0x00000000
|
Address@biss0_app : 0xff8021d4
Address@biss1_app : 0xff8022d4
|
Bits |
Reset value |
Name |
Description |
| 31 - 16 |
0x0
|
SCRCSTART5
|
| Start value for polynomial SCD CRC calculation |
|
| 15 |
"0"
|
SELCRCS5
|
| Selection between polynomial or length for SCD CRC polynomial |
| 0: |
CRC bit length in SCRCLENx (see SCRCPOLYx) apply dedicated CRC polynomials |
| 1: |
CRC polynomial(7:1) in SCRCPOLYx. SELCRCSx = 1 not applicable with CRC polynomial SCRCPOLYx(7:0) = 0x00 |
|
| 14 - 8 |
"0000000"
|
SCRCPOLY5
|
| - SELCRCx == 0 ( SCRCLENx: polynomial selection by length for SCD CRC check) |
| 0: |
CRC for single cycle data not present, CRC verification deactivated. SELCRCSx = 0b0 |
| 3: |
CRC polynomial = 0x0b |
| 4: |
CRC polynomial = 0x13 |
| 5: |
CRC polynomial = 0x25 |
| 6: |
CRC polynomial = 0x43 |
| 7: |
CRC polynomial = 0x89 |
| 8: |
CRC polynomial = 0x12f |
| 16: |
CRC polynomial = 0x190d9 |
| ..: |
other CRC length are not permitted with SELCRCSx = 0 |
| - SELCRCx == 1 (SCRCPOLYx: polynomial for SCD CRC check) |
| 0x00 : |
CRC polynomial 0x00 not applicable with SELCRCSx = 1 |
| 0x01.. 0x7f: |
CRC polynomial for single cycle data = SCRCPOLYx(7:1) + 0x01 |
|
| 7 |
"0"
|
LSTOP5
|
| - BISS mode(LSTOPx = Actuator stop bit control) |
| 0: |
no leading STOP bit on single cycle actuator data |
| 1: |
leading STOP bit on single cycle actuator data |
| - SSI mode(GRAYSx = Enable SCD gray to binary conversion) |
| 0: |
SSI single cycle data binary coded |
| 1: |
SSI single cycle data gray coded |
|
| 6 |
"0"
|
ENSCD5
|
| 0: |
single cycle data not available |
| 1: |
single cycle data available |
|
| 5 - 0 |
"000000"
|
SCDLEN5
|
| 0 : |
single cycle data length = 1 |
| 1 : |
single cycle data length = 2 |
| ... single cycle data length = SCDLENx + 1 |
| 62: |
single cycle data length = 63 |
| 63: |
single cycle data length = 64 |
|
| biss_sc6 |
|
R/W
|
0x00000000
|
Address@biss0_app : 0xff8021d8
Address@biss1_app : 0xff8022d8
|
Bits |
Reset value |
Name |
Description |
| 31 - 16 |
0x0
|
SCRCSTART6
|
| Start value for polynomial SCD CRC calculation |
|
| 15 |
"0"
|
SELCRCS6
|
| Selection between polynomial or length for SCD CRC polynomial |
| 0: |
CRC bit length in SCRCLENx (see SCRCPOLYx) apply dedicated CRC polynomials |
| 1: |
CRC polynomial(7:1) in SCRCPOLYx. SELCRCSx = 1 not applicable with CRC polynomial SCRCPOLYx(7:0) = 0x00 |
|
| 14 - 8 |
"0000000"
|
SCRCPOLY6
|
| - SELCRCx == 0 ( SCRCLENx: polynomial selection by length for SCD CRC check) |
| 0: |
CRC for single cycle data not present, CRC verification deactivated. SELCRCSx = 0b0 |
| 3: |
CRC polynomial = 0x0b |
| 4: |
CRC polynomial = 0x13 |
| 5: |
CRC polynomial = 0x25 |
| 6: |
CRC polynomial = 0x43 |
| 7: |
CRC polynomial = 0x89 |
| 8: |
CRC polynomial = 0x12f |
| 16: |
CRC polynomial = 0x190d9 |
| ..: |
other CRC length are not permitted with SELCRCSx = 0 |
| - SELCRCx == 1 (SCRCPOLYx: polynomial for SCD CRC check) |
| 0x00 : |
CRC polynomial 0x00 not applicable with SELCRCSx = 1 |
| 0x01.. 0x7f: |
CRC polynomial for single cycle data = SCRCPOLYx(7:1) + 0x01 |
|
| 7 |
"0"
|
LSTOP6
|
| - BISS mode(LSTOPx = Actuator stop bit control) |
| 0: |
no leading STOP bit on single cycle actuator data |
| 1: |
leading STOP bit on single cycle actuator data |
| - SSI mode(GRAYSx = Enable SCD gray to binary conversion) |
| 0: |
SSI single cycle data binary coded |
| 1: |
SSI single cycle data gray coded |
|
| 6 |
"0"
|
ENSCD6
|
| 0: |
single cycle data not available |
| 1: |
single cycle data available |
|
| 5 - 0 |
"000000"
|
SCDLEN6
|
| 0 : |
single cycle data length = 1 |
| 1 : |
single cycle data length = 2 |
| ... single cycle data length = SCDLENx + 1 |
| 62: |
single cycle data length = 63 |
| 63: |
single cycle data length = 64 |
|
| biss_sc7 |
|
R/W
|
0x00000000
|
Address@biss0_app : 0xff8021dc
Address@biss1_app : 0xff8022dc
|
Bits |
Reset value |
Name |
Description |
| 31 - 16 |
0x0
|
SCRCSTART7
|
| Start value for polynomial SCD CRC calculation |
|
| 15 |
"0"
|
SELCRCS7
|
| Selection between polynomial or length for SCD CRC polynomial |
| 0: |
CRC bit length in SCRCLENx (see SCRCPOLYx) apply dedicated CRC polynomials |
| 1: |
CRC polynomial(7:1) in SCRCPOLYx. SELCRCSx = 1 not applicable with CRC polynomial SCRCPOLYx(7:0) = 0x00 |
|
| 14 - 8 |
"0000000"
|
SCRCPOLY7
|
| - SELCRCx == 0 (SCRCLENx: polynomial selection by length for SCD CRC check) |
| 0: |
CRC for single cycle data not present, CRC verification deactivated. SELCRCSx = 0b0 |
| 3: |
CRC polynomial = 0x0b |
| 4: |
CRC polynomial = 0x13 |
| 5: |
CRC polynomial = 0x25 |
| 6: |
CRC polynomial = 0x43 |
| 7: |
CRC polynomial = 0x89 |
| 8: |
CRC polynomial = 0x12f |
| 16: |
CRC polynomial = 0x190d9 |
| ..: |
other CRC length are not permitted with SELCRCSx = 0 |
| - SELCRCx == 1 (SCRCPOLYx: polynomial for SCD CRC check) |
| 0x00 : |
CRC polynomial 0x00 not applicable with SELCRCSx = 1 |
| 0x01.. 0x7f: |
CRC polynomial for single cycle data = SCRCPOLYx(7:1) + 0x01 |
|
| 7 |
"0"
|
LSTOP7
|
| - BISS mode(LSTOPx = Actuator stop bit control) |
| 0: |
no leading STOP bit on single cycle actuator data |
| 1: |
leading STOP bit on single cycle actuator data |
| - SSI mode(GRAYSx = Enable SCD gray to binary conversion) |
| 0: |
SSI single cycle data binary coded |
| 1: |
SSI single cycle data gray coded |
|
| 6 |
"0"
|
ENSC7
|
| 0: |
single cycle data not available |
| 1: |
single cycle data available |
|
| 5 - 0 |
"000000"
|
SCDLEN7
|
| 0 : |
single cycle data length = 1 |
| 1 : |
single cycle data length = 2 |
| ... single cycle data length = SCDLENx + 1 |
| 62: |
single cycle data length = 63 |
| 63: |
single cycle data length = 64 |
|
| biss_ccc1_mc0 |
| Register Communication Configuration / Master Configuration |
|
R/W
|
0x00000000
|
Address@biss0_app : 0xff8021e4
Address@biss1_app : 0xff8022e4
|
Bits |
Reset value |
Name |
Description |
| 31 - 26 |
0
|
-
|
reserved |
| 25 |
"0"
|
NOCRC
|
| CRC for SCD not to be stored in RAM |
| 0: |
CRC of SCD is stored RAM (only applicable with active CRC verification and CRC polynome > 0) |
| 1: |
CRC of SCD not to be stored in RAM |
|
| 24 |
"0"
|
SINGLEBANK
|
| Use of only one RAM bank for SCD |
| 0: |
two RAM banks are used for SCD |
| 1: |
one RAM bank is used for SCD |
|
| 23 - 21 |
"000"
|
FREQR
|
Frequency division register communication BiSS B 0 .. 7: freqSens/(2*(FREQ(7:5)+1)) |
| 0: |
FreqSens/2 |
| 1: |
FreqSens/4 |
| 2: |
FreqSens/8 |
| 3: |
FreqSens/16 |
| 4: |
FreqSens/32 |
| 5: |
FreqSens/64 |
| 6: |
FreqSens/128 |
| 7: |
FreqSens/256 |
|
| 20 - 16 |
"00000"
|
FREQS
|
| 0x00: |
fCLK/2 |
| 0x01: |
fCLK/4 |
| 0x02: |
fCLK/6 |
| 0x03: |
fCLK/8 |
| 0x0d: |
fCLK/28 |
| 0x0e: |
fCLK/30 |
| 0x0f: |
fCLK/32 |
| 0x10: |
not permitted |
| 0x11: |
fCLK/40 |
| 0x12: |
fCLK/60 |
| 0x13: |
fCLK/80 |
| 0x1d: |
fCLK/280 |
| 0x1e: |
fCLK/300 |
| 0x1f: |
fCLK/320 |
|
| 15 |
"0"
|
CTS
|
| Register transmission or instruction selector |
| 0: |
command/instruction communication |
| 1: |
register communication |
|
| 14 |
"0"
|
REGVERS
|
BiSS model A/B or C selector - Using register access in control communication |
| 0: |
register communication BiSS A/B |
| 1: |
register communication BiSS C |
| - Using command/instructions in control communication |
| 0: |
not applicable with command/instruction communication |
| 1: |
command communication BiSS C |
|
| 13 - 12 |
"00"
|
CMD
|
- Using register access in control communication SLAVEID[2:1]: slave selector bit2_1 - Using command/instructions in control communication Command of access slave # default 0x00 0x00 .. 0x03: command/instruction 0b00 .. 0b11 |
|
| 11 |
"0"
|
IDA_TEST
|
- Using register access in control communication SLAVEID[0]: slave selector bit0 - Using command/instructions in control communication IDA_TEST: command/instruction execution control |
| 0: |
the slaves feedback (IDA) is tested before execution (EX bit after IDA) |
| 1: |
immediate execution |
|
| 10 |
0
|
-
|
reserved |
| 9 |
"0"
|
EN_MO
|
| Enable output at MOx for actuator data or delayed start bit |
| 0: |
MO forced to low |
| 1: |
Parameterized processing time by master on MO signal active (length: MO_BUSY) |
|
| 8 |
"0"
|
HOLDCDM
|
| Hold CDM(control data master) |
| 0: |
clock line high at end of cycle |
| 1: |
clock line constant with CDM bit until start of next cycle |
|
| 7 - 2 |
0
|
-
|
reserved |
| 1 - 0 |
"00"
|
CHSEL
|
| 0: |
channel 1 used for control communication, channel 2 not used |
| 1: |
channel 1 used for control communication, channel 2 not used |
| 2: |
channel 2 used for control communication, channel 1 not used. Note: Channel 2 is not available with IC-MB4 TSSOP24 |
| 3: |
channel 1,2 used for control communication. Note: Channel 2 is not available with IC-MB4 TSSOP24 |
|
| biss_status0 |
|
R
|
Address@biss0_app : 0xff8021f0
Address@biss1_app : 0xff8022f0
|
Bits |
Name |
Description |
| 31 |
CDMTIMEOUT
|
| CDM(Control Data Master) timeout reached |
| 0: |
CDMTIMEOUT not reached |
| 1: |
CDMTIMEOUT reached |
|
| 30 |
CDSSEL
|
| CDS(Control Data Slave) bit from the selected channel |
|
| 29 - 24 |
REGBYTES
|
| Number of valid register data transmission in case of error |
| 0x00 : |
after transfer: no register communication error |
| 0x01 . 0x3f: |
after transfer: number of successfully transferred registers before register communication error |
|
| 23 |
SVALID7
|
| SCDATA7 validity indication |
| 0: |
SCD invalid |
| 1: |
SCD valid |
| The SVALIDx bit indicates the validity of each slaves SCD CRC verification. A prior set SVALIDx bit can be reset by writing 0 into the register. |
|
| 22 |
-
|
reserved |
| 21 |
SVALID6
|
| SCDATA6 validity indication |
| 0: |
SCD invalid |
| 1: |
SCD valid |
| The SVALIDx bit indicates the validity of each slaves SCD CRC verification. A prior set SVALIDx bit can be reset by writing 0 into the register. |
|
| 20 |
-
|
reserved |
| 19 |
SVALID5
|
| SCDATA5 validity indication |
| 0: |
SCD invalid |
| 1: |
SCD valid |
| The SVALIDx bit indicates the validity of each slaves SCD CRC verification. A prior set SVALIDx bit can be reset by writing 0 into the register. |
|
| 18 |
-
|
reserved |
| 17 |
SVALID4
|
| SCDATA4 validity indication |
| 0: |
SCD invalid |
| 1: |
SCD valid |
| The SVALIDx bit indicates the validity of each slaves SCD CRC verification. A prior set SVALIDx bit can be reset by writing 0 into the register. |
|
| 16 |
-
|
reserved |
| 15 |
SVALID3
|
| SCDATA3 validity indication |
| 0: |
SCD invalid |
| 1: |
SCD valid |
| The SVALIDx bit indicates the validity of each slaves SCD CRC verification. A prior set SVALIDx bit can be reset by writing 0 into the register. |
|
| 14 |
-
|
reserved |
| 13 |
SVALID2
|
| SCDATA2 validity indication |
| 0: |
SCD invalid |
| 1: |
SCD valid |
| The SVALIDx bit indicates the validity of each slaves SCD CRC verification. A prior set SVALIDx bit can be reset by writing 0 into the register. |
|
| 12 |
-
|
reserved |
| 11 |
SVALID1
|
| SCDATA1 validity indication |
| 0: |
SCD invalid |
| 1: |
SCD valid |
| The SVALIDx bit indicates the validity of each slaves SCD CRC verification. A prior set SVALIDx bit can be reset by writing 0 into the register. |
|
| 10 |
-
|
reserved |
| 9 |
SVALID0
|
| SCDATA0 validity indication |
| 0: |
SCD invalid |
| 1: |
SCD valid |
| The SVALIDx bit indicates the validity of each slaves SCD CRC verification. A prior set SVALIDx bit can be reset by writing 0 into the register. |
|
| 8 |
-
|
reserved |
| 7 |
nERR
|
| Transmission error (error at NER pin) |
| It is possible to connect other components to pin NER which can also generate an error message; this can then be read out via this bit. |
|
| 6 |
nAGSERR
|
| 0: |
AGS(Automatic Get Sensor data) watchdog error |
| 1: |
no AGS watchdog error |
| An AGS watchdog error is set during the automatic transmission of sensor data if no new cycle could be initiated; bit AGS in the command register is reset and the automatic request of sensor data aborted. |
|
| 5 |
nDELAYERR
|
| Missing start bit during register communication |
| 0: |
delay error |
| 1: |
no delay error |
|
| 4 |
nSCDERR
|
| Error in single cycle data transmission |
| 0: |
error in last single cycle data transmission |
| 1: |
no error in last single cycle data transmission |
|
| 3 |
nREGERR
|
| Error in register data transmission |
| 0: |
error in last register data transmission |
| 1: |
no error in last register data transmission |
|
| 2 |
REGEND
|
| Register data transmission completed |
| 0: |
no valid register data available |
| 1: |
register data transmission completed |
|
| 1 |
status0_reserved1
|
|
| 0 |
EOT
|
| Data transmission completed |
| 0: |
data transmission active |
| 1: |
data transmission finished |
|
| biss_ir |
|
R/W
|
0x00000000
|
Address@biss0_app : 0xff8021f4
Address@biss1_app : 0xff8022f4
|
Bits |
Reset value |
Name |
Description |
| 31 - 16 |
0
|
-
|
reserved |
| 15 |
"0"
|
MAVO
|
| Not selected MA line control level |
| 0: |
low definition of unselected(CHSEL) MA clock lines |
| 1: |
high definition of unselected(CHSEL) MA clock lines |
|
| 14 |
"0"
|
MAFO
|
| Not selected MA line control selection |
| 0: |
controlling unselected(CHSEL) MA clock line: using MA signal |
| 1: |
controlling unselected(CHSEL) MA clock line: using MAVS level |
|
| 13 |
"0"
|
MAVS
|
| Selected MA line control level |
| 0: |
low definition of selected(CHSEL) MA clock lines |
| 1: |
high definition of selected(CHSEL) MA clock lines |
|
| 12 |
"0"
|
MAFS
|
| Selected MA line control selection |
| 0: |
controlling selected/CHSEL) MA clock line: using MA signal |
| 1: |
controlling selected(CHSEL) MA clock line: using MAVS level |
|
| 11 - 10 |
"00"
|
CFGIF
|
| Configure physical interface |
| 0x00: |
TTL |
| 0x01: |
CMOS |
| 0x02: |
RS422 |
| 0x03: |
LVDS |
|
| 9 |
"0"
|
ENTEST
|
| 0: |
device in normal operation mode |
| 1: |
device in test mode |
|
| 8 |
"0"
|
CLKENI
|
| 0: |
the master clock is generated by an external clock oscillator |
| 1: |
the master clock is generated by the basic clock of the internal 20MHz oscillator |
|
| 7 |
"0"
|
BREAK
|
| Data transmission interrupt |
| 0: |
no change |
1: |
abort data transmission nSCDERR, nREGERR, nDELAYERR, nAGSERR = 1, REGEND = 0 |
All current actions can be aborted using the BREAK command so that a defined state can be resumed if one of the sensors proves faulty, for example. BREAK= 1 aborts the active data transmission and all status information will be reset. |
|
| 6 |
"0"
|
HOLDBANK
|
| 0: |
no bank switching lock permitted |
| 1: |
bank switching lock permitted |
During the readout of more than one sensor data register by the controller it is possible that the RAM banks in the master could be swapped over once a sensor data transmission is completed. So that the controller only reads related values bit HOLDBANK should be set at the start of the readout and reset at the end; this suppresses the RAM swap. With the start of a new sensor data cycle previous values are then overwritten by the new sensor data. |
|
| 5 |
"0"
|
SWBANK
|
| 0: |
RAM banks are not switched |
| 1: |
RAM banks are switched |
|
| 4 |
"0"
|
INIT
|
| 0: |
no changes on the data channel |
| 1: |
initialize data channel |
|
| 3 - 1 |
"000"
|
INSTR
|
| 0b010 : |
CDM = 0 |
| 0b001 : |
CDM = 1 |
0b100, 0b110: register communication condition: CDMTIMEOUT = 1 0b111 : register communication(reduced protocol) condition: CDMTIMEOUT = 1 The transmission of sensor data can be triggered via INSTR. With INSTR=0b010 the ccle finishes with a CDM=0. With INSTR= 0b001 the cycle finishes with a CDM=1. A BiSS C register access to a slave can be operated by INSTR=0b100. A reduced protocol for a shorter BiSS C register access to a slave can be operated by INST=0b111. |
|
| 0 |
"0"
|
AGS
|
| AutoGetSens(Automatic Get Sensordata) |
| 0: |
no automatic data transmission |
| 1: |
- start of data transmission after TIMEOUTSENS |
condition: FREQAGS = AGSMIN - start of data transmission triggered by pin condition: FREQAGS = AGSINFINITE - start of data transmission after timeout With AGS = 0 the master starts the data transmission after finishing writing the instruction register(rising edge of NWR). A nAGSERR error will be generated if the SL line is low, TIMEOUTSENS has not exceeded. If an AGS bit has been set sensor data is read in cyclically according to the cycle frequency set in FREQAGS. |
|
| menc_config |
| Encoder configuration register |
|
R/W
|
0x00000000
|
Address : 0xff802300
|
Bits |
Reset value |
Name |
Description |
| 31 - 28 |
0
|
-
|
reserved |
| 27 - 25 |
"000"
|
mp1_filter_sample_rate
|
| Filter sample rate for mp1 signal: |
| 0: none - |
Filter is disabled. |
| 1: 10 ns - |
pulses < 10ns will be blocked, pulses > 20ns will pass. |
| 2: 20 ns - |
pulses < 20ns will be blocked, pulses > 40ns will pass. |
| 3: 50 ns - |
pulses < 50ns will be blocked, pulses > 100ns will pass. |
| 4: 100 ns - |
pulses < 100ns will be blocked, pulses > 200ns will pass. |
| 5: 200 ns - |
pulses < 200ns will be blocked, pulses > 400ns will pass. |
| 6: 500 ns - |
pulses < 500ns will be blocked, pulses > 1us will pass. |
| 7: 1 us - |
pulses < 1us will be blocked, pulses > 2us will pass. |
|
| 24 |
"0"
|
mp1_en
|
mp1 enable: 0: Disable interrupts based on mp1 signal. |
|
| 23 - 20 |
0
|
-
|
reserved |
| 19 - 17 |
"000"
|
mp0_filter_sample_rate
|
| Filter sample rate for mp0 signal: |
| 0: none - |
Filter is disabled. |
| 1: 10 ns - |
pulses < 10ns will be blocked, pulses > 20ns will pass. |
| 2: 20 ns - |
pulses < 20ns will be blocked, pulses > 40ns will pass. |
| 3: 50 ns - |
pulses < 50ns will be blocked, pulses > 100ns will pass. |
| 4: 100 ns - |
pulses < 100ns will be blocked, pulses > 200ns will pass. |
| 5: 200 ns - |
pulses < 200ns will be blocked, pulses > 400ns will pass. |
| 6: 500 ns - |
pulses < 500ns will be blocked, pulses > 1us will pass. |
| 7: 1 us - |
pulses < 1us will be blocked, pulses > 2us will pass. |
|
| 16 |
"0"
|
mp0_en
|
mp0 enable: 0: Disable interrupts based on mp0 signal. |
|
| 15 - 13 |
0
|
-
|
reserved |
| 12 |
"0"
|
enc1_count_dir
|
| Encoder1 count direction: |
|
| 11 - 9 |
"000"
|
enc1_filter_sample_rate
|
| Encoder1 filter sample rate: |
| 0: none - |
Filter is disabled. |
| 1: 10 ns - |
pulses < 10ns will be blocked, pulses > 20ns will pass. |
| 2: 20 ns - |
pulses < 20ns will be blocked, pulses > 40ns will pass. |
| 3: 50 ns - |
pulses < 50ns will be blocked, pulses > 100ns will pass. |
| 4: 100 ns - |
pulses < 100ns will be blocked, pulses > 200ns will pass. |
| 5: 200 ns - |
pulses < 200ns will be blocked, pulses > 400ns will pass. |
| 6: 500 ns - |
pulses < 500ns will be blocked, pulses > 1us will pass. |
| 7: 1 us - |
pulses < 1us will be blocked, pulses > 2us will pass. |
|
| 8 |
"0"
|
enc1_en
|
Encoder1 enable: 0: Disable interrupts based on encoder1 signals. |
|
| 7 - 5 |
0
|
-
|
reserved |
| 4 |
"0"
|
enc0_count_dir
|
| Encoder0 count direction: |
|
| 3 - 1 |
"000"
|
enc0_filter_sample_rate
|
| Encoder0 filter sample rate: |
| 0: none - |
Filter is disabled. |
| 1: 10 ns - |
pulses < 10ns will be blocked, pulses > 20ns will pass. |
| 2: 20 ns - |
pulses < 20ns will be blocked, pulses > 40ns will pass. |
| 3: 50 ns - |
pulses < 50ns will be blocked, pulses > 100ns will pass. |
| 4: 100 ns - |
pulses < 100ns will be blocked, pulses > 200ns will pass. |
| 5: 200 ns - |
pulses < 200ns will be blocked, pulses > 400ns will pass. |
| 6: 500 ns - |
pulses < 500ns will be blocked, pulses > 1us will pass. |
| 7: 1 us - |
pulses < 1us will be blocked, pulses > 2us will pass. |
|
| 0 |
"0"
|
enc0_en
|
Encoder0 enable: 0: Disable interrupts based on encoder0 signals. |
|
| menc_status |
Position and capture status: This register includes all raw IRQs and encoder direction. To reset an IRQ, write 1 to appropriate bit (except enc?_dir_ro). |
|
R/W
|
0x00000000
|
Address : 0xff802350
|
Bits |
Reset value |
Name |
Description |
| 31 - 26 |
0
|
-
|
reserved |
| 25 |
"0"
|
mp1
|
| Rising edge at Measurement Point 1 |
|
| 24 |
"0"
|
mp0
|
| Rising edge at Measurement Point 0 |
|
| 23 - 20 |
0
|
-
|
reserved |
| 19 |
"0"
|
cap3
|
|
| 18 |
"0"
|
cap2
|
|
| 17 |
"0"
|
cap1
|
|
| 16 |
"0"
|
cap0
|
|
| 15 |
-
|
enc1_dir_ro
|
| Encoder1 direction (read only) |
|
| 14 - 13 |
0
|
-
|
reserved |
| 12 |
"0"
|
enc1_n
|
| Rising edge at input enc1_n. |
|
| 11 |
"0"
|
enc1_phase_error
|
Phase error at encoder 1: Encoder inputs changed 2 phases in 1 cycle, which leads to unknown position. |
|
| 10 |
"0"
|
enc1_ovfl_neg
|
| Encoder1 overflow negative |
|
| 9 |
"0"
|
enc1_ovfl_pos
|
| Encoder1 overflow positive |
|
| 8 |
"0"
|
enc1_edge
|
| Edge at Encoder 1 occurred (rising or falling of enc1_a or enc1_b) |
|
| 7 |
-
|
enc0_dir_ro
|
| Encoder0 direction (read only) |
|
| 6 - 5 |
0
|
-
|
reserved |
| 4 |
"0"
|
enc0_n
|
| Rising edge at input enc0_n. |
|
| 3 |
"0"
|
enc0_phase_error
|
Phase error at encoder 0: Encoder inputs changed 2 phases in 1 cycle, which leads to unknown position. |
|
| 2 |
"0"
|
enc0_ovfl_neg
|
| Encoder0 overflow negative |
|
| 1 |
"0"
|
enc0_ovfl_pos
|
| Encoder0 overflow positive |
|
| 0 |
"0"
|
enc0_edge
|
| Edge at Encoder 0 occurred (rising or falling of enc0_a or enc0_b) |
|
| menc_irq_masked |
Masked IRQ register: Shows status of masked IRQs (as connected to ARM/xPIC). |
|
R
|
Address : 0xff802354
|
Bits |
Name |
Description |
| 31 - 26 |
-
|
reserved |
| 25 |
mp1
|
| Rising edge at Measurement Point 1 |
|
| 24 |
mp0
|
| Rising edge at Measurement Point 0 |
|
| 23 - 20 |
-
|
reserved |
| 19 |
cap3
|
|
| 18 |
cap2
|
|
| 17 |
cap1
|
|
| 16 |
cap0
|
|
| 15 - 13 |
-
|
reserved |
| 12 |
enc1_n
|
| Rising edge at input enc1_n. |
|
| 11 |
enc1_phase_error
|
Phase error at encoder 1: Encoder inputs changed 2 phases in 1 cycle, which leads to unknown position. |
|
| 10 |
enc1_ovfl_neg
|
| Encoder1 overflow negative |
|
| 9 |
enc1_ovfl_pos
|
| Encoder1 overflow positive |
|
| 8 |
enc1_edge
|
| Edge at Encoder 1 occurred (rising or falling of enc1_a or enc1_b) |
|
| 7 - 5 |
-
|
reserved |
| 4 |
enc0_n
|
| Rising edge at input enc0_n. |
|
| 3 |
enc0_phase_error
|
Phase error at encoder 0: Encoder inputs changed 2 phases in 1 cycle, which leads to unknown position. |
|
| 2 |
enc0_ovfl_neg
|
| Encoder0 overflow negative |
|
| 1 |
enc0_ovfl_pos
|
| Encoder0 overflow positive |
|
| 0 |
enc0_edge
|
| Edge at Encoder 0 occurred (rising or falling of enc0_a or enc0_b) |
|
| menc_irq_msk_set |
IRQ mask enable: The IRQ mask enables interrupt requests for corresponding interrupt sources. As its bits might be changed by different software tasks, the IRQ mask register is not writable directly, but by set and reset masks: Write access with '1' sets interrupt mask bit. Write access with '0' does not influence this bit. Read access shows actual interrupt mask. Attention: Before activating interrupt mask, delete old pending interrupts by writing the same value to adr_menc_status |
|
R/W
|
0x00000000
|
Address : 0xff802358
|
Bits |
Reset value |
Name |
Description |
| 31 - 26 |
0
|
-
|
reserved |
| 25 |
"0"
|
mp1
|
| Rising edge at Measurement Point 1 |
|
| 24 |
"0"
|
mp0
|
| Rising edge at Measurement Point 0 |
|
| 23 - 20 |
0
|
-
|
reserved |
| 19 |
"0"
|
cap3
|
|
| 18 |
"0"
|
cap2
|
|
| 17 |
"0"
|
cap1
|
|
| 16 |
"0"
|
cap0
|
|
| 15 - 13 |
0
|
-
|
reserved |
| 12 |
"0"
|
enc1_n
|
| Rising edge at input enc1_n. |
|
| 11 |
"0"
|
enc1_phase_error
|
Phase error at encoder 1: Encoder inputs changed 2 phases in 1 cycle, which leads to unknown position. |
|
| 10 |
"0"
|
enc1_ovfl_neg
|
| Encoder1 overflow negative |
|
| 9 |
"0"
|
enc1_ovfl_pos
|
| Encoder1 overflow positive |
|
| 8 |
"0"
|
enc1_edge
|
| Edge at Encoder 1 occurred (rising or falling of enc1_a or enc1_b) |
|
| 7 - 5 |
0
|
-
|
reserved |
| 4 |
"0"
|
enc0_n
|
| Rising edge at input enc0_n. |
|
| 3 |
"0"
|
enc0_phase_error
|
Phase error at encoder 0: Encoder inputs changed 2 phases in 1 cycle, which leads to unknown position. |
|
| 2 |
"0"
|
enc0_ovfl_neg
|
| Encoder0 overflow negative |
|
| 1 |
"0"
|
enc0_ovfl_pos
|
| Encoder0 overflow positive |
|
| 0 |
"0"
|
enc0_edge
|
| Edge at Encoder 0 occurred (rising or falling of enc0_a or enc0_b) |
|
| menc_irq_msk_reset |
IRQ mask disable: This is the corresponding reset mask to disable interrupt requests for corresponding interrupt sources: Write access with '1' resets interrupt mask bit. Write access with '0' does not influence this bit. Read access shows actual interrupt mask. |
|
R/W
|
0x00000000
|
Address : 0xff80235c
|
Bits |
Reset value |
Name |
Description |
| 31 - 26 |
0
|
-
|
reserved |
| 25 |
"0"
|
mp1
|
| Rising edge at Measurement Point 1 |
|
| 24 |
"0"
|
mp0
|
| Rising edge at Measurement Point 0 |
|
| 23 - 20 |
0
|
-
|
reserved |
| 19 |
"0"
|
cap3
|
|
| 18 |
"0"
|
cap2
|
|
| 17 |
"0"
|
cap1
|
|
| 16 |
"0"
|
cap0
|
|
| 15 - 13 |
0
|
-
|
reserved |
| 12 |
"0"
|
enc1_n
|
| Rising edge at input enc1_n. |
|
| 11 |
"0"
|
enc1_phase_error
|
Phase error at encoder 1: Encoder inputs changed 2 phases in 1 cycle, which leads to unknown position. |
|
| 10 |
"0"
|
enc1_ovfl_neg
|
| Encoder1 overflow negative |
|
| 9 |
"0"
|
enc1_ovfl_pos
|
| Encoder1 overflow positive |
|
| 8 |
"0"
|
enc1_edge
|
| Edge at Encoder 1 occurred (rising or falling of enc1_a or enc1_b) |
|
| 7 - 5 |
0
|
-
|
reserved |
| 4 |
"0"
|
enc0_n
|
| Rising edge at input enc0_n. |
|
| 3 |
"0"
|
enc0_phase_error
|
Phase error at encoder 0: Encoder inputs changed 2 phases in 1 cycle, which leads to unknown position. |
|
| 2 |
"0"
|
enc0_ovfl_neg
|
| Encoder0 overflow negative |
|
| 1 |
"0"
|
enc0_ovfl_pos
|
| Encoder0 overflow positive |
|
| 0 |
"0"
|
enc0_edge
|
| Edge at Encoder 0 occurred (rising or falling of enc0_a or enc0_b) |
|
| mpwm_cfg |
Config register: General config bits for the MPWM module. |
|
R/W
|
0x00000800
|
Address : 0xff802400
|
Bits |
Reset value |
Name |
Description |
| 31 - 24 |
0
|
-
|
reserved |
| 23 - 16 |
"00000000"
|
eci_fil_thresh
|
ECI filter threshold: Threshold value for the error condition input integral filter. |
|
| 15 - 11 |
"00001"
|
evt_cnt_top
|
evt_cnt_top Used to specify the maximum value of EVT_CNT. When EVT_CNT is zero and a begin of period )BOP) event occurs, an event counter zero (ECZ) event is emitted and EVT_CNT is reset to evt_cnt_top. If an begin of period event occurs and EVT_CNT is not zero, EVT_CNT is decremented. This mechanism can be used as an event prescaler to reduce the number of period interrupts from the MPWM module. Examples: If evt_cnt_top is zero, ECZ events and BOP events will coincide. If evt_cnt_top is one, ECZ events will appear every other period (half the frequency of BOP events). If evt_cnt_top is two, ECZ events will appear every third period (one third the frequency of BOP events). |
|
| 10 |
"0"
|
sce_src_mop
|
sce_src_mop 1=emit shadow copy event on middle of PWM period bit |
|
| 9 |
"0"
|
sce_src_bop
|
sce_src_bop 1=emit shadow copy event on beginning of PWM period |
|
| 8 |
"0"
|
sce_src_ecz
|
sce_src_ecz 1=emit shadow copy event when event counter reaches zero |
|
| 7 |
"0"
|
eci_ks_en
|
eci_ks_en Set 1 to enable synchronous error condition input (eci) kill switch. The synchronous eci kill switch is a flip flop that is set once eci is active. The eci kill switch can only be reset through MPWM_ECI_CMD. When the eci kill switch is set, all PWM module outputs are disabled. |
|
| 6 |
"0"
|
eci_gate_en
|
eci_gate_en Set 1 to gate all pwm outputs with the integral filtered error control input. This means that the outputs will be disabled asynchronously whenever eci is active. |
|
| 5 |
"0"
|
eci_inv
|
eci_inv This bit controls the polarity of the error condition input (eci). Set 0 for active high eci, 1 for active low eci. |
|
| 4 |
"0"
|
sync_in_pol
|
| Polarity of sync signal from trigger_latch unit |
| 0: |
Sync on rising edge |
| 1: |
Sync on falling edge |
|
| 3 |
"0"
|
sync_in_restart
|
| Restart at sync signal from trigger_latch unit |
| 0: |
Restart counter only by restart command. |
| 1: |
Restart counter at sync signal or by restart command. |
|
| 2 |
"0"
|
cnt_en_rs
|
cnt_en_rs When this bit is one and sync_in is active, save the value of MPWM_CNT to the MPWM_CNT_RS (rs = read sync) register. |
|
| 1 - 0 |
"00"
|
cnt_mode
|
| 00: |
sawtooth |
| 01: |
triangle |
| 10: |
inv sawtooth |
| 11: |
inv triangle |
|
| mpwm_ocfg |
Output section config register: Output select, enable, invert and edge detect values. |
|
R/W
|
0x00000000
|
Address : 0xff802410
|
Bits |
Reset value |
Name |
Description |
| 31 |
0
|
-
|
reserved |
| 30 |
"0"
|
oedpol5
|
| Channel 5 edge detector polarity (0 = detect positive edge, 1 = detect negative edge) |
|
| 29 |
"0"
|
oedpol4
|
| Channel 4 edge detector polarity |
|
| 28 |
"0"
|
oedpol3
|
| Channel 3 edge detector polarity |
|
| 27 |
"0"
|
oedpol2
|
| Channel 2 edge detector polarity |
|
| 26 |
"0"
|
oedpol1
|
| Channel 1 edge detector polarity |
|
| 25 |
"0"
|
oedpol0
|
| Channel 0 edge detector polarity |
|
| 24 |
"0"
|
oeden5
|
| Channel 5 edge detector enable |
|
| 23 |
"0"
|
oeden4
|
| Channel 4 edge detector enable |
|
| 22 |
"0"
|
oeden3
|
| Channel 3 edge detector enable |
|
| 21 |
"0"
|
oeden2
|
| Channel 2 edge detector enable |
|
| 20 |
"0"
|
oeden1
|
| Channel 1 edge detector enable |
|
| 19 |
"0"
|
oeden0
|
| Channel 0 edge detector enable |
|
| 18 |
"0"
|
oinv5
|
|
| 17 |
"0"
|
oinv4
|
|
| 16 |
"0"
|
oinv3
|
|
| 15 |
"0"
|
oinv2
|
|
| 14 |
"0"
|
oinv1
|
|
| 13 |
"0"
|
oinv0
|
| Output 0 invert (see output section diagram) |
|
| 12 |
"0"
|
oe5
|
|
| 11 |
"0"
|
oe4
|
|
| 10 |
"0"
|
oe3
|
|
| 9 |
"0"
|
oe2
|
|
| 8 |
"0"
|
oe1
|
|
| 7 |
"0"
|
oe0
|
| Output 0 enable (see output section diagram) |
|
| 6 |
0
|
-
|
reserved |
| 5 |
"0"
|
osel5
|
| 0: |
compare channel 5 direct PWM output |
| 1: |
dead time generator channel 2 LS |
|
| 4 |
"0"
|
osel4
|
| 0: |
compare channel 4 direct PWM output |
| 1: |
dead time generator channel 2 HS |
|
| 3 |
"0"
|
osel3
|
| 0: |
compare channel 3 direct PWM output |
| 1: |
dead time generator channel 1 LS |
|
| 2 |
"0"
|
osel2
|
| 0: |
compare channel 2 direct PWM output |
| 1: |
dead time generator channel 1 HS |
|
| 1 |
"0"
|
osel1
|
| 0: |
compare channel 1 direct PWM output |
| 1: |
dead time generator channel 0 LS |
|
| 0 |
"0"
|
osel0
|
| 0: |
compare channel 0 direct PWM output |
| 1: |
dead time generator channel 0 HS |
|
| xpic_hold_pc |
|
R/W
|
0x00000001
|
Address : 0xff884080
|
Bits |
Reset value |
Name |
Description |
| 31 - 8 |
0
|
-
|
reserved |
| 7 |
"0"
|
reset_xpic
|
| REQUEST reset all internal internal states and the pipeline |
| EXCEPT: |
the internal register (r0-r7, usr0-4), bank0 and bank1 reset this registers manually |
| EXCEPT: |
xpic hard_breaker/debug registers |
|
| 6 |
"0"
|
bank_control
|
control over the register bank selection WARNING: reset this BIT to 0 BEFORE start xPIC (clear hold bits) |
|
| 5 |
"0"
|
bank_select
|
Select register bank (0: default bank, 1: fiq bank) Access registers in xpic_regs area (xpic_r0 .. xpic_r7, xpic_stat) |
|
| 4 |
"0"
|
misalignment_hold
|
| 0: |
xPIC triggers misalignment_irq on misaligned memory accesses but does not stop. |
| 1: |
xPIC stops after a misaligned memory accesses and triggers misalignment_irq. Write '1' into xpic_break_irq_raw.misalignment_irq to continue. |
|
| 3 |
"0"
|
disable_int
|
|
| 2 |
"0"
|
monitor_mode
|
| 0: |
xPIC stops when hardware breakpoint is triggered. Write '1' into xpic_break_irq_raw.break0_irq or break1_irq to continue. |
| 1: |
Hardware breakpoints still generate irqs but do not stop the xPIC. |
|
| 1 |
"0"
|
single_step
|
| 0: |
Disable single step mode |
| 1: |
xPIC processes a single pipeline step then stops and triggers the single_step_irq. Write '1' into xpic_break_irq_raw.single_step_irq to continue. |
|
| 0 |
"1"
|
hold
|
| 0: |
Start xPIC |
| 1: |
Hold xPIC |
|
| xpic_break_status |
| Read access shows the reason why xPIC is in HOLD / BREAK |
|
R
|
Address : 0xff8840b8
|
Bits |
Name |
Description |
| 31 - 10 |
-
|
reserved |
| 9 |
xpic_reset_status
|
| 1 = XPIC ist in Reset(read only) |
|
| 8 |
break1_read_data
|
| Breakpoint 1 last load access (read only) |
|
| 7 |
break0_read_data
|
| Breakpoint 0 last load access (read only) |
|
| 6 |
data_misalignment
|
| Data Misaligment is active(read only) |
|
| 5 |
single_step
|
| Single Step Break is active(read only) |
|
| 4 |
soft_break
|
| Software Break is active(read only) |
|
| 3 |
break1
|
| Breakpoint 1 is active(read only) |
|
| 2 |
break0
|
| Breakpoint 0 is active(read only) |
|
| 1 |
hold
|
| global HOLD BIT status 0- start xPIC, 1- hold xPIC (read only) |
|
| 0 |
xpic_in_hold
|
| xPIC is in Break or Hold (read only) |
|
| xlink_cfg |
|
R/W
|
0xb4a0001b
|
Address@xlink0 : 0xff900400
Address@xlink1 : 0xff900410
Address@xlink2 : 0xff900420
Address@xlink3 : 0xff900430
Address@xlink4 : 0xff900440
Address@xlink5 : 0xff900450
Address@xlink6 : 0xff900460
Address@xlink7 : 0xff900470
|
Bits |
Reset value |
Name |
Description |
| 31 - 28 |
"1011"
|
end_spl
|
| end sample point for receive data |
|
| 27 - 24 |
"0100"
|
start_spl
|
start sample point for receive data a sample period is defined as 1/16 of the bitrate period range: 0x0 - 0xf note: settings for start_spl and end_spl should always fulfill the condition: (start_spl < end_spl) |
|
| 23 - 20 |
"1010"
|
bits2rec
|
count of bits to receive note: the reset value expect: 1stopbit, 8databits, 1paritybit and 1stopbit |
|
| 19 |
"0"
|
cnt_da
|
| test feature, do not set this bit! |
|
| 18 |
"0"
|
bclk2oe_en
|
| test feature, do not set this bit! |
|
| 17 |
"0"
|
fb_en
|
| test feature, enable internal feedback |
|
| 16 |
"0"
|
xlink_en
|
| disable the output enable, and activity |
|
| 15 - 0 |
0x1b
|
rate_inc
|
bitrate compare value for bit clock counter (bit_cnt) BITRATE = 100e6/(rate_inc) typical settings for IOLINK: |
| BIT_RATE |
rate_inc |
clock period |
calc: 1/BIT_RATE |
| 4800 |
0x5160 |
208,33 us |
208,3333us |
| 38400 |
0xa2b |
26,04 us |
26,04167us |
| 230400 |
0x1b1 |
4,34 us |
4,340278us |
| ... |
|
|
|
| invalid: |
|
|
|
| 0 |
0 |
0 |
0 |
|