<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de-AT">
	<id>http://scherer3002.duckdns.org/wiki/index.php?action=history&amp;feed=atom&amp;title=PuProject_NOS032</id>
	<title>PuProject NOS032 - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="http://scherer3002.duckdns.org/wiki/index.php?action=history&amp;feed=atom&amp;title=PuProject_NOS032"/>
	<link rel="alternate" type="text/html" href="http://scherer3002.duckdns.org/wiki/index.php?title=PuProject_NOS032&amp;action=history"/>
	<updated>2026-07-19T12:18:52Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in PUCONwiki</subtitle>
	<generator>MediaWiki 1.39.3</generator>
	<entry>
		<id>http://scherer3002.duckdns.org/wiki/index.php?title=PuProject_NOS032&amp;diff=1508&amp;oldid=prev</id>
		<title>Wolfgang: Die Seite wurde neu angelegt: „NOS032 is a programmable hardware toolkit to build a number of applications to show sort of vector graphics on an oscilloscope screen.  The initial implementat…“</title>
		<link rel="alternate" type="text/html" href="http://scherer3002.duckdns.org/wiki/index.php?title=PuProject_NOS032&amp;diff=1508&amp;oldid=prev"/>
		<updated>2016-03-28T09:39:54Z</updated>

		<summary type="html">&lt;p&gt;Die Seite wurde neu angelegt: „NOS032 is a programmable hardware toolkit to build a number of applications to show sort of vector graphics on an oscilloscope screen.  The initial implementat…“&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;NOS032 is a programmable hardware toolkit to build a number of applications to show sort of vector graphics on an oscilloscope screen.&lt;br /&gt;
&lt;br /&gt;
The initial implementation of NOS032 is on the [[Altium NanoBoard 3000]].&lt;br /&gt;
&lt;br /&gt;
The vector graphics are produced by setting the oscilloscope to X-Y mode and feeding it X- and Y-voltages from channels 0 and 1 of the NanoBoard&amp;#039;s 4-channel DAC.&lt;br /&gt;
&lt;br /&gt;
== Building Blocks of NOS032 ==&lt;br /&gt;
&lt;br /&gt;
=== SPIA - SPI DAC controller ===&lt;br /&gt;
&lt;br /&gt;
SPIA has 3 signals at the input:&lt;br /&gt;
&lt;br /&gt;
* 16-bit-data bus DAC&lt;br /&gt;
* a LOAD signal input to load the 16-bit data value to be sent to the DAC&lt;br /&gt;
* a BUSY signal output where SPIA shows it&amp;#039;s busy outputting data and cannot accept new data&lt;br /&gt;
&lt;br /&gt;
=== MPE - Memory Player Engine ===&lt;br /&gt;
&lt;br /&gt;
Die MemoryPlayerEngine - MPE - ist ein Logik-Baustein, der numerische Werte als Bytes mit Wertebereich 0..255 aus dem Wishbone-Speicher ausliest und als analoge Spannungen auf dem nachgeschalteten SPI-DAC im Wertebereich 0..3,3V des {{NanoBoard3000}} ausgibt.&lt;br /&gt;
&lt;br /&gt;
Alle 20 us wird ein neues 2x8-bit Wertepaar ausgelesen und die Spannungen ausgegeben.&lt;br /&gt;
&lt;br /&gt;
Die MPE wird über eine Controller-Schnittstelle mit 16 (nicht alle verwendet) 32-bit-Registern gesteuert.&lt;br /&gt;
&lt;br /&gt;
Die MPE kann in 2 Modi arbeiten:&lt;br /&gt;
&lt;br /&gt;
# MODE 0 - Single-Buffer-Mode:&lt;br /&gt;
## Es wird ein Memory Buffer ausgegegeben. Dieser liegt zwischen ADRLOW (Regster 1) und ADRHIGH (Register 2)&lt;br /&gt;
## Solange RUN (Register 15, Bit 31) aktiv ist, wird immer wieder bei ADRLOW begonnen und immer 2 Byte auf die 8-bit-DAC-Kanäle 0 und 1 in einem Raster von 20 us ausgegeben. Wird ADRHIGH erreicht, so wird wieder bei ADRLOW begonnen&lt;br /&gt;
## Das Auslesen des Speichers geschieht in 32-bit-Longwords, es wird daher angenommen, dass auch ganzzahliges Vielfaches von 32 bit, d.h. 2x16-bit-Worten, d.h. jeweils 2 Samples im Speicher abgelegt wurde. Der Controller, der die auszugebenden Werte in den Speicher schreibt, muss daher ein ganzzahliges Vielfaches von 2 Samples in den Speicher schreiben, damit nicht un-initialisierter Speicher ausgelesen wird und zu Stör-Werten der ausgegebenen Spannungen führt&lt;br /&gt;
&lt;br /&gt;
# MODE 1 - Descriptor Buffer Mode:&lt;br /&gt;
## DESCBASE (Register 3) zeigt auf einen Descriptor-Pointer-Block – DPB - (im Speicher)&lt;br /&gt;
## Der DPB ist eine Liste von Adressen (0=Ende) von Descriptoren – DSC&lt;br /&gt;
## Ein DSC beinhaltet:&lt;br /&gt;
### 32-bit ADRLOW&lt;br /&gt;
### 32-bit ADRHIGH&lt;br /&gt;
## Ein DSC beschreibt daher einen Speicherbereich, der wie im Mode 1 abgearbeitet wird&lt;br /&gt;
## Ist ein Speicherbereich abgearbeitet, wird der nächste Descriptor herangezogen&lt;br /&gt;
## Ist ein Descriptor Pointer = 0, so wird wieder von vorne begonnen, es wird wieder DESCBASE ausgelesen, um zum Anfang des DPB zu gehen&lt;br /&gt;
## Der Controller kann DESCBASE jederzeit auf einen anderen Wert setzen, die MPE wird nach der Abarbeitung des aktuellen DPB zum neuen übergehen&lt;/div&gt;</summary>
		<author><name>Wolfgang</name></author>
	</entry>
</feed>