Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien
Toon posts:

CPU en andere temperaturen uitlezen via de USB-controller

Pagina: 1
Acties:
  • 306 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Hallo,

Ik had een vraag, ik heb deze vraag al gesteld aan vele leraren bij mij op school maar geen konden echt een duidelijk antwoord geven. Mijn vraag is dan heel simpel, is het mogelijk om temperatuur uit te lezen via de USB-controller? En dit niet op OS-niveau maar daaronder.

Dit is voor een school project waarbij we leren elektronica en microcontrollers te programmeren e.d. met een RabbitCore. (Erg leuk ding! :D)

Maar is dat dus mogelijk? Gewoon op bit-niveau of hardware-niveau hoe je het ook wil noemen, direct registers uitlezen? Neem aan van wel aangezien alles toch op elkaar staat aangesloten op een moederbord of heb ik dat verkeerd? De bios kan het toch ook uitlezen, maar zou het dan via de USB controller ook kunnen?

Alvast bedankt!

ps. heb search gebruikt maar niks kunnen vinden wat mij helpt. :'(

  • DJFliX
  • Registratie: Januari 2005
  • Laatst online: 02-11 17:11
Ik weet niks zeker, maar dit is wat ik denk:

Bios heeft verbindingen met temp. sensoren, die om de x seconden bijgewerkt worden. Software kan dit uit de BIOSchip uitlezen. Dat betekent dat je dan weer op software-niveau alles moet vertalen voor gebruik met een microcontroller... en dat gaan vertalen voor je scherm of hoe je het dan ook uit gaat lezen.

2x 320Wp Ja-Solar / Z 10° / APS YC600Y PVOutput


Verwijderd

snap niet goed wat je nu wil eigenlijk... De temp van bv je processor via je USB poort extern uitlezen?

Zal op een of andere manier wel mogelijk zijn, maar als je op je Rabbitcore (ken het niet, vandaar) geen hardware USB poort hebt wens ik je veel succes... ik ben momenteel een poging aan het doen de USB specificaties uit te pluizen, en de tranen staan me in de ogen :+

Verwijderd

'En dit niet op OS-niveau maar daaronder'

dan zal je een driver moeten schrijven welke op 'ring 0' niveau functioneerd.

(en ja, het kan dus. :P )


errrrrror: nee dit kan niet, omdat je dan ook zelf een usb-driver zou moeten schrijven,
en ik denk niet dat je dat wilt.

[ Voor 53% gewijzigd door Verwijderd op 13-11-2005 20:33 ]


  • naftebakje
  • Registratie: Februari 2002
  • Laatst online: 08:43
Niet mogelijk, zo simpel is het. Wat jij wil, is het BIOS zo aanpassen dat de temperatuur doorgestuurd wordt op een USB-poort, ook al staat er geen OS op de PC begrijp ik?

Realistische oplossing: met een progje de temperatuur naar een USB-poort uitsturen, maar zoals bovenstaande zegt: USB is niet simpel. Wat wil je eigenlijk? Is het niet gemakkelijker een voelertje op je koelvin te plaatsten, en in je soft op de Rabbit-core (via een beredeneerde gok) te compenseren naar de reele temp van je proc. Je kan dan nog aan de hand van de uitgelezen temp via je PC zelf je aanpassing fine-tunen.
Andere oplossing, als je enige jaren tijd hebt: zoek de verbinding waarlangs het BIOS de temp verzend, en luister dit af, reverse-eigeneering dus..er moeilijk en tijdrovend.

Wat wil je eigenlijk maken, uit ervaring weet ik dat sommige problemen door een kleine aanname of simplificatie enorm kunnen vereenvoudigen.

Als de boer zijn koeien kust, zijn ze jarig wees gerust. Varkens op een landingsbaan, leiden nooit een lang bestaan. Als de boer zich met stront wast, zijn zijn hersens aangetast. Als het hooi is in de schuur, zit het wijf bij den gebuur.


Verwijderd

Topicstarter
Verwijderd schreef op zondag 13 november 2005 @ 20:28:
snap niet goed wat je nu wil eigenlijk... De temp van bv je processor via je USB poort extern uitlezen?

