<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://dsignt.de/support-wiki/index.php?action=history&amp;feed=atom&amp;title=Cascading_two_ADDA16_boards</id>
	<title>Cascading two ADDA16 boards - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://dsignt.de/support-wiki/index.php?action=history&amp;feed=atom&amp;title=Cascading_two_ADDA16_boards"/>
	<link rel="alternate" type="text/html" href="https://dsignt.de/support-wiki/index.php?title=Cascading_two_ADDA16_boards&amp;action=history"/>
	<updated>2026-08-14T20:35:50Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.8</generator>
	<entry>
		<id>https://dsignt.de/support-wiki/index.php?title=Cascading_two_ADDA16_boards&amp;diff=486&amp;oldid=prev</id>
		<title>Adolf at 09:10, 4 July 2011</title>
		<link rel="alternate" type="text/html" href="https://dsignt.de/support-wiki/index.php?title=Cascading_two_ADDA16_boards&amp;diff=486&amp;oldid=prev"/>
		<updated>2011-07-04T09:10:29Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 11:10, 4 July 2011&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{table&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|reporter=&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|hardware={{Product|D.Module.ADDA16}} &lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|software=&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|description=using two ADDA16 boards in an 8-channel system&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|status={{status_yes|closed}}&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|solution={{solution_yes|yes}}&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;}}&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===Problem===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===Problem===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Cascading two ADDA16 boards for an 8-channel data acquisition system&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Cascading two ADDA16 boards for an 8-channel data acquisition system&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Adolf</name></author>
	</entry>
	<entry>
		<id>https://dsignt.de/support-wiki/index.php?title=Cascading_two_ADDA16_boards&amp;diff=485&amp;oldid=prev</id>
		<title>WikiImporter: Pushed from DSignT Issue Database.</title>
		<link rel="alternate" type="text/html" href="https://dsignt.de/support-wiki/index.php?title=Cascading_two_ADDA16_boards&amp;diff=485&amp;oldid=prev"/>
		<updated>2011-07-04T09:07:02Z</updated>

		<summary type="html">&lt;p&gt;Pushed from DSignT Issue Database.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{table&lt;br /&gt;
|reporter=&lt;br /&gt;
|hardware={{Product|D.Module.ADDA16}} &lt;br /&gt;
|software=&lt;br /&gt;
|description=using two ADDA16 boards in an 8-channel system&lt;br /&gt;
|status={{status_yes|closed}}&lt;br /&gt;
|solution={{solution_yes|yes}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Problem===&lt;br /&gt;
Cascading two ADDA16 boards for an 8-channel data acquisition system&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Solution===&lt;br /&gt;
1. Both boards need to be configured to different I/O addresses. Leave the first board in the default factory setting and close jumper JPA4 on the second board.&lt;br /&gt;
&lt;br /&gt;
2. The default header file adda16.h does not provide macros for a dual configuration. Create a new header file adda16_dual.h for use in your project:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
#define ADDA16_1_OFFSET   0x000000   &lt;br /&gt;
#define ADDA16_2_OFFSET   0x000040   &lt;br /&gt;
&lt;br /&gt;
#define ADDA16_1_BASE     (IOSEL_BASE + ADDA16_1_OFFSET)&lt;br /&gt;
#define ADDA16_2_BASE     (IOSEL_BASE + ADDA16_2_OFFSET)&lt;br /&gt;
&lt;br /&gt;
typedef struct&lt;br /&gt;
{&lt;br /&gt;
    volatile short rsvd0;&lt;br /&gt;
    volatile short ch0;&lt;br /&gt;
    volatile short rsvd1;&lt;br /&gt;
    volatile short ch1;&lt;br /&gt;
    volatile short rsvd2;&lt;br /&gt;
    volatile short ch2;&lt;br /&gt;
    volatile short rsvd3;&lt;br /&gt;
    volatile short ch3;&lt;br /&gt;
    volatile short rsvd4;&lt;br /&gt;
    volatile unsigned short fs;&lt;br /&gt;
    volatile short rsvd5;&lt;br /&gt;
    volatile unsigned short cfg;&lt;br /&gt;
} adda16_type;&lt;br /&gt;
&lt;br /&gt;
#define ADDA16_1 ((adda16_type *) ((unsigned int *)ADDA16_1_BASE))&lt;br /&gt;
#define ADDA16_2 ((adda16_type *) ((unsigned int *)ADDA16_2_BASE))&lt;br /&gt;
&lt;br /&gt;
/***********************************************************************&lt;br /&gt;
  Macros to read ADC and write DAC:&lt;br /&gt;
***********************************************************************/&lt;br /&gt;
#define ADDA16_1_READ_ADC(ch)       (*(volatile short*)(ADDA16_1_BASE+2+(ch&amp;lt;&amp;lt;2)))&lt;br /&gt;
#define ADDA16_1_WRITE_DAC(ch,val)  (*(volatile short*)(ADDA16_1_BASE+2+(ch&amp;lt;&amp;lt;2)) = val)&lt;br /&gt;
#define ADDA16_2_READ_ADC(ch)       (*(volatile short*)(ADDA16_2_BASE+2+(ch&amp;lt;&amp;lt;2)))&lt;br /&gt;
#define ADDA16_2_WRITE_DAC(ch,val)  (*(volatile short*)(ADDA16_2_BASE+2+(ch&amp;lt;&amp;lt;2)) = val)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
the remainder of the header file is identical to adda16.h:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
/***********************************************************************&lt;br /&gt;
&lt;br /&gt;
  ADDA16 Sampling Frequency Register&lt;br /&gt;
&lt;br /&gt;
***********************************************************************/&lt;br /&gt;
/* common sampling frequencies */&lt;br /&gt;
#define ADDA16_FS250    0x000F&lt;br /&gt;
#define ADDA16_FS200    0x0013&lt;br /&gt;
#define ADDA16_FS160    0x0018&lt;br /&gt;
#define ADDA16_FS120    0x001F&lt;br /&gt;
#define ADDA16_FS100    0x0027&lt;br /&gt;
#define ADDA16_FS80     0x0031&lt;br /&gt;
#define ADDA16_FS67     0x003B&lt;br /&gt;
#define ADDA16_FS50     0x004F&lt;br /&gt;
#define ADDA16_FS33     0x0077&lt;br /&gt;
#define ADDA16_FS25     0x009F&lt;br /&gt;
#define ADDA16_FS20     0x00C7&lt;br /&gt;
#define ADDA16_FS16     0x00F9&lt;br /&gt;
#define ADDA16_FSEXT    0x0000&lt;br /&gt;
&lt;br /&gt;
/* this macro can be used for any integer sampling frequency from 15625 Hz to 250 kHz */&lt;br /&gt;
#define ADDA16_FS(x)    ((4000000/(int)x)-1)&lt;br /&gt;
&lt;br /&gt;
/***********************************************************************&lt;br /&gt;
&lt;br /&gt;
  ADDA16 Configuration Register&lt;br /&gt;
&lt;br /&gt;
***********************************************************************/&lt;br /&gt;
#define ADDA16_DAC_READY 0x0080  /* read : DAC ready for new transfer */&lt;br /&gt;
#define ADDA16_EXTCLK_ON 0x0080  /* write: turn on EXTCLK output */&lt;br /&gt;
&lt;br /&gt;
#define ADDA16_INT1DAC   0x0040  /* map DAC to nINT1 */&lt;br /&gt;
#define ADDA16_INT1ADC   0x0020  /* map ADC to nINT1 */&lt;br /&gt;
#define ADDA16_INT1FS    0x0060  /* map sampling frequency to nINT1 */&lt;br /&gt;
#define ADDA16_INT0DAC   0x0010  /* map DAC to nINT0 */&lt;br /&gt;
#define ADDA16_INT0ADC   0x0008  /* map ADC to nINT0 */&lt;br /&gt;
#define ADDA16_INT0FS    0x0018  /* map sampling frequency to nINT0 */&lt;br /&gt;
&lt;br /&gt;
#define ADDA16_LDAC_ANY  0x0000  /* update DACs after any DAC write */&lt;br /&gt;
#define ADDA16_LDAC_2    0x0001  /* update DACs after writing to DAC 2 */&lt;br /&gt;
#define ADDA16_LDAC_3    0x0002  /* update DACs after writing to DAC 3 */&lt;br /&gt;
#define ADDA16_LDAC_4    0x0003  /* update DACs after writing to DAC 4 */&lt;br /&gt;
#define ADDA16_LDAC_FS   0x0004  /* use ADC sampling frequency to update DACs */&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. The ADDA16 is shipped with some spare D.Module connectors. Press two of these connector pins into locations C22 and C23 on both ADDA16 boards.&lt;br /&gt;
&lt;br /&gt;
4. To use internal sampling clock configure the first board to generate the sampling clock and enable its EXTCLK_OUT output. The second board is configured to external sampling clock. To feed the clock output from board1 to the input of board2 connects pins C22 to pin C23:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
   ADDA16_1-&amp;gt;fs  = ADDA16_FS(125000);&lt;br /&gt;
   ADDA16_1-&amp;gt;cfg = (ADDA16_INT0ADC | ADDA16_EXTCLK_ON | ADDA16_LDAC_FS);&lt;br /&gt;
   ADDA16_2-&amp;gt;fs  = ADDA16_FSEXT;&lt;br /&gt;
   ADDA16_2-&amp;gt;cfg = ADDA16_LDAC_FS;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5. to use an external sampling clock for both boards, feed this clock to EXTCLK_IN (C22) of both boards. The solftware configuration is:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
   ADDA16_1-&amp;gt;fs  = ADDA16_FSEXT;&lt;br /&gt;
   ADDA16_1-&amp;gt;cfg = (ADDA16_INT0ADC | ADDA16_LDAC_FS);&lt;br /&gt;
   ADDA16_2-&amp;gt;fs  = ADDA16_FSEXT;&lt;br /&gt;
   ADDA16_2-&amp;gt;cfg = ADDA16_LDAC_FS;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[category:D.Module.ADDA16]]&lt;/div&gt;</summary>
		<author><name>WikiImporter</name></author>
	</entry>
</feed>