Docs:
http://jil.guru/32bit/CT60e/doc/
http://jil.guru/32bit/CT60e/doc/chg.pdf
Installation manual on way.
Beside of new mechanical layout, there is a new MGMt chip, which has replaced the old ADC chip(temperature control).
The new features are:
Core temperature reading in 0,01°C units (also support for legacy format).
Board temperature reading 0,01°C units (actually it is MGMt chip core temp.)
3,3V rail monitoring in 10 mV units.
5V rail monitoring in 10 mV units.
UUID Version 4, Variant 1. Containing SN. Even 2 boards with same SN will have different UUID's.
64 bytes OTP FlashRom, Divided for 0x10 independent programmable blocks. Every block may be programmed only ONCE. No way to erase.
Block 0x00 contains preprogrammed SN.
0x0f Blocks is avaliable for user. (Maybe Asset Tag)
The board comes with preprogrammed TOS 4.04 boot 1.03c - slightly patched to support any compatible flash. The patched tos can be found here: http://jil.guru/32bit/CT60e/TOS/Legacy/
CT60e MGMt chip commands description:
Current firmware version is:MGMt chip i2c bus address is:Code: Select all
#define version "2.2.e"
For detailed description refer to *DIMM EEPROM* chapter in *CT60 HARDWARE GUIDE*Code: Select all
#define i2c_address 0x77
And of course to generic i2c protocol description.
all commands are 1byte + evt. payload, and are returning 4 bytes or more
Simplified protocol description:
start
send sla+w
send command
restart
send sla+r
receive 4 bytes or more, send NACK after last byte.
stop
All results are encoded in LITTLE ENDIAN convention
Legacy temperature reading is still avaliable.Code: Select all
enum i2c_commands { //command value ascii bytes to read - Additional info get_v33 = 0x33, // '3' - 4 - Voltage on 3.3V Rail in 10 mV units get_v50 = 0x35, // '5' - 4 - Voltage on 5V Rail in 10 mV units get_tAmb = 0x41, // 'A' - 4 - Ambient Temperature in 0,01°C units (Actualy it is MCU core temp) get_t060 = 0x54, // 'T' - 4 - 68060 Temperature in 0,01°C units get_UUID = 0x55, // 'U' - 36 - Get slashed ascii UUID: XXXXXXXX-SNSN-XXXX-XXXX-XXXXXXXXXXXX // SN is located in pr0m_0. And is encoded as: // all numbers are Little Endian !! SN is included in UUID as bytes nr. 5 and 6 // int16_t SN ;Serial number as SIGNED 16 bit int. It means *UNPROGRAMMED* SN = -1; // uint32_t xSN ;Stored LongWord (32 bit) // xSN = (((uint32_t)~SN << 16) | (uint16_t)SN); // It's kind of self verification. // locations pr0m1 to pr0mf are empty, and can be used by user. get_sn = 0x60, // '`' - 4 get_pr0m_1 = 0x61, // 'a' - 4 get_pr0m_2 = 0x62, // 'b' - 4 get_pr0m_3 = 0x63, // 'c' - 4 get_pr0m_4 = 0x64, // 'd' - 4 get_pr0m_5 = 0x65, // 'e' - 4 get_pr0m_6 = 0x66, // 'f' - 4 get_pr0m_7 = 0x67, // 'g' - 4 get_pr0m_8 = 0x68, // 'h' - 4 get_pr0m_9 = 0x69, // 'i' - 4 get_pr0m_a = 0x6a, // 'j' - 4 get_pr0m_b = 0x6b, // 'k' - 4 get_pr0m_c = 0x6c, // 'l' - 4 get_pr0m_d = 0x6d, // 'm' - 4 get_pr0m_e = 0x6e, // 'n' - 4 get_pr0m_f = 0x6f, // 'o' - 4 get_uuid = 0x75, // 'u' - 16 - get numeric uuid, just 128bit number. remember *LE* // active commands answer =0 means OK, answer = cmd -> error, any other error code. // To use any of the active command, you do need to put MCU into a 'reset mode' // To do that. You need to pull THCS line down, and issue 0x060e pulses on THCK line. // (Refer to *THERMAL SENSOR* chapter in *CT60 HARDWARE GUIDE* // After issuing the RESET command, MCU will wait for 8sec. for incomming command, // And then reset or execute one of the following commands: resetReset = 0x78, //ascii 'x' - Break the reset sequence //i2c_buffer[1] shout be ~0x78 = 0x87 followed by CRC16 //i2c_buffer[2] = 9F, i2c_buffer[3] = 60 -> crc = 0x609F in reverse order bootloader = 0xbb, // call bootloader - no exit //i2c_buffer[1] shout be ~0xbb = 0x44 followed by CRC16 //i2c_buffer[2] = B7, i2c_buffer[3] = CA -> crc = 0xCAB7 in reverse order. writeIFR = 0xf1 //i2c_buffer[1] shout be ~0xf1 = 0x0e followed 2 bytes IFR index (0x00 to 0x0f) in reverse order //and 4 bytes of data and 2bytes crc16. //The new programmed value will be present after next reset. // used crc16 version is: //CRC16_CCIT_ZERO (Polynomial: 0x1021; Initial Value: 0x0; Final Xor Value: 0x0) };
But ... reading 16 more bits you will get more acurate temperature (same as get_t060 i2c command) in fastest way.
Both i2c, and legacy temp reading should work flawless up to 400kHz.
In teory it should go up to ca. 1MHz ... maybe more. Was not tested.
Here you can find Patched (recompilled) tools http://jil.guru/32bit/CT60e/Tools/Legacy/ that supports all compatible flash chips.
The flash chip used on CT60e is not compatible with old tools. But patched tools are compatible with all (even manufactured in future) compatible flash chips ,)
Clock is preprogrammed to 66MHz. If your processor is slower. You can put a jumper across recovery jumper, located right next to F030 power connector. It will decrease the frequency by half to 33MHz. My both 68060 CPU's rated 50MHz was able to run @100+MHz.
If you are planing extreme overclocking, I will disapoint you. Clock buffer used in CT60 design can work up to 133MHz - but with load capacity of max 10pF and 100MHz with load capacity of 30pF.
MC68060 input capacity is about 20pF+ some capacitance of traces etc. I would say 105 MHz is safe maximum.
The memory connector is not designed to constatly replacing the RAM module. It is rated to 25 cycles! At least one cycle was used in test.
