Hello,
I'm trying to implement something similar to this:
http://hsm-aktuell.de/cnc-hr330.htm
I've disassembled one EPROM from the TNC155A cnc controller that reads
the electronic handwheel but it's a bit tedious trying to figure out the
protocol from that. I've managed to find out the baud rate, number of
stop bits and parity settings from my disassembly and scoping the clk
signal on the TNC155A board.
Would anyone have some info on the protocol for the Heidenhain
electronic handwheel?
edit: Handwheel interfaces to the controller on the gfx board. There is
TMS9995 cpu and a TMS9902 serial interface device. INT1 is used for
character reception (5 bytes max or so it looks like)
1 | INTR01 WP is at 0xdc00
|
2 |
|
3 | INTR01 STCR *r1+,8
|
4 | SBO 18
|
5 | RTWP
|
From the disassembly listing I gathered that the serial interface runs
at 38400 baud, one stop bit, even parity and 8-bits of data (TMS9902
reset and setup code was easily found)
1 | TMS9902RST LI r12,>0000
|
2 | SBO 31
|
3 | LDCR @TMS9902_08,8
|
4 | SBZ 13
|
5 | LDCR @TMS9902_BC,12
|
6 | MOV r12,@>dc18
|
7 | LI r5,>0050
|
8 | LI r1,>dc04
|
9 | MOV r5,*r1+
|
10 | CLR *r1+
|
11 | CLR *r1+
|
12 | CLR *r1+
|
13 | CLR *r1+
|
14 | MOV r5,*r1+
|
15 | CLR *r1+
|
16 | CLR *r1+
|
17 | CLR *r1+
|
18 | CLR *r1
|
19 | LI r5,>dc05
|
20 | MOV r5,@>dc02
|
21 | B *r11
|
22 |
|
23 | TMS9902_08 DATA >a300 ; TMS9902 %10100011 (1 stop bit even parity clk div by 3 8-bits) %00000000
|
24 | TMS9902_BC DATA >000d ; TMS9902 LRDR register %00000000 %00001101 (((3MHz)/3)/13)/2 = 38461 baud
|