deep

a Cross Development Platform for Java

User Tools

Site Tools


runtime_library:drivers:start

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
runtime_library:drivers:start [2016/02/25 13:33] – external edit 127.0.0.1runtime_library:drivers:start [2023/03/23 09:50] (current) – [Zynq7000] ursgraf
Line 1: Line 1:
 ====== Device Drivers ====== ====== Device Drivers ======
-Currently we support the mpc555 and mpc5200 PowerPC processors. They differ in their core features as well as in their built-in peripherals. Both are rich in built-in peripheral modules. In order to facilitate the use of those modules the runtime system offers a lot of software drivers. In the following sections there are short descriptions of drivers available. Details about a specific driver and its use can be found [[http://api.deepjava.org/runtime-library/|API of the Runtime Library]].+Currently we support the mpc555 and mpc5200 PowerPC processors as well as the Zynq7000 ARM processor. They differ in their core features as well as in their built-in peripherals. Both are rich in built-in peripheral modules. In order to facilitate the use of those modules the runtime system offers a lot of software drivers. In the following sections there are short descriptions of drivers available. Details about a specific driver and its use can be found [[http://api.deepjava.org/runtime-library/|API of the Runtime Library]].
  
 +===== Zynq7000 =====
 +There are many device drivers for the internal hardware of the Zynq7000 processor and external hardware connected to it. When designing external electronics for the Zynq7000 processor and notably for the [[https://wiki.bu.ost.ch/infoportal/embedded_systems/zynq7000/microzed|Microzed]] board, please refer to [[https://wiki.bu.ost.ch/infoportal/embedded_systems/zynq7000/carrier|Carrier Card Design]] for help.
 +
 +==== flink Devices ====
 +The Zynq7000 incorporates a configurable programmable logic (PL) block, which is an FPGA. We support the configuration of the PL with [[https://flink-project.ch/]]. flink offers useful blocks for 
 +  * GPIO (general purpose input / output)
 +  * PWM generation (pulse width modulation)
 +  * Counter (e.g. for fast quadrature decoding for encoder signals)
 +  * PPWA measurement (period and pulse width measurement)
 +  * DAC (digital to analog converter)
 +  * ADC (analog to digital converter)
 +  * UART
 +  * Watchdog  
 +See [[https://api.deepjava.org/runtime-library/org/deepjava/flink/subdevices/package-summary.html]] for further details of using these components. The FPGA itself is a // flink device// while the blocks within are denoted as //flink subdevices//
 +
 +flink is very powerful in that a specific configuration can be prepared with a set of subdevices while each subdevice can have a configurable number of channels. These channels can be mapped on any of the available MIO-pins of the Zynq7000. This offers unique flexibility.
 +
 +==== Universal Asynchronous Receiver/Transmitter (UART, RS232) ====
 +The Zynq7000 offers two independent UART interfaces. The UART0 is available on MIO14 (RX) and MIO15 (TX) with TTL levels. UART1 is routed to an FTDI-Chip and available on the USB connector on J2. 
 +<code java>
 +  // 1) Initialize UART1 (115200 Baudrate, 8N1)
 +  UART uart = UART.getInstance(UART.pUART1);
 +  uart.start(115200, (short)0, (short)8);
 +  // 2) Use UART1 for stdout
 +  System.out = new PrintStream(uart.out);
 +  // 3) Redirect stderr to stdout (optional)
 +  System.err = System.out;
 +</code>
 +We offer a dedicated driver ''RN131'' for WLAN Roving RN-131C WiFly module which directly connects to one of the UART. \\
 +More UARTs are available as flink devices, see above.
 +
 +==== XADC ====
 +The Zynq7000 processor incorporates an ADC (XADC). When measuring unipolar analog input signals, the differential analog inputs (VP and VN) have an input range of 0V to 1.0V. The voltage on VP (measured with respect to VN) must always be positive. VN is typically connected to a local ground. Because the differential input range is from 0V to 1.0V (VP to VN), the maximum signal on VP is 1.0V. 
 +
 +==== Support for In-House Hardware ====
 +Several dedicated drivers exist for in-house hardware like our control board (''RTBoard'').
 ===== mpc555 ===== ===== mpc555 =====
 ==== Digital I/O’s ==== ==== Digital I/O’s ====
Line 48: Line 84:
 The mpc555 offers to indepedent CAN controllers. On the headerboard the necessary physical driver is already included (but no 120Ω termination resistor). An basic driver for CAN and CANopen exists. Please ask for assistance. The mpc555 offers to indepedent CAN controllers. On the headerboard the necessary physical driver is already included (but no 120Ω termination resistor). An basic driver for CAN and CANopen exists. Please ask for assistance.
    
-==== Support for NTB Hardware ====+==== Support for In-House Hardware ====
 Several dedicated drivers exist for in-house hardware like our control board (''RTBoard'') or our two-wheel robot (''Robi2''). Several dedicated drivers exist for in-house hardware like our control board (''RTBoard'') or our two-wheel robot (''Robi2'').
  
runtime_library/drivers/start.1456403585.txt.gz · Last modified: 2016/02/25 13:33 by 127.0.0.1