En fråga kring DS2405 switch.

Elektronikrelaterade (på komponentnivå) frågor och funderingar.
benring
Inlägg: 900
Blev medlem: 18 januari 2005, 19:35:25

En fråga kring DS2405 switch.

Inlägg av benring »

Hej, är det nån här som använder denna DS2405-switch till nått och i så fall, hur gör ni för att kolla status PÅ/AV?

Jag kör en match-rom och då triggar den till att slå på eller av, vilket visar sig med svaret "0" (AV) & "10" (PÅ).

Mitt problem är att jag endast vill se statusen, inte behöva slå på eller av den rackarn.

Om den är påslagen och jag vill kolla att så är fallet vill jag inte slå av den för att behöva slå på den. Blir sånt blinkande på lampor mm :)

Hur gör man denna koll? Databladet hajjar jag inte i just denna del.

MVH / B
Senast redigerad av benring 13 november 2005, 23:34:39, redigerad totalt 1 gång.
Användarvisningsbild
jack
EF Sponsor
Inlägg: 2059
Blev medlem: 5 oktober 2004, 17:32:27

Inlägg av jack »

Du kan inte bara använda dig av en variabel som du sätter när du slår på den osv?
benring
Inlägg: 900
Blev medlem: 18 januari 2005, 19:35:25

Inlägg av benring »

Jo, jag har så nu men blir det nått fel så tappar systemet kollen på om grejen verkligen ÄR på eller ej.

Jag "måste" få reda på om kretsen är tillslagen eller ej, det är den enda säkra.

Funkar ju som det e nu men det är inte helt säkert.

/B
Användarvisningsbild
PHermansson
EF Sponsor
Inlägg: 4340
Blev medlem: 22 december 2004, 00:46:38
Ort: Särestad Grästorp
Kontakt:

Inlägg av PHermansson »

Det är möjligt att göra, det fungerar både i OWFS och i den mjukvara Maxim/Dallas erbjuder. Var ett tag sedan jag körde mitt 1-wire med C-kod, men en idé är ju att studera 1-Wire Public Domain Kit (http://www.maxim-ic.com/products/ibutto ... irekit.cfm) och se hur man gör i den mjukvaran.
benring
Inlägg: 900
Blev medlem: 18 januari 2005, 19:35:25

Inlägg av benring »

Tackar, skall kolla genast:)
Användarvisningsbild
PHermansson
EF Sponsor
Inlägg: 4340
Blev medlem: 22 december 2004, 00:46:38
Ort: Särestad Grästorp
Kontakt:

Inlägg av PHermansson »

Kan ju bidra med lite källkod jag har liggande. Vet inte om det är rakt av PD-kitet eller om jag moddat det själv:

Kod: Markera allt

//status.c - used to read status of DS2405's

// Include files
#include <stdio.h>
#include <stdlib.h>
#include "ownet.h"
#include "swt05.h"
#include "findtype.h"

// Constant definitions
#define MAXDEVICES         15

//
int main(int argc, char **argv)
{
   uchar SwitchSN[MAXDEVICES]∞;  //the serial numbers for the devices
   short i,j;                      //loop counters
   int num;                        //for the number of DS2405s
   int lev;
   int portnum=0;

   // check for required port name
   if (argc != 2)
   {
      printf("1-Wire Net name required on command line!\n"
             " (example: \"COM1\" (Win32 DS2480),\"/dev/cua0\" "
             "(Linux DS2480),\"1\" (Win32 TMEX)\n");
      exit(1);
   }

   // attempt to acquire the 1-Wire Net
   if (!owAcquire(portnum,argv[1]))
   {
      OWERROR_DUMP(stdout);
      exit(1);
   }

   // this is to get the number of the devices and the serial numbers
	num = FindDevices(portnum, &SwitchSN[0], SWITCH_FAMILY, MAXDEVICES);

   for( i=0; i<num; i++)
   {

      if(ReadSwitch05(portnum, SwitchSN[i], &lev))
      {
         printf("Device ");

         for(j=7; j>=0; j--)
            printf("%02X", SwitchSN[i][j]);

         if(lev)
            printf(" is active and is high.\n");
         else
            printf(" is active and is low.\n");
      }
      else
         printf("Error reading active device\n");


      if(!ReadSwitch05(portnum, SwitchSN[i], &lev))
      {
         printf("Device ");

         for(j=7; j>=0; j--)
            printf("%02X", SwitchSN[i][j]);

         if(lev)
            printf(" is not active and is high.\n");
         else
            printf(" is not active and is low.\n");
      }
      else
         printf("Error reading nonactive device\n");
   }
   if(num == 0)
      printf("DS2405 not found on the 1-Wire Network.\n");

   owRelease(portnum);
   printf("Closing port %s.\n", argv[1]);
   exit(0);

   return 0;
}
benring
Inlägg: 900
Blev medlem: 18 januari 2005, 19:35:25

Inlägg av benring »

Tack, det jag är undrande om är skillnaden i:

is active and is high
is active and is low

och:

is not active and is high
is not active and is low

