Solenoid monitoring
Chandu,
here are a couple of solutions :
(1) using and IC: I think you can use a device like National Semiconductor LMD18400 (**broken link removed**) that has a digital error flag to identify open or shorted load. It's indeed an high side driver, a feature always preferred in industrial applications.
(2) Using discrete driver: if you don't want to use an integrated device, you can use a low value resistor put between driver emitter and ground (assuming low-side driving, here). As an example, if the solenoid needs 400mA, you want to use a 1Ω resistor (½W). Now connect the emitter/resistor node to an ADC input of the microcontroller. This will give you 0.4V when the solenoid is working. If the microcontroller uses a 10-bit ADC converter for a 0-5 V range, you will have a 0x00-0x51 ADC range for the solenoid current. If you need an extended measure range, use an op-amp with a gain of 2 or 3 between the node and the ADC input. Every voltage is referenced to ground.