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

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?

Asked by for the 1996 Pontiac Grand Am
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.