One Wire Parasite Power - No Temp Reading



  • I have a few 1-wire sensors that I wired up in a 2 wire setup, parasite power that I am unable to access and change the wiring.

    I have been experimenting with some extra DS18B20 I have and am able to get mervis to detect them but the temperature stays at 85. Any idea how to fix this issue?

    The three sensors I have wired in this application are crucial, so please any help to resolve will be greatly appreciated.



  • I have a few 1-wire sensors that I wired up in a 2 wire setup, parasite power that I am unable to access and change the wiring.

    I have been experimenting with some extra DS18B20 I have and am able to get mervis to detect them but the temperature stays at 85. Any idea how to fix this issue?

    The three sensors I have wired in this application are crucial, so please any help to resolve will be greatly appreciated.



  • The 85°C is a power on reset value. This means that your sensors do not have enough power for the conversion. That is why we use the separate power supply…



  • Its hard to believe it is incapable of powering a single 1-wire sensor at 3 feet, is it possible something in the settings is not allowing the reading to be returned or converted?



  • Does it always show 85.0 or is it capable of at least some reading?

    EDIT: By the way, if you are using parasite power, then VDD of 1wire slaves should be connected to GND.

    I have created a simple function block in ST that you might use to filter out the 85 values:

    FUNCTION_BLOCK check_1w_temp
    (*
    EXTENDS //base type
    IMPLEMENTS //interface type list
    *)
    	VAR NON_RETAIN
    		(* add local variables here *)
    		first_run:		bool:= TRUE;
    		prev_temp:		real:= 999.99;
    		filter: 		LIB.CORE.V1_0.B86_FILTER;
    	END_VAR
    	VAR_INPUT
    		(* add in variables here *)
    		actual_temp:			real:= 0;
    		err_diff:				real:= 5;
    		por_diff:				real:= 1;
    		filter_const:			real:= 60;
    		min_temp_allowed:		real:= -55;
    		max_temp_allowed:		real:= 125;		
    	END_VAR
    	VAR_OUTPUT
    		outtemp:			real;
    		err_measure:		bool:=FALSE;
    		(* add out variables here *)
    	END_VAR
    
    (*function block body*)
    
    //first run
    IF first_run THEN
    	outtemp:=actual_temp;
    	prev_temp:=actual_temp;
    	err_measure:=FALSE;
    	first_run:=FALSE;
    	RETURN;
    END_IF;
    
    //filter out impossible values
    IF actual_temp > max_temp_allowed OR actual_temp < min_temp_allowed THEN
    	outtemp:=prev_temp;
    	err_measure:=TRUE;
    	RETURN;
    END_IF;
    
    //filter out POR 85.0C errorrs
    IF abs(prev_temp-actual_temp)>=por_diff AND actual_temp = 85.0 THEN
    	err_measure:= TRUE;
    	outtemp:=prev_temp;
    //and filter measurre errors
    ELSIF abs(prev_temp-actual_temp)>=err_diff THEN
    	err_measure:=TRUE;
    	outtemp:=prev_temp;
    	//prev_temp:=actual_temp;
    ELSE
    	outtemp:=actual_temp;
    	prev_temp:=actual_temp;
    	err_measure:=FALSE;
    END_IF;
    
    //apply analog filer -> smooth the signal
    
    IF err_measure = FALSE AND filter_const > 0 THEN
    	filter(IN:= actual_temp, INDT:= filter_const, OUT=>outtemp);
    
    END_IF;
    
    END_FUNCTION_BLOCK
    
    


  • I always get 85, no other reading.

    Thank you for taking a look into it, I will give that function block a try tonight.

    Correction: I think I may have made a mistake when talking about Parasitic power in another post, I wrote Vdd & Data connected, but I was typing faster than I was thinking. I have Vdd tied to GND, Data is separate.



  • Ok, I tested a few scenarios now. I figured out, external powered and parasite powered 1-wire sensors will not work together. When using only parasite powered sensors I am able to run up to three together, when a forth is added temperature readings begin to get unstable.

    Is unipi/mervis simultaneously converting temps when there is external powered sensors? That would cause the parasite ones to not work together. Is it possible when running only parasite sensors there isn't enough time between calls to get the temp from more than 3 sensors and convert?

    Do you think I would be able to use one of the 8 channel expanders and run my three parasite powered sensors on one channel and all external powered sensors on another channel?



  • There is definitely no simultaneous reading. All the software just goes through the list of available sensors and reads send the convert command and reads its scratchpad. However I cannot say how it is with the interval between readings because we do not use parasite power at all….

    I will try to test the parasite sensors and external powered sensors during this week and let you know. If I dont, please send me a PM



  • Were you able to take a look into the parasite powered 1-wire sensors?

    Thanks



  • Hello, we had a meeting about this but since mervis is a commercial solution, we wont be supporting unofficial hw. So it is on our todo-list but not at a first place.