This can also be the crank position sensor (CKPS), or the ICM is failing to buffer the spark reference signal to the PCM. During normal operation, the PCM uses the spark reference signal to control ignition timing until the engine speed exceeds 1200 rpm, at which time the fuel control reference signal is used. If the window on the harmonic balancer is interfacing with the 18x Hall-effect switch, the ignition control module will ground the spark reference signal. When conditions exist for setting DTC 17, the fuel reference is used by the PCM to control ignition timing advance. This condition will cause module mode to be used for timing advance below 400 rpm and IC ignition timing to be degraded below 1200 rpm. If connections and harness are OK, try checking voltage on CKT 647 (terminal C - LT BLU/BLK) with a DVM while moving the related wiring harness and terminals with engine idling. This may help isolate the location of the malfunction.