Zal op een of andere manier wel mogelijk zijn, maar als je op je Rabbitcore (ken het niet, vandaar) geen hardware USB poort hebt wens ik je veel succes... ik ben momenteel een poging aan het doen de USB specificaties uit te pluizen, en de tranen staan me in de ogen :+
Er zitten gewoon paralellepoorten op, welke via programmeren om te bouwen zijn naar seriele poorten :) Wat ik kan doen is gewoon zelf een USB stekker nemen en de draadjes welke eruit komen op het bordje prikken.

Maar is het niet mogelijk om een bestaande USB driver te modden ofzoiets?

Wat eigenlijk de bedeoling is is om gewoon direct extern de temperatuur uit te lezen wanneer deze rabbitcore op de USB controller wordt aangesloten. Het is eigenlijk gewoon een oefening om bekend te worden met dataregisters, elektronica programmeren, microcontrollers programmeren etc. Dit doen we dmv Dynamic C, op een RabbitCore. Het lukt aardig, heb van de week een seriele controller geschreven welke stroompulsen omzet naar bits, ik vind het geniaal speelgoed! Ga er voor mezelf ook eentje kopen.

http://www.rabbitsemiconductor.com - check hier voor meer info, erg handige dingetjes je kan er veel mee! :)

edit: kort gezegt ja, het moet dus onafhankelijk van het OS kunnen functioneren en gewoon via dataregisters dingen uitlezen over de hardware status van het systeem; bijv. temperatuur, cpu gebruik, geheugen gebruik, verzin maar wat.

[ Voor 28% gewijzigd door Verwijderd op 13-11-2005 20:48 ]


  • naftebakje
  • Registratie: Februari 2002
  • Laatst online: 08:43
Verwijderd schreef op zondag 13 november 2005 @ 20:41:
[...]


Er zitten gewoon paralellepoorten op, welke via programmeren om te bouwen zijn naar seriele poorten :) Wat ik kan doen is gewoon zelf een USB stekker nemen en de draadjes welke eruit komen op het bordje prikken.

Maar is het niet mogelijk om een bestaande USB driver te modden ofzoiets?

Wat eigenlijk de bedeoling is is om gewoon direct extern de temperatuur uit te lezen wanneer deze rabbitcore op de USB controller wordt aangesloten.
Maak een progje op de PC dat de temperatuur serieel uitstuurd, hang aan die seriele poort je rabbitcore, klaar.
Eenmaal dat volledig werkt, koop je een usb-serieel convertor, laat dat progje op PC naar die virtuele seriele poort uitsturen, klaar.
Tenzij je een software-afdeling in een bedrijf achter je hebt, is het extreem moeilijk om zelf USB te creeren. Je kan veel beter met PICs of dergerlijke die dit ingebouwd hebben werken.

Als je het moeilijk wil, kan je ook de USB-serieel convertor zelf proberen te maken met een TUSB3410 (gratis te samplen), die kan je wel in werking krijgen, maar om het allemaal netjes te doen moet je de software ervan aanpassen, alles in C te proggen, je vind weliswaar wat documentatie op internet maar ik ben nog niet uitgeraakt (ik kan echter niet programmeren in C, mss vind ik het daarom moeilijk).

Als de boer zijn koeien kust, zijn ze jarig wees gerust. Varkens op een landingsbaan, leiden nooit een lang bestaan. Als de boer zich met stront wast, zijn zijn hersens aangetast. Als het hooi is in de schuur, zit het wijf bij den gebuur.


Verwijderd

Topicstarter
Hmm, en andere controllers en/of poorten? Seriele poort gebruiken? Of wordt de temp van de CPU bijv alleen echt alleen maar naar het BIOS gestuurd en nergens anders in een voor de hardware openbaar toegankelijke plek ergens in een geheugen?

Maakt weinig uit welke interface het gebruikt, zolang het maar OS onafhankelijk is. Het is niet echt een *eis* voor m'n project maar het zou mooi zijn krijg er een lading extra punten voor waar je U tegen zegt :)

Ben dus nu zover dat ik wel via een aparte temperatuur sensor dus data kan uitlezen en dat omzetten naar een temperatuur, alleen het mooie is natuurlijk als het zo "netjes" mogelijk gebeurd, dus via een bestaande aansluiting welke op zo'n beetje elke computer zit; USB/Serieel/Parellel, van mijn part PCI, mag er namelijk ook een PCI-kaart van maken. Dat een mogelijkheid?

ps, sorry als ik zoveel vragen stel en een beetje overkom als een giegelend schoolmeisje maar ben veels te nieuwsgierig en vind het hele concept van hardware programmeren veels te leuk :p

