Idles high and will not shift into overdrive on 1996 Pontiac Grand Am

Rookie cbe0621eac06868b3efe0d8d1d3611e23c60d3114864ea2ec19a68cfbd3eebab
the check engine light is not on at times it idles high 3000rpm and will not shift to overdrive but sometimes the car will normal idle and shift to overdrive like nothing is wrong hooked up a scanner no codes if it would act up all the time i could probably find out what is wrong any ideas?
(1) Answer
It could be your PCM. Try scanning the data stream, not just pulling codes. I would look carefully at the IAC counts ( idle Air Control ). They should be 15-20 at idle when the car is warmed up and in gear. If they are too high, it may be an IAC problem/ computer problem or Throttle Position Sensor Problem which will cause the car not to up-shift . It they are too low ( 0-5) then there may be a vacuum leak.