You may have an Idle Air Control (IAC) problem, or vacuum leak. You can remove the IAC & try cleaning the pintle & seat with carb cleaner. In addition, check TPS & verify voltage @ closed throttle & WOT. It is easier to use a scanner for this purpose, but the wires can be probed for voltage, if you don't have one.