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
Kommunikationsproblem med IR-termometer på SMBus
-
- EF Sponsor
- Inlägg: 2109
- Blev medlem: 27 augusti 2005, 20:57:58
- Ort: Borlänge
Re: Kommunikationsproblem med IR-termometer på SMBus
Jag använde en sådan sensor en gång i ett projekt, sensorn funkar för övrigt mycket bra.
En appnote säger följande:
"In SMBus systems with higher bus capacitance (like wires) RPU=1.5k (VDD=5V,IPULLUP=3.3mA)
is suitable otherwise RPU=22k(VDD=5V,IPULLUP=227μA) can be used"
Annars har ju SMBus checksumma så det är bara att läsa igen om du får checksummefel.
Länk till appnotes:
http://www.melexis.com/Sensor_ICs_Infra ... n_615.aspx
Ett annat tips är att sänka frekvensen till 10kHz?
En appnote säger följande:
"In SMBus systems with higher bus capacitance (like wires) RPU=1.5k (VDD=5V,IPULLUP=3.3mA)
is suitable otherwise RPU=22k(VDD=5V,IPULLUP=227μA) can be used"
Annars har ju SMBus checksumma så det är bara att läsa igen om du får checksummefel.
Länk till appnotes:
http://www.melexis.com/Sensor_ICs_Infra ... n_615.aspx
Ett annat tips är att sänka frekvensen till 10kHz?
Re: Kommunikationsproblem med IR-termometer på SMBus
Piraten:
Tycker också att den har varit väldigt trevlig i funktion och stabilitet och även priset. (typ 150kr på elfa) Så då behöver jag förmodligen inte vara rädd att gå ner något på pull-up fronten. Tack!
Men är det Clamp-Current som är termen som jag söker här? Bra att veta för framtida bruk.
EDIT: Sänka till 10kHz blir bökigt eftersom jag igår hade sönder hårddisken där source-filen ligger.
Har bara HEX-filen kvar...
MVH
/Tottish
Tycker också att den har varit väldigt trevlig i funktion och stabilitet och även priset. (typ 150kr på elfa) Så då behöver jag förmodligen inte vara rädd att gå ner något på pull-up fronten. Tack!
Men är det Clamp-Current som är termen som jag söker här? Bra att veta för framtida bruk.
EDIT: Sänka till 10kHz blir bökigt eftersom jag igår hade sönder hårddisken där source-filen ligger.

Har bara HEX-filen kvar...
MVH
/Tottish
-
- EF Sponsor
- Inlägg: 2109
- Blev medlem: 27 augusti 2005, 20:57:58
- Ort: Borlänge
Re: Kommunikationsproblem med IR-termometer på SMBus
Nja, clamp current är nog vad skyddsdioderna klarar om man matar in en högre spänning.
Se bild på sid 26 http://www.melexis.com/Asset/SMBus_comm ... _5207.aspx
Vad man kan ha för minsta pull-up beror också lite på vad PIC:n klarar.
Hittar inget värde vad MLX:n kan sänka, på nåt ställe står det så här
"While I2C defines maximum bus capacitance 400pF SMBus does not specify a maximum bus
capacitance. Instead it specifies the IPULLUP maximum of 350μA in Low-power DC specification
and minimum 4mA in High-power DC specification. Bus capacitance can be calculated taking
into consideration the maximum rise time and IPULLUP."
Man skulle kunna tro att de skrivit fel, maximum istället för minimum. Isåfall är maximum 4mA för SMBus.
På nåt ställe står det också data för PWM
Output sink current
Vout,L = 0.8V
13.5 mA
eftersom det är samma pinne som SMBus SDA kanske det gäller även för den.
Se bild på sid 26 http://www.melexis.com/Asset/SMBus_comm ... _5207.aspx
Vad man kan ha för minsta pull-up beror också lite på vad PIC:n klarar.
Hittar inget värde vad MLX:n kan sänka, på nåt ställe står det så här
"While I2C defines maximum bus capacitance 400pF SMBus does not specify a maximum bus
capacitance. Instead it specifies the IPULLUP maximum of 350μA in Low-power DC specification
and minimum 4mA in High-power DC specification. Bus capacitance can be calculated taking
into consideration the maximum rise time and IPULLUP."
Man skulle kunna tro att de skrivit fel, maximum istället för minimum. Isåfall är maximum 4mA för SMBus.
På nåt ställe står det också data för PWM
Output sink current
Vout,L = 0.8V
13.5 mA
eftersom det är samma pinne som SMBus SDA kanske det gäller även för den.
Re: Kommunikationsproblem med IR-termometer på SMBus
Nej, jag fick heller aldrig ut någon sink-current för datautgångarna men det känns väl ganska rimligt att SDA/PWM-utgången ska dela samma utgång från den integrerade uCn och därmed tåla samma strömmar...?
Hur som helst så provar jag med typ 1,5kOhm i pull-up så får vi se vad det genererar.
Stort tack till dig pirateboy!
MVH
/Tottish
Hur som helst så provar jag med typ 1,5kOhm i pull-up så får vi se vad det genererar.
Stort tack till dig pirateboy!
MVH
/Tottish