Kommunikationsproblem med IR-termometer på SMBus
Postat: 23 oktober 2009, 19:18:11
Hallå!
Har riggat upp en liten anordning med en IR-termometer som pratar över en SMBus (väldigt likt I2C) med en PIC16F886. Detta strular lite...
Introduktion/bakgrund: (Hoppas över av den otålige läsaren)
Allt gick bra på labbplattan med typ 9kOhm pull-up motstånd men när tråden till termometern förlängdes med några decimeter så tog PICen bara emot nollor. Såg då på oscilloskopet att stigningarna var lite tveksamma så jag sänkte pull-upen till ca 6Kohm och då funkade det bra. Sedan byggde jag en till likadan rigg och där krävdes ytterliggare lägre värde för att få en vettig signal-avläsning.
Nu har jag ytterligare en uppsättning av det ovanstående med en ca 70cm lång kabel av typ vanlig telefonledning med klocka/data i två av ledningarna och strömförsörjning i de andra två. Tycker att pulserna ser helt OK ut på oscilloskopet med de 2k2 pull-up motstånd som sitter där nu och för det mesta blir avläsningen korrekt. MEN kanske 1 mätvärde på 200 blir registrerat i PICen som 0. Samma problem som uppstått tidigare med de svagare pull-upsen. Känns som att om jag vågade sänka värdet på pull-upen ytterligare så skulle problemet försvinna men jag är inte säker på om jag borde göra det.
Fråga:
Det jag skulle vilja ha hjälp med är vad det är jag ska kolla i databladet, vilket min-värde det är som gäller för pull-ups. Är det "Clamp-Current" som jag söker så har jag en väldigt god marginal upp till de 25mA som nämns under "absolute max" men jag blir inte riktigt klok på terminologin.
Något annat tips på hårdvaruförändringar för att råda bot på det hela är förstås också välkommna om ni tycker det är hel-tokigt med så låga pull-up värden som~2kOhm på en 100kHz-bus.
MVH
/Tottish
Har riggat upp en liten anordning med en IR-termometer som pratar över en SMBus (väldigt likt I2C) med en PIC16F886. Detta strular lite...
Introduktion/bakgrund: (Hoppas över av den otålige läsaren)
Allt gick bra på labbplattan med typ 9kOhm pull-up motstånd men när tråden till termometern förlängdes med några decimeter så tog PICen bara emot nollor. Såg då på oscilloskopet att stigningarna var lite tveksamma så jag sänkte pull-upen till ca 6Kohm och då funkade det bra. Sedan byggde jag en till likadan rigg och där krävdes ytterliggare lägre värde för att få en vettig signal-avläsning.
Nu har jag ytterligare en uppsättning av det ovanstående med en ca 70cm lång kabel av typ vanlig telefonledning med klocka/data i två av ledningarna och strömförsörjning i de andra två. Tycker att pulserna ser helt OK ut på oscilloskopet med de 2k2 pull-up motstånd som sitter där nu och för det mesta blir avläsningen korrekt. MEN kanske 1 mätvärde på 200 blir registrerat i PICen som 0. Samma problem som uppstått tidigare med de svagare pull-upsen. Känns som att om jag vågade sänka värdet på pull-upen ytterligare så skulle problemet försvinna men jag är inte säker på om jag borde göra det.
Fråga:
Det jag skulle vilja ha hjälp med är vad det är jag ska kolla i databladet, vilket min-värde det är som gäller för pull-ups. Är det "Clamp-Current" som jag söker så har jag en väldigt god marginal upp till de 25mA som nämns under "absolute max" men jag blir inte riktigt klok på terminologin.
Något annat tips på hårdvaruförändringar för att råda bot på det hela är förstås också välkommna om ni tycker det är hel-tokigt med så låga pull-up värden som~2kOhm på en 100kHz-bus.
MVH
/Tottish