Atmel met Philips I2C 8 bit A/D, D/A converter (PCF8591)

Ik ben bezig om met een Atmel AT90S8535 microcontroller een PCF8591 (een

8 bits A/D, D/A) van Philips aan te sturen maar het lukt niet echt. Wat mij wel verbaast is dat er wel iets uit komt. Wanneer ik een waarde naar de PCF stuur (maakt niet uit welke zolang het geen nul is) dan wordt de uitgang gelijk aan 0,4 Volt. Wanneer ik een nul stuur wordt de uitgang wel 0 volt. Ik krijg geen andere waarden dan 0 Volt of 0,4 Volt want bij 255 zou hij ongeveer 5 volt moeten geven. Zoals je al raad geeft hij dan dus ook 0,4 volt. Dat is het probleem

Ff beschrijving van de hardware: 2 pennen van de microcontroller zitten via 10K ohm pullups naar de +5volt. Vanaf deze 2 datalijnen gaan er 2 weerstanden van 330 ohm naar de PCF8591. De spanningen op deze datalijnen heb ik gemeten en zijn 0 volt of 5 volt. Ik heb om te testen de voeding ook gebruikt als referentiespanning zonder filter, etc. De voeding komt rechtstreeks uit m'n pc. De PCH8591 is als volgt aangesloten: Pin1 n/c Pin2 n/c Pin3 n/c Pin4 n/c Pin5 Gnd Pin6 Gnd Pin7 Gnd Pin8 Gnd Pin9 Sda (via een 330 ohm weerstand naar de microcontroller en via een

10 Kohm weerstand naar +5Volt) Pin10 Scl (via een 330 ohm weerstand naar de microcontroller en via een 10 Kohm weerstand naar +5Volt) Pin11 n/c Pin12 Gnd Pin13 AGnd Pin14 +5 Volt Pin15 Uitgang Pin16 +5 Volt

Bascom testprogramma: Config I2cdelay = 255 Config Portb = Output Const Badreswrite = &H90 (adrespinnen hangen aan de Gnd) Const Badresread = &H91

Dim Bpcfdata As Byte I2CINIT Do I2cstart I2cwbyte Badresread I2crbyte Bpcfdata , Ack I2crbyte Bpcfdata , Nack I2cwbyte Bpcfdata I2cstop

Bpcfdata = 50 Wait 2 I2cstart I2cwbyte Badreswrite I2cwbyte Bpcfdata I2cstop

Wait 2 Bpcfdata = 0 I2cstart I2cwbyte Badreswrite I2cwbyte Bpcfdata I2cstop Wait 2 Loop En

Datasheets:

formatting link
formatting link

--
Remove -- when u reply
Reply to
Ivo Vermeulen
Loading thread data ...

Hallo Ivo,

Heb je de uitgang onbelast gemeten of 'hangt' er nog meer achter? Heb je ook routines om de ad-ingangen te testen en werken die dan wel? Mogelijk is die DA-output (of het hele ic) defect. Om de DA te kunnen gebruiken moet je BIT 6 in de controle-byte gezet zijn, heb je hieraan voldaan?

Grtz, Emile.

Reply to
emile

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.