Hallo allemaal,
ik probeer, zonder succes, een pic18 serie microcontroller te interfacen aan een TCN75A temp sensor. Beide zijn i2c compatibel, en de pic heeft "zelfs" een i2c hardware implementatie aan boord.
Nu denk je vast (wat ik ook dacht), doen we even. gewoon wat instructies naar de I2c (MSSP) module sturen en gaan met die banaan.
Ik ben nu op het punt dat ik allerlei andere dingen begin te verdenken, en niet meer mezelf qua code. Ongetwijfeld niet waar, aangezien de ervaring leert dat ik eerder fouten maak dan de ontwikkelaars van Microchip. Dus HELP!
Ik heb een minimaal programma geschreven, dat gebruik maakt van de standaard library van microchip, en dat bij herhaling een aantal bits over de lijn stuurt via de I2C interface (de tweede).
Linksom of rechtsom moet ik iets van reactie van de mc zien, ik heb mijn logic analyser eraan gehanden en zie HELEMAAL NIETS !
ik niet begrijp. Als ik een dom programma schrijf dat een poortje 1 en dan weer nul maakt continue zie ik dit keurig op de LA. Het ligt dus niet aan de LA, nog aan de aansluiting. Condlusie, het moet aan de code liggen.
Iemand suggesties wat ik fout doe ? Hulp word gewaardeerd natuurlijk ! (code volgt) dank !
Martijn.
#include "p18f97j60.h"
#include "stdlib.h"
#include "i2c.h"
#pragma config WDT=OFF, FOSC2=ON, FOSC=HSPLL, ETHLED=ON
#pragma config XINST=OFF
void main (void)
{
OSCTUNE=0X00;
while (1)
{
OpenI2C2(MASTER, SLEW_OFF);
IdleI2C2();
StartI2C2(); //start conditie,
IdleI2C2();
WriteI2C2(0b10010000); //address
IdleI2C2();
WriteI2C2(0b00000001); //config
IdleI2C2();
WriteI2C2(0b01100000); //settings
IdleI2C2();
StopI2C2();
}
}
@Fredjuhh, tussen code tags.... 
@Fredjuhh (2), jij bent ook niet snel tevreden he.....
)
Fredjuhh
"Ben nog een N00B, maar dat is al aan het veranderen ;)
(Zet je code dan even tussen code tags
)Ja, zo hoort het 
En als je een blink a led doe? Reageerd hij dan wel? Gewoon even om hardware matig uit te kunnen sluiten. Verder heb ik nog geen bal verstand van deze taal 
EDIT, Ja, Zo dus 
(rest verwijdert i.v.m. topic vervuiling
)
[Bericht gewijzigd door Fredjuhh op (62%)]
Yep, ding draait als een trein. om gek van te worden...
Op 29 oktober 2010 23:51:49 schreef Fredjuhh:
(Zet je code dan even tussen code tags)
En als je een blink a led doe? Reageerd hij dan wel? Gewoon even om hardware matig uit te kunnen sluiten. Verder heb ik nog geen bal verstand van deze taal
i2c heeft pullup weerstanden nodig op sda en scl (bijvoorbeeld 10k van naar je voedingsspanning), heb je die?
In de datasheet, hoofdstuk 19.4 staat "The user must configure these pins as inputs by setting the TRISC<4:3> or TRISD<5:4> bits." Heb je dat gedaan?
In een design wat ik heb doe ik het volgende bij het opstarten: handmatig zet ik de datalijn hoog en gooi ik er 100 pulsen op de kloklijn uit om alle slaven in het zelfde ritme te laten lopen. Daarna werkt alles perfect.
mr.stijntje
Een banaan schillen met een vork is slimmer dan een cactus pellen met een afwaskwast. ©Graafvaag
Op 30 oktober 2010 10:33:21 schreef Springuin:
i2c heeft pullup weerstanden nodig op sda en scl (bijvoorbeeld 10k van naar je voedingsspanning), heb je die?
En deze moeten ook niet te groot zijn, denk aan 2-3k of zo. Zeker geen 10-15k.
rew
four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
Ik zie je geen i2c frequentie gezet worden... Hoe hard gaat die lib "by default"? Sommige chips weigeren bij > 400kHz.
Ok,
ik heb pull ups, 1K. Het is trouwens een development board van olimex
(schema:http://www.olimex.com/dev/images/PIC/PIC-GSM-sch.gif).
En inderdaad had ik geen i2c frequentie, de bedoeling is dat het ding op 100Khz loopt, en dat is standaard. Natuurlijk uitgeprobeerd of het hielp om het alsnog in te stellen.
En nu de ontknoping, waar ik idd in de mist ben gegaan.
Volgens schema zit er op het development board een TCN75A temp sensor van microchip. Zitten de SDA en SCL lijnen netjes waar ze moeten zitten, en zitten de pullup weerstanden ook correct.
Ten einde raad wilde ik de scoop rechtstreeks op de pennen van de temp sensor zetten, om te kijken welk signaal nu werkelijk doorkwam.
Zoeken, en zoeken naar het ding (ze zijn klein tegenwoordig he...
Laat het bord in kwestie nu afgeleverd zijn ZONDER TCN75A geassembleerd ! En dan kan je natuurlijk heeeeeeeeeeeel lang wachten op een startconditie.
Stom, tja, controleer jij een dev board op zijn compleetheid als je hem binnenkrijgt ? (ik vanaf nu wel dus). Heb een vraag bij olimex uitstaan of ik het niet begrepen heb, of dat het ding er gewoon op hoort te zitten. De afbeelding van de print op hun site laat ook geen TCN75A zien, dus ik vermoed dat ik niet helemaal bij ben.
Dank voor de suggesties mensen, farnell bezorgt morgen een TCN75A.
groets,
Martijn.
traffic lights
als de lamp het doet, is het antwoord goed!!!
Op het schema staat bij die tcn75a => (NA)
Dit staat hier voor Not Assembled, daaraan had je het dus kunnen merken. Dit staat trouwens bij nog wel meer componenten!
Ter info in andere schema's kan je ook wel NE tegenkomen wat staat voor Not Equipped
AHA !
dat wist ik dus niet. Inderdaad staat het ook bij meerdere componenten. Zo lijkt er plek te zijn voor een power-on reset schakeling, c'tjes voor eventueel over de simkaart heen.
afijn, conclusie: iets geleerd, case closed.
dank traffic lights.
free_electron
Silicon Member
Professioneel ElectronenTemmer - siliconvalleygarage.com - De voltooid verleden tijd van 'halfgeleider' is 'zand' ... US 8,032,693 / US 7,714,746 / US 7,355,303 / US 7,098,557 / US 6,762,632 / EP 1804159 - Real programmers write Hex into ROM
enne, sedert wanneer schrijft men code voor i2c die niet checkt of er wel een acknowledge komt ? als er geen ACK komt dan is het device er niet.
Deze simpele test had u het gek zijn kunnen besparen.