• Register
    • Login
    • Search
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search

    One Wire Parasite Power - No Temp Reading

    Mervis
    1
    10
    3364
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • D
      Drewscm last edited by

      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.

      1 Reply Last reply Reply Quote 0
      • D
        Drewscm last edited by

        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.

        1 Reply Last reply Reply Quote 0
        • ?
          Guest last edited by

          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…

          1 Reply Last reply Reply Quote 0
          • D
            Drewscm last edited by

            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?

            1 Reply Last reply Reply Quote 0
            • ?
              Guest last edited by

              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
              
              
              1 Reply Last reply Reply Quote 0
              • D
                Drewscm last edited by

                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.

                1 Reply Last reply Reply Quote 0
                • D
                  Drewscm last edited by

                  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?

                  1 Reply Last reply Reply Quote 0
                  • ?
                    Guest last edited by

                    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

                    1 Reply Last reply Reply Quote 0
                    • D
                      Drewscm last edited by

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

                      Thanks

                      1 Reply Last reply Reply Quote 0
                      • ?
                        Guest last edited by

                        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.

                        1 Reply Last reply Reply Quote 0
                        • First post
                          Last post