Dvs, aktiv och icke aktiv?
Har sett det i databladet oxå men hajjar inte vad som menas.
MVH / B
Användarvisningsbild
PHermansson
EF Sponsor
Inlägg: 4340
Blev medlem: 22 december 2004, 00:46:38
Ort: Särestad Grästorp
Kontakt:

Inlägg av PHermansson »

Det förklaras under 'Active-Only Search ROM'.
If Search ROM returns read-0 time slots (PIO=logical 0) for a
given device, it may be due to that particular DS2405 driving its PIO pin low, or under certain conditions
the logical 0 may be caused by some other device holding PIO low. If that same device is found using an
active-only search, CONTROL must be a logical 1 and the PIO pin is being held low by the DS2405. If
that same device is not found using an active-only search, CONTROL must be a logical 0 and the PIO pin
is being held low by some other device or perhaps a fault condition such as a PIO shorted to ground.
Att en enhet är aktiv betyder att den interna MosFet'en är aktiverad (open drain utgång). Om den sedan är high eller low beror på den verkliga nivån på Pio'n. Det kan ju vara så att 2405'an är aktiverad men att annan elektronik drar Pio hög, enheten blir då 'active and high' trots att 2405an försöker dra Pio till 0.
benring
Inlägg: 900
Blev medlem: 18 januari 2005, 19:35:25

Inlägg av benring »

Aha, ok.

Dock undrar jag fortfarande vad jag ska skicka till den för att inte trigga på eller av... Om jag idag sänder serialnr och när sista biten är skickad (eller byten...minns inte nu) så triggar den direkt på eller av.
Skickar jag nått direkt efter detta innan jag kör reset o sånt, så visar den sin status.

men efter en reset så måste jag skicka matchrom igen...

EDIT: En fundering är, ska jag skicka en "RESET" i början av programmet, sen under programmets gång så skickas inte reset alls?

Om jag tex skickar reset, sen matchrom, så "togglar" den, skickar jag valfritt efter detta så talar den endast om status.

Om jag sen ska åt en annan ds2405:a så skickar jag matchrom till denna rakt av o får dennes status, men om jag då vill "toggla" den så den ändrar status så måste jag skicka en reset för att sen skicka matchrom.

Om jag sen ska åt ds2405 nr 1 så har ju den fått en reset och då ser jag inte status utan att den "togglar" igen...

Hur jag än tänker o gör blir det inte bra...
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Så här har jag fattat det...

"Match ROM" togglar alltid pinnen.

"Search ROM" och "Active only Search ROM" kan läsa av pinnen *om* mastern lägger till "additional read time slots".

Du kan ju köra "Search ROM" med dina kända ROM koder direkt, så behöver man inte gå igenom hela avscanningen av bussen. Du vet ju redan vilka ROM koder det finns.
Användarvisningsbild
PHermansson
EF Sponsor
Inlägg: 4340
Blev medlem: 22 december 2004, 00:46:38
Ort: Särestad Grästorp
Kontakt:

Inlägg av PHermansson »

Precis så har jag också förtått det.
Match ROM - The DS2405 that exactly matches the 64-bit ROM sequence will toggle the state of its PIO
pin after the 64th bit of the match is entered.
Search ROM - The
DS2405 that was discovered by the search process will not toggle the state of its PIO pin at the end of the
search, but additional read time slots issued by the bus master after the search is completed will cause the
DS2405 to output the logic state of its PIO pin onto the 1-Wire bus. If the pulldown is on and the PIO pin
is a logical 0, the DS2405 will respond with read-0 time slots. If the pulldown is off and the PIO pin is a
logical 1 (external pullup is required), the DS2405 will respond with read-1 time slots. Each additional
read time slot issued by the bus master will continue to indicate the state of the PIO pin until a Reset
Pulse is received from the bus master. The combination of Match ROM and Search ROM allows the user
to change the state of the PIO pin and report the current state (Match ROM) or simply report the current
state of the PIO pin without changing it (Search ROM).
benring
Inlägg: 900
Blev medlem: 18 januari 2005, 19:35:25

Inlägg av benring »

Jag hann inte, Sodjan va före, jag läste precis att "Active Search Rom" (och då kanske Search Rom) är det man skall använda till detta:)

Sodjan har rätt, ännu än gång:)

Edit: PHermansson hann visst före oxå:)
MVH / Benny
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

En sak kan man säga, och det är att Maxim skulle kunna ha skrivet en lite mer samanfattande del i databladen där man kort beskriver hur man gör vissa "typiska" operationer. Eller som tydligt markerade "notes" i texten. Nu får man lusläsa en stor textmassa för att hitta den där viktiga lilla detaljen. I alla fall så har det varit så i de flesta Maxim datablad jag har sett...
benring
Inlägg: 900
Blev medlem: 18 januari 2005, 19:35:25

Inlägg av benring »

Ja, där är vi helt överens!

Om jag hade tiden och orken skulle jag skriva om dom på svenska.
Gjorda utifrån att man ska kunna använda dom ENKELT.

/B
Skriv svar