Sign in to follow this  
Followers 0
robinfawell

Fatar TP40 compatability with Din Module

4 posts in this topic

The TP40 has 88 keys.  I have found that you can download the circuit from the Doepfer Website. Go to the Products, Spare Parts and you will see the 88 note keybed in the first section. Click on Matrix_88.gif

As I understand it the idea is that the signals T0 to T7 are "strobes" which sequentially transfer the switch status from the keys in pairs.  There are 176 switches for the 88 keys.  The 1st and 2nd switches are mechanically arranged so that the 1st contact closes first and the 2nd contact closes later.  The time difference will indicate how strongly the key is pressed.  The shorter the time the louder the note, hence velocity sensing!

If an 8 bit Dout is used to generate the "strobes" then you will need to store in a Din Module the following BR0, MK0 :BR10,MK10 ie 22 data bits (for each strobe).  Alternatively you could strobe with T0 to T15 and use only 11 data bits (for 16 strobes).

After each strobe the 22 bits must be transmitted serially to the Core Module.

At this stage I would suggest that it would be a good idea to utilise either the 3rd Din unused bits 24 - 22 = 2 bits X 8 =16 switch states for other uses or even use the total Dout capability of 32 bits to provide an extra capability of 32-22 =10 X 8 = 80 switch states.

I would welcome any comments from more experienced forum members on whether there is any advantage in using an 8 or a 16 bit strobe, bearing in mind that the following processing by the core will involve bit manipulation.

Polarity of Diodes.

You will see that the anodes of the diodes are connected to T0 -T7.  When T0 is active the first two diodes in each 16 switch group should enable note info from the 1st Key,9th key,17th key etc etc to be passed to the Din module.

The rest state of the Din shift register has a pull up resistor ie a "1".  Connecting the strobe to a "0" via a switch and diode to the shift register input will not change the input state. The diode(s) are reverse biased.  The diodes (I think) need reversing.  I am reluctant to do this on a new keybed.  There are 176 diodes and I will need to take the keybed apart.

I think that the best way will be to arrange for pull-down resistors from the SR input to ground. This will allow the diode polarity to remain unchanged. The strobe will change to a "1". 

This may need track cutting but the resistors are in parallel.  I must admit that I have not checked this out carefully on the PCB.

From various Forum references it would seem that Qbas has succeeded in producing a midi interface for  the Fatar 88 keybed.

The other solution is to swap T0-T7 with the BRx/MKx, using the latter as a strobe. Perhaps that is how Qbas managed the solution.

If Qbas or others can help me I will appreciate it.

Regards Robin

Share this post


Link to post
Share on other sites

Since I sent the original message I have thought some more about the solution that uses BR0,MK0 etc as the strobe and uses T0-T7 as the parallel inputs to the SR.

This has an obvious advantage.  The sequence will follow the sequence of the keys from the lowest note to the highest note dealing with 4 notes or 8 switches at each strobe.

Robin

Share this post


Link to post
Share on other sites

Hi Robin

Last weekend I had found some time to evaluate my latest toy, a LOGICPORT LOGIC ANALYZER from http://www.pctestinstruments.com/. I have a cheap Fatar TMK88, with aTP9 Keybed and a PIC16F74 build in, as a candidate to see the Logicport in action.

Fatar actually uses the BR0..BR10 & MK0..MK10 signals as strobes (active low signals) and monitors the data lines T0..T7, which are connected  to a parallel PIC port via 2k2 pullups. The data lines represent 8 keys, because the BRx strobes scans the break (upper) switches, and the MKx strobes scans the make (lower) switches.

1. Transition from untouch -> key-press: when Data Out: BRx 1->0: => Data In: T0..7 1->0.

2. Before reaching the lower key position: when Data Out: BRx 1->0: => Data In: T0..7 =  0.

3. Reaching the lower key position: when Data Out: BRx 1->0: => Data In: T0..7 =  0; when Data Out: MKx 1->0 => Data In: T0..7 1->0.

The scanning procedure for the whole keyboard is repeated every 400 usec.

The clever thing is that only the BR0..10 scanlines are strobed as long as no key-presses are detected.

If any key-press is detected (BR0..BRx..BR10; BRx 1->0 => T0..7 1->0) the related MKx will also be activated in the next scan period like BR0, BR1..BRx, MKx, BRx+1..BR10.

Some Timing Data

BRn -> BRn+1 :    6 usec

BRn, MKn, Tn low (0) time:    1.5 usec

BR0..BR10 scanning duration (no key pressed):  60 usec

BR0..BRx,MKx..BR10 scanning duration (1 key pressed):  66 usec => 60 usec + (count of MK strobes)*6 usec

Scanning procedure repeat time:  400 usec

So processing can take place in 400 usec - 22*6 usec:  268 usec

These are my 2 cents to the never ending but enlightening key velocity scanning discussion in this fantastic forum.

Regards

Jo

Share this post


Link to post
Share on other sites

Welcome aboard nlate!

That's more like 2 dollars, than cents, lovely. Way to make a grand entrance :)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0