[ Voor 68% gewijzigd door Verwijderd op 13-11-2005 20:57 ]


  • naftebakje
  • Registratie: Februari 2002
  • Laatst online: 08:43
Wel, snor eens een datasheet op van de PCI bus, het zou wel eens kunnen dat je idd hierlangs de temperatuur kan aanvragen of uitlezen, maar er zal vrees ik niemand je werk in jou plaats doen. Hulp met programmeeralgoritmes of met electronica kan ik je gerust geven, maar ik ga niet in jou plaats zoeken.
Voor zover ik al gehoord heb van dat Rabbit geval moet het wel te doen zijn om op de PCI bus te interfacen, maar of die temp daadwerkelijk daar passeert...geen id.
(tip: wikipedia in engels zal je uitleg en links geven, het ziet er mij te doen uit)

Als de boer zijn koeien kust, zijn ze jarig wees gerust. Varkens op een landingsbaan, leiden nooit een lang bestaan. Als de boer zich met stront wast, zijn zijn hersens aangetast. Als het hooi is in de schuur, zit het wijf bij den gebuur.


  • tafkaw
  • Registratie: December 2002
  • Laatst online: 22-11 20:52
Idd, zoals naftebakje al zegt, ga alle gangbare interfaces bijlangs en kijk of het daar wordt aangeboden (ik gok van niet!) Wel is er de SM-bus die een hoop informatie biedt, misschien kun je daar mee werken?

Verwijderd

Zal even uitleggen waarom het NIET kan, als het je niet intresseerd waarom het niet kan -
en alleen maar wilt weten of het wel of niet kan, dan kan je nu stoppen met lezen. 8)


De temperatuur, kan alleen via de SMbus opgevraagd worden.
http://www.smbus.org/specs/index.html

deze bus is volgens mij te benaderen via ISA/PCI maar niet via de USB / seriele / parallele bussen.

(zoek ook eens iets op over SuperIO, main bridges - north/sourth mainbord componenten ed.)

En kijk ook is naar SpeedFan, speedfan leest onder windows je temps/RPM enzo uit (als je dat nog niet wist) ook kan speedfan je fansnelheid regelen. (kijk uit.. met wat je doet..)

