Fórum témák
» Több friss téma |
Sziasztok.
Segitségre lenne szükségem. Van egy 16F877a tipusu PICem és egy MAX127 ADC-m ami I2C- n kommunikál. Programozáshoz a mikroBASIC nevü progit használom. Az a baj, hogy ami a doksijában van az nekem kevés ahoz hogy müködö programot tudjak öszehozni. Az a kérdésem, hogy valaki használja e az emlitett programot rajtam kivül? Másik kérdés ismeri e valaki a MAX127-et? Kerestem a neten de nem találtam olyan programot ami segitett volna. Köszi a segitséget...
Tudom nem épp a megoldás, de miért nem jó az az AD ami benne van a picbe ?
Azért mert csak 10 bites és az kevés...
világos, melyiknek a doksiában van kevés info ?
Szóval a MAX127-nek van egy cime ami 0101xxx, az elsö négy bit az fix az x az lehet 0 és 1 is, nálam 0101000x, ez az utolsó x azt jelenti, hogy irni vagy olvasni szeretném az ic-t. Irás 0, olvasás 1.
Aztán be kell állitani, hogy melyik csatornát szeretném használni a 8 -ból ez három bit, aztán egy bit, hogy 5 vagy 10 volt a méréshatár, a következő bit hogy 0 - 5, 0 - 10 vagy -5 - 5, -10 - 10 volt a bemenet, ezután még két bit ami az energia takarékos mód beállitásához kell. És még az egész előtt egy 1 ami a start bit. Valahogy igy: 100000000, ez most a 0 csatorna, 0 - 5 volt beálitása. És most az a kérdés, hogy ezt miként tudom megmondani az ic-nek. A lényeg, hogy Basic, pascal vagy C nyelven legyen. Mondjuk az első kettőnek jobban örülnék Ha látnék egy müködő mintát akkor már elboldogulnék. Köszi
Akkor, ha jól értem az I2C kommunikációval van baj ? Sajna csak asm és C be vagyok otthon, de alighanem a fordítók honlapján találsz mintapéldát az I2C használatára... keress !
I2C_Init(400000) ' Initialize full master mode
I2C_Start ' Issue I2C start signal I2C_Wr($A2) ' Send byte via I2C I2C_Wr(01010000) ' Send byte via I2C I2C_Wr(10000000) I2C_Stop ' Issue I2C stop signal I2C_Start ' Issue I2C start signal I2C_Wr($A2) ' Send byte via I2C I2C_Wr(01010001) I2C_Repeated_Start ' Issue I2C signal repeated start k = I2C_Rd(1) ' Read the data I2C_Stop ' Issue I2C stop signal Na valahogy igy próbáltam de nem megy. Esetleg ötlet? Ez egy EEPROM iró progiból lett kinézve, de valahogy nem tuti.
Szia
A harmadik sorban a byte amit elsőként küld a buszra($A2) az az EEPROM címe. Ugyan ez a cím szerepel az forráskód második felében is ahol olvas az EEPROM ból. Szóval az eszköz címet keresd ki az ADC adatlapjából. A felső négy bitje fix a címnek.
Szia
Az rendben, hogy a felső négy bit fix. De ugy azt is kell használni? felső négy bit: 0101, beállitott cim 000, a nyolcadik, hogy irni vagy olvasni akarom: 0 ir 1 olvas A cim 01010000 ha irom, 01010001 ha olvasom. Hexaban 50 és 51, ha jól gondolom. I2C_Init(100000) ' Initialize full master mode I2C_Start ' Issue I2C start signal I2C_Wr($50) 'ADC address I2C_Wr($80) 'A csatorna kiválasztása, bemenő feszültség beállitása 10000000 I2C_Stop ' Issue I2C stop signal Delay_us(300) while TRUE I2C_Start ' Issue I2C start signal I2C_Wr($51) ' Send byte via I2C k = I2C_Rd(0) ' Read the data l = I2C_Rd(1) I2C_Stop ' Issue I2C stop signal De igy sem jó. Az utoljára beleirt cimet olvassa ki! Tuti rlrontok valamit, de nem birok rájönni, hogy mit.
A mikroBASIC-et nem ismerem, de nem kell külön kezelni mikor az ADC ACK jelet küld? Pl. a cím meg a controll byte kiküldése után.
Ha jól tudom akkor nem. Az I2C_Rd(x) nél az x lehet 1 vagy nulla és attol függ, hogy az ACK-t figyeli vagy sem.
Más ötlet?
Én kifejezetten az írás esetére gondoltam, ott a PIC ben a megfelelő bitet kell figyelni de lehet h az I2C_Wr() figyeli ezt, nem tudom. Olvasásnál viszont a PIC nek kell ACK ot ill. NACK ot küldenie minden bájt vétele után. Sztem a program helpjében benne kéne lennie h az I2C kezelés pontosan h valósul meg.
Helló
Te hol vettél max127-et. Én is akarok venni egyet. Ha tudok venni, akkor irok hozzá példa programot neked is(de csak asm-ben). Vagy ha vki tud más adc-t ajánlani helyette az is jó. A lényeg az, hogy 12-14bites 8 csatornás és i2c-legyen és lehetőleg olcso és még kapni is lehessen.
Sziasztok!
Végül is a MAX127-el valaki csinált-e mérést? Amennyiben igen,akkor érdekelnének a tapasztalatok. Én egy munka kapcsán most "szemezgetek" vele!
Nem tudom mennyire akarsz ez mellett dönteni, egy pillanatra nekem is felkeltette a figyelmemet, aztán megnéztem az árát, pl a RET-nél 6 487+áfa aztán le is nyugodtam egyből... talán választok valamit helyette a chipcad-nél microchip AD 12 bit I2c vagy soros cuccaiból...
Az árral nekem is problémám van.
Próbáltam más forgalmazónál is megnézni,de eddig nem sok sikerrel. Ami nekem fontos lenne: 12 bit 8 csatorna és I2c vagy soros kiolvasás. Szétnézek én is a chipcad-nél. Köszi!
TLC2543? 11 csatorna, 12bit, soros kiolvasas.
RET-nel 2300Ft brutto. Eppen van is 1-2 nekem...
Talán ez is megfelelne. TLC2543 12 bit 10 bemenet serial ki... ezt már használtam, illetve javításra csak, az ára nem volt veszélyes... Talán a Lomex-nél is van...
|
Bejelentkezés
Hirdetés |