Using 6 Pots on the FV-1
Posted: Sun Jun 21, 2015 3:56 am
This is an untested idea, and there may be techincal limitations of the FV-1 that would keep it from functioning properly.
There are only 3 Pot inputs to the FV-1 but sometimes you need more for a program. The way to add more pots is to multiplex the pot input channels on the FV-1 so that multiple pots can be used. This has limitations but here's how:
We will use DACR as an output to control the multiplexer. The CD4053 has three 2-to-1 channels, which is perfect for what we are doing. Pot1 and Pot2 would be the inputs on the first channel and the output goes to the FV1 pin for pot0. Pot3 and Pot4 would be the inputs on the second channel and the output goes to the FV1 pin for pot1. Pot5 and Pot6 would be the inputs on the third channel and the output goes to the FV1 pin for pot2.
In the program, we set the DACR output alternately high and low to drive the control pins for all three of the multiplexer channels. This means with the control byte cleared, Pot1, Pot3 and Pot5 would be read by the program, and with the byte set, Pot2, Pot4, and Pot6 would be read (if connected as described in the previous paragraph).
One set of 3 pots is read then the channel select is toggled so the second set can be read, meaning that 6 pots can be used with the FV-1. Using one of the DAC outputs as a control pin also means that you only have one channel for audio output, and that is a tradeoff.
I would connect the DACR output to a transistor as a level shifter on the control pins of the CD4053... tie the 4053 control pins together with a 10k pullup and use the transistor to pull the control pins low when it is on.
It looks like a lot but actually it is only using 4 extra instructions to control the multiplexer.
Again, this is untested. Proceed at your own risk.
Best regards, Jack
There are only 3 Pot inputs to the FV-1 but sometimes you need more for a program. The way to add more pots is to multiplex the pot input channels on the FV-1 so that multiple pots can be used. This has limitations but here's how:
We will use DACR as an output to control the multiplexer. The CD4053 has three 2-to-1 channels, which is perfect for what we are doing. Pot1 and Pot2 would be the inputs on the first channel and the output goes to the FV1 pin for pot0. Pot3 and Pot4 would be the inputs on the second channel and the output goes to the FV1 pin for pot1. Pot5 and Pot6 would be the inputs on the third channel and the output goes to the FV1 pin for pot2.
In the program, we set the DACR output alternately high and low to drive the control pins for all three of the multiplexer channels. This means with the control byte cleared, Pot1, Pot3 and Pot5 would be read by the program, and with the byte set, Pot2, Pot4, and Pot6 would be read (if connected as described in the previous paragraph).
Code: Select all
; multiplex control on DACR
Set1: ; the pots being read here are the first set
CLR
WRAX DACR,0 ; send it to output
RDAX Pot0,1
; do pot 1 processing here
RDAX POT1,1
; do pot 2 processing here
RDAX POT2,1
; do pot 3 processing here
Set2: ; the pots being read here are the second set
SOF 0, 0.99
WRAX DACR,0 ; send it to output
RDAX Pot0,1
; do pot 4 processing here
RDAX POT1,1
; do pot 5 processing here
RDAX POT2,1
; do pot 6 processing here
Program:
; process rest of the fx program now that the pots have been read
I would connect the DACR output to a transistor as a level shifter on the control pins of the CD4053... tie the 4053 control pins together with a 10k pullup and use the transistor to pull the control pins low when it is on.
It looks like a lot but actually it is only using 4 extra instructions to control the multiplexer.
Again, this is untested. Proceed at your own risk.
Best regards, Jack