
What this code means
P0315 means the ECM may not have a learned crankshaft position variation value stored, which can affect how accurately it evaluates crankshaft speed changes for misfire detection.
What the vehicle may do
- The vehicle may turn on the check engine light.
- The engine may run normally in some cases.
- Misfire-related behavior may be present, depending on the condition and any related codes.
Possible fault areas
- An incomplete or unsuccessful crankshaft position variation learn may be involved.
- Battery condition may affect the learn procedure.
- Crankshaft position sensor and reluctor relationship issues may be possible.
- Mechanical crankshaft or bearing issues may be possible.
- Signal interference on the crankshaft position sensor circuit may be possible.
- An ECM issue may be considered only after the diagnostic path points there.
Diagnostic path
Opening context
On this Silverado, P0315 means the crankshaft position variation has not been learned. That learned variation lets the ECM compensate for small crankshaft and crank sensor differences so it can judge misfire events more accurately. The truck may run normally, or it may show misfire-related behavior or a check engine light. Broadly, the possible fault areas can include an incomplete learn, battery condition, the crank sensor and reluctor relationship, mechanical crankshaft issues, signal interference, or, later in the path, the ECM. Start with the basic system checks, then follow a structured diagnostic approach instead of jumping straight to parts.
Monitor logic and first decision
For P0315, the monitor gate is Engine = Running, and after the running conditions are met, it runs continuously. The setting condition is straightforward: Crankshaft Position Variation Learn = Not Learned. Before starting the learn path, the battery needs to have passed a load test and be completely charged. With Ignition On / Vehicle In Service Mode, check for other codes. If anything is set beyond P0315 and the related misfire-code context, diagnose what those other codes mean first. If there are no other codes outside that group, continue with the scan tool learn routine.
Brake pedal position learn first
Before the crank learn, use the scan tool to run the Brake Pedal Position Sensor Learn in the Body Control Module. Follow the scan tool prompts. When that finishes, verify both learned states. Brake Pedal Position Sensor Learn needs to read Yes, and Brake Pedal Position Sensor Learned Released Position needs to read Yes. If either one is not in that specified state, repeat the directed scan-tool path for that learn before moving on.
Crankshaft variation learn
Once the brake pedal learn states are correct, use the scan tool under the Engine Control Module learn functions to run Crankshaft Position Variation Learn. Follow the scan tool prompts. When the routine completes, verify that the scan tool procedure was successful.
If the crank learn fails
If the crankshaft variation learn is not successful the first time through, turn Ignition/Vehicle Off and check the listed conditions before trying to force the learn again. Look for foreign material between the crankshaft position sensor and reluctor ring, an incorrect air gap, low battery voltage, crankshaft bearing wear, excessive crankshaft runout or visible crankshaft damage, reluctor ring misalignment or visible damage, and electromagnetic interference on the crankshaft position sensor signal circuit. If one of those conditions is present, repair or replace as necessary. If none of those conditions is present, repeat the earlier scan-tool path.
Repeat limit and ECM decision
If the procedure is still not successful and it has been performed 4 times or less, repeat the directed earlier learn path. If the procedure has been performed 5 times and is still not successful, the next step is replacement of the K20 Engine Control Module.
Verification
Keep verification separate from the learn procedure itself. If the crankshaft variation learn is successful, reproduce the operating conditions for the code. You can also reproduce the captured conditions from the failure data when that helps. Then verify P0315 does not reset. If it does reset, replace the K20 Engine Control Module. If it does not reset, the result is all OK. After the repair, verify the repair and confirm the code stays gone.
Takeaway and CTA
The key with P0315 is to prove the required learns, confirm battery and crank sensor-reluctor conditions, respect the repeat limit, and only make the ECM call after the diagnostic path points you there. For more diagnostic training, visit stepdiagnostics.com.
Final check
P0315 is mainly a learn-status diagnosis: confirm prerequisites, run the required learns, inspect the listed crank and signal conditions if the learn fails, then verify the code stays gone.
For more guided automotive diagnostics, visit STEP Diagnostics.