'In order to find hardware monitoring chips and temperature sensors, SpeedFan needs access to several resources on your motherboard. Some of them can be found on ISA. All PCs have got ISA, even if there is no ISA slot. Some other chips are embedded in the SuperIO chip. Some others can be found on the SMBus. In order to access the 2-wire SMBus (System Management Bus) serial bus, SpeedFan needs to communicate with other devices. SpeedFan recognizes and properly accesses the following BUSes:
(bron: http://www.almico.com/forumbuses.php)

  • the12be
  • Registratie: November 2000
  • Nu online
klopt, laat SMBUS (of I2C, wat praktisch hetzelfde is op wat licencie geneuzel na) nu een bus zijn waar je met meerdere "masters" op kan zitten.

Wat je dus eventueel zou kunnen doen is je Rabbit core direct aan de smbus knopen, en op die manier de gegevens uitlezen.

Maar iets aan een willekeurige usb poort knopen, en dan temperaruren uitlezen gaat niet lukken.

Verwijderd

Topicstarter
Bedankt voor de info tot nu toe, zal dit ook eens aan m'n leraren vertellen, zullen ze vast wel intressant vinden! :) En ik ben zeer intressant in waarom het wel of niet kan ;)

Maar zoals ik 't nu begrijp en gelezen heb op de datasheets, staat de PCI/ISA bus aangesloten op de SM bus, welke in zijn beurt alle hardware info heeft zoals Temperatuur? Dus als ik die Rabbitcore op een PCI kaart zou brouwen dan moet 't in theorie lukken zolang ik de SMbus protocollen e.d. er maar in bak?

[ Voor 9% gewijzigd door Verwijderd op 14-11-2005 08:46 ]


  • naftebakje
  • Registratie: Februari 2002
  • Laatst online: 08:43
Verwijderd schreef op maandag 14 november 2005 @ 08:39:
Bedankt voor de info tot nu toe, zal dit ook eens aan m'n leraren vertellen, zullen ze vast wel intressant vinden! :) En ik ben zeer intressant in waarom het wel of niet kan ;)

Maar zoals ik 't nu begrijp en gelezen heb op de datasheets, staat de PCI/ISA bus aangesloten op de SM bus, welke in zijn beurt alle hardware info heeft zoals Temperatuur? Dus als ik die Rabbitcore op een PCI kaart zou brouwen dan moet 't in theorie lukken zolang ik de SMbus protocollen e.d. er maar in bak?
Inderdaad, het lijkt wel zo te zijn. Heel waarschijnlijk heeft je school al wel iets van I2c apparaten, probeer eerst eens je rabbitcore daarop aan te sluiten. Pas daarna zou ik gaan prutsen op de PC zelf, eerst met een (digitale) scoop nakijken of je de signalen ziet passeren (I2C is erg gemakkelijk om te ontcijferen, zoek een S bit, en je kan de bitjes zo aflezen).

Als de boer zijn koeien kust, zijn ze jarig wees gerust. Varkens op een landingsbaan, leiden nooit een lang bestaan. Als de boer zich met stront wast, zijn zijn hersens aangetast. Als het hooi is in de schuur, zit het wijf bij den gebuur.


Verwijderd

Topicstarter
Kan ik niet net zogoed die SMbus datasheet gebruiken? Aangezien het toch (bijna) hetzelfde is?

  • naftebakje
  • Registratie: Februari 2002
  • Laatst online: 08:43
Verwijderd schreef op maandag 14 november 2005 @ 20:10:
Kan ik niet net zogoed die SMbus datasheet gebruiken? Aangezien het toch (bijna) hetzelfde is?
Als jij erg low-cost aan SMbus devices kan geraken om mee te prutsen, zonder risico dat je een PC sloopt, ga dan gerust je gang.
Eenmaal je I2C hebt gemaakt, kan je alle protocollen aan (bij wijze van spreken), en van I2C is ook véél meer info te vinden denk ik.
Als (je vind dat) ik ongelijk heb, ga dan gerust je gang. Maar ik (als bachelor en bijna master elektronica) zou niet direct op een werkende bus in een PC gaan experimenteren.

Als de boer zijn koeien kust, zijn ze jarig wees gerust. Varkens op een landingsbaan, leiden nooit een lang bestaan. Als de boer zich met stront wast, zijn zijn hersens aangetast. Als het hooi is in de schuur, zit het wijf bij den gebuur.


  • j-a-s-p-e-r
  • Registratie: December 2004
  • Laatst online: 09-11 17:50
Wat je wel kan doen:

De I2C bus komt ook bij het geheugen uit je bord, op een van de pinnen van de dimmetjes. Daar kan je het gebeuren dus aftappen en weer verder verwerken. Moet je maar even op zoeken, is al wel een tijdje geleden maar het is zeker wel eens gedaan,

USB zonder driver die het daar naar toe stuurd kan je gerust vergeten. Helaas .

Verwijderd

Topicstarter
En de I2C bus zit ook standaard op elk moederbord neem ik aan? Namelijk de eerste keer dat ik iets hoor over deze bus, SMbus was oud nieuws voor me :)

En succes met je master opleiding! :*)

Verwijderd

Moet je maar even op zoeken, is al wel een tijdje geleden maar het is zeker wel eens gedaan,
http://www.andreas-lenz.de/casemods/de/max1668.php

  • naftebakje
  • Registratie: Februari 2002
  • Laatst online: 08:43
Verwijderd schreef op dinsdag 15 november 2005 @ 09:50:
En de I2C bus zit ook standaard op elk moederbord neem ik aan? Namelijk de eerste keer dat ik iets hoor over deze bus, SMbus was oud nieuws voor me :)
Als je de SMbus al kent, ga dan gerust je gang. I2C is een erg veel gebruikte bus (enorm veel gebruikt in tv's en dergerlijke consumentenelectronica), blijkbaar ook in élke computer, dus gemakkelijker om te leren kennen, maar je kent SMbus blijkbaar al.
En succes met je master opleiding! :*)
tnx

Als de boer zijn koeien kust, zijn ze jarig wees gerust. Varkens op een landingsbaan, leiden nooit een lang bestaan. Als de boer zich met stront wast, zijn zijn hersens aangetast. Als het hooi is in de schuur, zit het wijf bij den gebuur.


Verwijderd

Topicstarter
Ok hartstikke bedankt voor de informatie! Zal er werk van maken, als ik ooit iets in elkaar flans dan zijn jullie de eerste die het horen ;)
Pagina: 1