|
CS3310PP [Attenuator] [Att-CS3310 Plugins]Control the cs3310 attenuator via the Linux ppdev parallel-port device driver.
Make sure that you have read and write permissions on /dev/parport0! Either do a "chmod a+rw /dev/parport0" manually, place it in rc.local (bad) or make yourself member of the group /dev/parport0 belongs to using vigr (better) or check /etc/udev/rules.d and /etc/security/console.perms (best). /etc/security/console.perms transfers the ownership of devices to the one that is logged in. You need the following lines in /etc/security/console.perms or a file in /etc/security/console.perms.d/ : <paralellport>=/dev/parport[0-7]
<console> 0600 <paralellport> 0660 root.lp
For manipulating udev, create a file /etc/udev/rules.d/20-local.rules with the following content: KERNEL=="parport*", GROUP="lp", MODE="0666"
However, this is overwritten by console.perms.
Module for the programming of the CS 3310 attenuator chip, connected to the parallel port. this connection has the great advantage that one can use the status bit and several data bits to supply the necessary signals to the chip. First, the CS-signal (Pin 14 SPP, Pin 2 chip) has to be set low to adress the chip. Then, the data are presented at the D0 Pin (dataport 0 / pin 2 of the SPP, Pin 3 on the chip), and are strobed via the SCLK-Signal (Pin 1 SPP, Pin 6 chip) into the chip. repeat this for all the bits we want to transfer. After this, we wait a little before we reset the CS-signal back to high. Attention: the strobe bit and the status bit 1 are inverted at the SPP!. The timing we use here could perhaps be faster, but the 2 meters of parallel cable make the signal flanks look really sloppy, then.. nevertheless, these signals are recognised by the chip from their rising slopes (rising flank, not level triggering), so this should be no problem... anyway, we have time enough. The MUTE-signal mutes the chip (.. who would have guessed...?), but without changing the set attenuation. it is active when Pin 8 is LOW. Additionally, if you leave MUTE low for more than 2 ms, the CS 3310 recalibrates itself. :-) The ZCEN-signal means zero crossing detection enable, and does exactly this. If it is set, the chip waits for the next zero crossing of the signal before changing to the new attenuation. This reduces clicking (for you HiFi-proffesionals out there...), and is a really elegant feature. If there are no zero crossing, the setting changes are forced after 18 ms. |