I2C adress för MCP4728 beter sig konstigt?

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 45304
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: I2C adress för MCP4728 beter sig konstigt?

Inlägg av TomasL »

Jag får inte det fungera med konstruktörens (mcp4728_init) adress.
Hur anropar du funktionen, vilka argument använder du?
DanielM
Inlägg: 2194
Blev medlem: 5 september 2019, 14:19:58

Re: I2C adress för MCP4728 beter sig konstigt?

Inlägg av DanielM »

Jag har läst databladet. Det vore intressant och läsa där Microchip säger att man måste bitbanga här.

Kod: Markera allt

I2C_HandleTypeDef hi2c1;
uint8_t address = 0x0;
mcp4728_init(&hi2c1, address);
mcp4728_analogWrite(4095, 4095, 4095, 4095);
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 45304
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: I2C adress för MCP4728 beter sig konstigt?

Inlägg av TomasL »

Jag har läst databladet. Det vore intressant och läsa där Microchip säger att man måste bitbanga här.
Det står inte att du måste bitbanga, men om du har någon form av kunskap om hur I2C fungerar, (och specifikt hårdvarustödet i processorn, samt hur funktionerna är tänkta att användas,) och om du sedan läser sektionen om hur man läser adressen, så förstår du att det inte går att lösa med vare sig den i processorn inbyggda hårdvaran eller standard i2c funktioner.
Det är extremt tydligt hur man skall göra.
DanielM
Inlägg: 2194
Blev medlem: 5 september 2019, 14:19:58

Re: I2C adress för MCP4728 beter sig konstigt?

Inlägg av DanielM »

Du tänker säkert på angående LDAC pinnen som man måste trimma in parallellt?
Skärmklipp.PNG
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 45304
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: I2C adress för MCP4728 beter sig konstigt?

Inlägg av TomasL »

Ja LDAC måste gå låg efter mellan åttonde och nionde klockcykeln i den andra byten, den kontrollen har du inte med vare sig HW eller biblioteksfunktionerna, du vet överhuvudtaget inte, och det finns inget sätt i processorn att få fram när åttonde klockan gått iväg.
Just därför måste du bitbanga, dvs emulera alla I2C funktioner i mjukvara, pulsa klockpinne och datapinne, och när 16nde klockan gått ut sätta LDAC till låg i 8 klockpulser och därefter sätta den hög.
Om man inte gör exakt så, så får man ingen adress, enkelt eller hur.
Finns ingen I2c-master hårdvara i världen som klarar detta, och följaktligen inga mjukvarufunktioner för detta.

:bravo: du börjar till slut faktiskt läsa databladet, men du verkar inte förstå det.
DanielM
Inlägg: 2194
Blev medlem: 5 september 2019, 14:19:58

Re: I2C adress för MCP4728 beter sig konstigt?

Inlägg av DanielM »

Men varför finns det vissa bibliotek på GitHub som hanterar detta chip med I2C?
Jag har ALLTID läst databladet. Jag laddar ju upp triljoners med bilder här.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 45304
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: I2C adress för MCP4728 beter sig konstigt?

Inlägg av TomasL »

Men inget av de biblioteken kan läsa eller programmera adressen.
Eftersom det inte går med I2C hårdvara.
Användarvisningsbild
sodjan
EF Sponsor
Inlägg: 43178
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping
Kontakt:

Re: I2C adress för MCP4728 beter sig konstigt?

Inlägg av sodjan »

Så vitt jag minns av I2C så är adressen i princip fast i hårdvaran på I2C kretsar.
Sen kan man ofta välja på några alternativa adresser med I/O pinnar.

Så, *varför* behöver man läsa ut adressen?
Användarvisningsbild
rvl
Inlägg: 5818
Blev medlem: 5 april 2016, 14:58:53
Ort: Helsingfors

Re: I2C adress för MCP4728 beter sig konstigt?

Inlägg av rvl »

Ett sätt är att brute force gå igenom alla adresser och se var/om man får svar.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 45304
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: I2C adress för MCP4728 beter sig konstigt?

Inlägg av TomasL »

Denna krets är lite speciell, eftersom den saknar fysiska adresspinnar, och om man skall ha fler än en på en i2c-lina, behöver man programmera in dess adress, och om man köper dem föradresserade så behöver man kunna läsa ut adressen på den för att kunna använda den.

Just detta med att man har implementerat en metod för läsning/skrivning av enhetens adress som inte går att göra med normal hårdvara, förhindra att man av misstag skriver över den i kretsen lagrade adressen.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 45304
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: I2C adress för MCP4728 beter sig konstigt?

Inlägg av TomasL »

rvl, ja naturligtvis, men det blir ju lite svårt att veta vilken enhet som är vilken om man har flera.
Sedan är det ju så att man behöver en LDAC lina till varje krets på linan, om man vill kunna läsa/sätta adressen i dem.
Användarvisningsbild
sodjan
EF Sponsor
Inlägg: 43178
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping
Kontakt:

Re: I2C adress för MCP4728 beter sig konstigt?

Inlägg av sodjan »

Men, var det fler än en i detta fall?
Annars är det väl bara att köra på default adressen?
Daniel, varför behöver du läsa adressen? Om du inte
innan har ändrat adressen så lär den ju vara = A0.
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 45304
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: I2C adress för MCP4728 beter sig konstigt?

Inlägg av TomasL »

Ja exakt, har man bara en, så finns det ingen anledning att läsa adressen.
ToPNoTCH
Inlägg: 4891
Blev medlem: 21 december 2009, 17:59:48

Re: I2C adress för MCP4728 beter sig konstigt?

Inlägg av ToPNoTCH »

Jag begriper inte varför du inte bara adresserar chippet som databladet säger.

TomasL har redan angett vilken adress du skall läsa respektive skriva på.

Nu har du hakat upp dig på att din "adress test snurra" inte funkar, vilket är irrelevant.
DanielM
Inlägg: 2194
Blev medlem: 5 september 2019, 14:19:58

Re: I2C adress för MCP4728 beter sig konstigt?

Inlägg av DanielM »

Oavsett vad för adress jag använder, så måste jag ändå bigbanga? Eller hur?
Konstigt chip!
Skriv svar