Fórum témák

» Több friss téma
Fórum » MSP430 mikrovezérlők
 
Témaindító: gomzito, idő: Ápr 21, 2006
Témakörök:
Lapozás: OK   11 / 139
(#) icserny válasza DecebaL hozzászólására (») Okt 22, 2011 /
 
Kétesélyes a dolog: vagy a csatlakozó adta meg magát (nagyítóval nézd körbe), vagy a TUSB3410 USB bemenete. Utóbbi árából legalább két Launchpad kártya kitelik, tehát cserével nem próbálkoznék...
(#) DecebaL válasza icserny hozzászólására (») Okt 22, 2011 /
 
Sajnos nem a csatlakozó adta meg magát.
(#) icserny válasza DecebaL hozzászólására (») Okt 22, 2011 /
 
Még egy tipp: Pályázz az MSP-EXP430FR5739 FRAM kártyára, azon is ugyanilyen programozó/nyomkövető van!
(#) neogeo2 válasza DecebaL hozzászólására (») Okt 22, 2011 /
 
Soros portként megjelenik? Ha igen, próbálkozhatsz egy firmware frissítéssel is.
(#) DecebaL válasza neogeo2 hozzászólására (») Okt 23, 2011 /
 
Sajnos soros portként sem jelenik meg.
(#) balux33 válasza DecebaL hozzászólására (») Okt 23, 2011 /
 
Szia.
Esetleg nem lehet hogy a TUSB3410-es mellé párosított EEPROM tartalmával lett valami? Ahogy nézem nincs bekapcsolva rajta a write protect, kísérletezéseim közben egy hasonló EEPROM -mal gyors táp le-fel kapcsolgatásnál volt hogy pár helyen átíródott a tartalma miközben csak olvasnia kellet belőle a UC-nek (azóta bekapcsolom az írásvédelmet ).
Azt nem tudom hogy publikus e a tartalma, de ha igen egy EEPROM égetővel megérne egy próbát szerintem.
(#) balux33 hozzászólása Okt 23, 2011 /
 
A hétvégén egy led-ekből kialakított 7-szegmenses kijelzőjű órát készítettem. A cél a sötétben messziről való olvashatóság volt, ezt sikerült is elérnem
Már csak az adapterről való üzemeltetést kellene megoldanom de nincs csak 5v-os stabilizátorom itthon. A fogyasztása 25mA-55mA között változik a világító szegmensek számától függően.
Teszek fel pár képet hátha érdekel valakit.
(#) neogeo2 válasza balux33 hozzászólására (») Okt 24, 2011 /
 
Sajnos a képen nem látom jól a dolgokat. Kíváncsi vagyok, hogy mit hogyan valósítottál meg.
Gondolom a középső (20 lábú) ic lehet a kontroller. A bal oldali az uln2003 (vagy valami hasonló)? A jobb oldali valami RTC IC?
Érdekelne még a programod is. Szerintem mindenki láthat benne jó ötleteket. Persze csak ha publikus...
Köszönöm!
(#) balux33 válasza neogeo2 hozzászólására (») Okt 24, 2011 /
 
Szia!
Hát sajnos csak telefonnal tudtam képeket csinálni.
A bal oldali IC egy 74hc595 shift regiszter a középső egy g2252 a jobb oldali pedig egy TI bq32000 RTC ic (kicsit kókány DIP átalakítóval ) .
A szegmenseket közvetlenül a 74hc595 hajtja meg, a digitek pedig multiplexelve vannak.
A négy gombbal pedig az órát lehet beállítani. (ezen a részen lehetne még javítani)
Egyelőre annyi a tapasztalatom hogy napsütésbe nem túl jól olvasható, kellene a LED-ek elé valami burkolat mint a gyári kijelzőknél.
A programot még megpróbálom kicsit rendbe szedni és utána felteszem.
Üdv!
(#) balux33 válasza balux33 hozzászólására (») Okt 24, 2011 /
 
Itt az ígért program.
Lehet nem a legszebben van megoldva de működik Ja és energiatakarékosságra sem törekedtem, úgyis hálózatról megy majd.
Használjátok egészséggel, ha kell valakinek a kapcsolási rajz lerajzolom mert most csak papíron van.

main.c
    
(#) DecebaL hozzászólása Okt 24, 2011 /
 
Találtam itthon egy USB -s midi cuccot ami csak a helyet fogja TUSB3410 van benne. Úgy döntöttem elviszem a haverhoz és megkérem hogy vegye ki belőle a TUSB3410 -et és tegye be a Launchpadba mivel én nem tudom kicserélni. Gondolom a TUSB3410 -ben is ketyeg valami firmware féleség amit majd bele kell tennem. Jól gondolom?
(#) icserny válasza balux33 hozzászólására (») Okt 24, 2011 /
 
Idézet:
„Ja és energiatakarékosságra sem törekedtem”
A LED kijelző mellett ennek nem is lett volna értelme.
(#) icserny válasza DecebaL hozzászólására (») Okt 24, 2011 /
 
Én úgy tudom, hogy a TUSB3410 ROM-jában csak a gyárilag beégetett bootloader van (egyedülálló módon USB-ről is tud bootolni az MCU, ha nincs külső EEPROM mellette), s a betöltött program valójában RAM-ban fut.
(#) balux33 válasza icserny hozzászólására (») Okt 24, 2011 /
 
Hát éppen ezért nem is próbálkoztam

A TUSB3410 témához szólva: Akkor mihez kell a launchpadon a külső EEPROM ? Én azt hittem abban van a bootloader.
(#) DecebaL válasza icserny hozzászólására (») Okt 24, 2011 /
 
Az jó ha nem kell bele firmware, remélhetőleg a külső EEPROM tartalma ép maradt, a csere után kiderül.
(#) icserny válasza balux33 hozzászólására (») Okt 24, 2011 /
 
Nem néztem utána, hogy mekkora a kapacitása, de lehet pl. abban van a firmware (ez nem tévesztendő össze az emulátor firmware-rel!).

Idézet:
External Memory Case

After reset, the TUSB3410 is disconnected from the USB because the pullup resistor CONT bit is cleared. The TUSB3410 checks the I2C port for the existence of valid code, if it finds valid code, it uploads the code from the external memory device into the RAM program space. Once loaded, the TUSB3410 connects to the USB by setting the CONT bit and enumeration and configuration are performed. This is the most likely use of the device.”
(#) DecebaL hozzászólása Okt 24, 2011 /
 
DS18B20 driver most már tökéletesen működik végre sikerült minden hibát javítanom.
(#) 4go hozzászólása Okt 24, 2011 /
 
Sziasztok!

Nemrég kezdtem el ismerkedni a Lauchpad rejtelmeivel icserny leírása alapján. Az LCD vezérléssel próbálkozom, ahol az alap kapcsolás és program az MSPG2231-el működött is.
Rendeltem egy MSPG2152-t a 20-láb miatt és kicseréltem az IC-t a Lauchpad-ben. Új projekt, új beállítás, stb és az LCD működik.
De! Azt szeretném elérni , hogy az LCD-t teljes egészében a P2 portról vezéreljem. Ha az LCD RS és E vezérlést áttettem a P2 port 0 és 1-es lábára, akkor még mndíg jó működik minden.
  1. #define LCD_RS       P2OUT_bit.P0
  2. #define LCD_RS_DIR   P2DIR_bit.P0
  3. #define LCD_E        P2OUT_bit.P1
  4. #define LCD_E_DIR    P2DIR_bit.P1

Azonban, ha a P2 portra állítom az LCD D4-D7 lábait P2 2-5 lábai, akkor már nem működik az LCD.


  1. /* LCD port és vezérlő bitek megadása  */
  2. #define LCD_PORT     P2OUT
  3. #define LCD_PORT_DIR P2DIR
  4. #define LCD_MASK     BIT5+BIT4+BIT3+BIT2
  5. #define LCD_RS       P2OUT_bit.P0
  6. #define LCD_RS_DIR   P2DIR_bit.P0
  7. #define LCD_E        P2OUT_bit.P1
  8. #define LCD_E_DIR    P2DIR_bit.P1
  9. .
  10. .
  11. .
  12.  
  13. int main(void) {
  14.          WDTCTL = WDTPW + WDTHOLD;           //watchdog letiltása
  15.          P1DIR |= BIT0;
  16.          P2DIR |= BIT0; // Ezzel egészítettem ki
  17.          lcd_init();
  18. .
  19. .
  20. .


Mit rontottam el?
Ha egy kis időtök van, kérem segítsetek továbblépnem.
Előre is köszönöm.

István
(#) icserny válasza 4go hozzászólására (») Okt 24, 2011 /
 
Idézet:
„Mit rontottam el?”
Csak találgatni tudjuk, mert a lényeget nem másoltad be: hogy néz ki az lcd_write() függvényed? Megfelelő helyiértékre shifteled az adatbiteket?

Bölcsebb volna az alsó félbájtra tenni az adatvonalakat, s a fölötte levő 2 bitre a vezérlő vonalakat!
(#) 4go válasza icserny hozzászólására (») Okt 24, 2011 /
 
Azért csak ennyit idéztem, mert a többi részletben nem módosítottam:
  1. void lcd_write(uint8_t val, uint8_t cmd) {
  2.          LCD_RS = cmd;
  3.          ChangeBits(LCD_PORT,(val&0xF0),LCD_MASK);
  4.          lcd_toggle_E();
  5.          ChangeBits(LCD_PORT,((val&0x0F)<<4),LCD_MASK);
  6.          lcd_toggle_E();
  7.          __delay_cycles(1000);
  8. }


A P2.6-7-ig szerettem volna meghagyni a kristálynak, ezért választottam ezeket a portokat.
(#) icserny válasza 4go hozzászólására (») Okt 25, 2011 /
 
Ezzel az a probléma, hogy ez a felső 4 bitbe állítja be az adatokat, neked meg a középső 4 bitbe kellene.

Próbáld meg így:
  1. void lcd_write(uint8_t val, uint8_t cmd) {
  2.   LCD_RS = cmd;
  3.   ChangeBits(LCD_PORT,((val&0xF0)>>2),LCD_MASK);
  4.   lcd_toggle_E();
  5.   ChangeBits(LCD_PORT,((val&0x0F)<<2),LCD_MASK);
  6.   lcd_toggle_E();
  7.   __delay_cycles(1000);
  8. }


Az általam tegnap javasolt bekötés esetén pedig így módosul a két kritikus sor:
  1. ChangeBits(LCD_PORT,((val&0xF0)>>4),LCD_MASK);
  2. ChangeBits(LCD_PORT,(val&0x0F),LCD_MASK);
(#) 4go válasza icserny hozzászólására (») Okt 25, 2011 /
 
Nagyon köszönöm a segítséget, este kipróbálom.
(#) neogeo2 válasza balux33 hozzászólására (») Okt 25, 2011 /
 
Én is hasonlót építgetek, csak sajnos kevés időm van mostanában. Ja és most még nem msp van benne, a végleges változatban az lesz. A kijelző meghajtása 2db 74hc595-el van meghajtva (7 szegmens+pont+közepső kettőspont villogása+digit kiválasztás multiplexhez). Így 3 lábbal el van intézve kompletten a kijelzés (még simán lehetne másodperckijelzést is mellérakni, van még üres láb az 595-ön). RTC-t nem tervezek bele...

Köszönöm a programot, majd megpróbálom értelmezni.

A kapcsolásról még annyit szeretnék tudni, hogy a 74hc595-öt a 3.6V tápról hajtod? Vagy esetleg 5V-ot kap? A másik, hogy az 595 egy pinje 25mA-t tud, de összesen 35mA lehet. Ennél az említett 55mA kicsit több. Bírja ezt az 595?

oram.jpg
    
(#) balux33 válasza neogeo2 hozzászólására (») Okt 25, 2011 /
 
Az MSP feszültségéről jár a 74hc595-is, az ST-s datasheet-ben ha jól értelmezem 35mA-t ír kimenetenként és 70mA-t összesen, eddig még nem volt vele gond (majdnem 2 napja megy folyamatosan).
Az RTC csak azért került be mert volt itthon, és a program is egyszerűbb lett szerintem ja és pontosabban is jár.
Nem is rossz ötlet hogy a digit kiválasztást is 595-el oldottad meg.
Lehet csinálunk egy nagyobbat az osztálytermünkbe de ott már kell valami tranzisztoros meghajtás a szegmensekhez mert tényleg a határain mozog az 595.
(#) DecebaL válasza balux33 hozzászólására (») Okt 25, 2011 /
 
Hát a pontossággal nem értek veled egyet, mert a kvarc -tól függ a BQ pontossága. Csak ha nem használtál valami spéci hőkompenzált időalapot. Úgyanolyan pontos, ha irsz egy egyszerű RTC rutint, sőt lehet, hogy pontosabb lesz mint RTC Ic-vel..
(#) neogeo2 válasza balux33 hozzászólására (») Okt 25, 2011 /
 
A pontosság tekintetében teljesen igaza van Decebal-nak.
Egy RTC előnyének talán az mondható, hogy tud dátumot és ébesztést is. Ez tényleg leegyszerűsíti a programot. Ill. még rá lehet rakni egy gombelemet is, így áramszünet után is pontos marad a óra.
(#) Spumifater hozzászólása Okt 28, 2011 /
 
Ahogy böngésztem a ti.com -on, találtam valamit ami szerintem mindenkit érdekelhet.
Ez egy I/O expander. Minta is kérhető belőle 5 db. I2C vonalon lehet kommunikálni vele.
Feltöltöttem az adatlapját.


Tényleg! Ha van valaki, aki keni-vágja az I2C-t szépen kérem magyarázza már el a használatát kissé szájbarágósan. Tudom Google a barátunk, így keresgéltem, és találtam is, csak angol a többség. Kissé hadilábon állok az angollal, bár nem teljesen kuka. Köszönettel venném.
Annyit kisilabizáltam már, hogy 3 vezeték kell hozzá, 1 GND 1, SCLK, és 1 SDA. Igazából a kommukikáció érdekelne. :help:

pcf8574.pdf
    
(#) Spumifater válasza Spumifater hozzászólására (») Okt 28, 2011 /
 
Mivel csak 1 db Launchpad-om van valahogyan ki is kellene próbálnom. Lehetséges-e PC-vel a tesztje?
(#) vilmosd válasza Spumifater hozzászólására (») Okt 28, 2011 /
 
A konyvespolcon a PIC alkonyvtarban talalsz magyar leirast.
(#) icserny válasza Spumifater hozzászólására (») Okt 28, 2011 /
 
Ajánlott irodalom:
- Az I2C busz és használata
A gyári példaprogramok közül esetleg ezeket nézegesd:
  1. msp430g2x21_usi_06.c              I2C Master Receiver, single byte
  2. msp430g2x21_usi_07.c              I2C Master Transmitter, single byte


Ha jól nézem, ennek az IC-nek két bájtot kell küldeni: egyik a 7-bites slave cím és az R/W bit, a másik az adat (ha az R/W bit nulla volt). A kiküldött adat megjelenik a P0..P8 lábakon.

A másik lehetőség: A cím kiküldése R/W=1 mellett, majd egy bájt fogadása. Ekkor beolvasod az IC P0..P8 lábainak állapotát.

Az A0..A2 címvonalak. Mivel ezek állapota a slave cím utolsó három bitje, lehetőség van arra, hogy több ilyen IC-t felfűzz a buszra, más-más címbeállítással. Így lehet az MSP430G2231-nek akár 8 újabb I/O portja...
Következő: »»   11 / 139
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem