Fórum témák

» Több friss téma
Fórum » MikroPascal + microchip HID bootloader
Lapozás: OK   1 / 2
(#) roland79 hozzászólása Nov 18, 2009 /
 
Sziasztok!
Sikeressen beegettem a HID bootloadert egy 18F4550-be. MPLAB-bal sikerult is egy led villogtato progit irni es HIDBootloader progival bele tolteni. MPLABhez van egy linker file, ami, ha jol ertelmezem, eltolja a foprogram kezdetet, ami igy nem irja felul a bootloader progit. MikroPascal-ban hogy kell ezt megoldani?
(#) ha1drp válasza roland79 hozzászólására (») Nov 18, 2009 /
 
Ez egy másik út, de érdemes megpróbálni:
Bővebben: Link
(#) Hp41C válasza roland79 hozzászólására (») Nov 20, 2009 /
 
Szia!

A uPascalban is lehetőség van az org direktíva használatára:
  1. procedure prop(...); org $2000;

Amivel - a leírás 121. oldala szerint - az eljárás kezdőcímét lehet beállítani. A program kezdőcíme is beállítható vele:
  1. program ppp;
  2. orgall( 0x2000);
  3. begin
  4. ....
  5. end.


A uChip HID bootloader a program kezdőcítét 0x2000 -re a megszakítási rutinokat a 0x2008 ill. 0x2018 címekre irányítja át.

Szia
(#) roland79 válasza Hp41C hozzászólására (») Nov 20, 2009 /
 
Kozben rengeteget turtam a netet es arra kellet hogy rajojek, hogy ez igy nem fog menni...
A helyzet a kovetkezo: igaz hogy atlehet iranyitani az emlitett cimeket az org es orgall segitsegevel, de ha egy kicsit bonyolultab progit irsz rogton gond lesz. Megpedig azert mert a mikroelektronikas bootloaderek ugy vannak kitalalva, hogy a bootloader a PIC memoriajanak a vegen helyeszkedik el es igy atiranyitasra nincs szukseg. Ezert ha az altaluk megirt rutinokat hasznalod, azok rosz cimekre fognak hivatkozni, ha pl a uChipes HID bootloader miatt eltolod a programod kezdocimet...
BEFORE, TARGET PIC ===================
goto main_bootloader
.
FREE SPACE
.
.
main_bootloader:
.
BOOTLOADER PROGRAM
.
"start_program"_label
.
end_of_ROM


BEFORE, PIC without bootloader
=========================
goto main_L
.
main_L:
USER PROGRAM L
.
.
end_of_user_program_L
.
FREE SPACE
.
.

end_of_ROM





AFTER BOOTLOAD, TARGET PIC
===============================
goto main_bootloader ----------->
. |
------------------> main_L: |
| USER PROGRAM L |
| . |
| . |
| end_of_user_program_L | (1)
| . |
| . |
| . |
| . |
| . |
(4)| . |
| main_bootloader: <------------
| .
| .
| BOOTLOADER PROGRAM (2)
| .
| .
| .
| "start_program"_label
<----------------- goto main_L (3)
.
end_of_ROM

Igy mukodik a mikroelektronikas bootloader.

Nagyon az elejen vagyok ennek a PICes dolognak...ha netan nem jol latom a dolgokat akkor javitsatok ki!
Elore is koszonom.
(#) Hp41C válasza roland79 hozzászólására (») Nov 20, 2009 / 6
 
Szia!

A programot fordítsd le pl. 0x2100 -zal eltolva, ekkor minden eljárás, konstans a kezdőcím fölé kerül. Le tudod ellenőrizni, ha az MPlab-ba beimportálod a uPascal-ból fordított hex-et.

A HID boot loader aktivizálásához tartozik valami kódrészlet (ez egyik bemenet valamilyen szitre kapcsolása). A program kezdetén (0) erre a kódra kerül a vezérlés. Ha a boot loadert aktívizáljuk, akkor csak a letöltés végén kerül vissza a vezérlés a 0-ra.
Ha nem aktivizáltuk, a HID boot loader a 0x2000 címre ugrik. Itt kezdődhet a uPascal program.
A megszakítás a 0x08, 0x18 belépést jelenthet a boot-loaderbe, ha nem aktív, egyszerűen tovább ugrik a 0x2008 ill 0x2018 címekre.

A 0x0 kódhoz a uPascal bootloadere is tenne valamit, ha jól olvastam 4-5 másodpercig várja a parancssokat, ha nem jött, akkor ugrik a programra. Ha ezt eltolva fordítottad, akkor az eltolt címre kell ugrania. A uPascal bootloadere nem használ megszakítást.

A lefordított uPascal programot importáld be az MPlab -ba, jegyezd fel, hova ugrik a reset vertornál. Importáld rá a HID boot loadert, a 0x2000 -re állítsd be a megjegyzett címet, a 0x2008-ra és 0x2018-ra a megszakítási rutinok címét.

Ez jó lehet, ha a uPascal boot loadere egy fix címen van a memóriában függetlenül a pascal program hosszától.

uPascal bootloaderrel:

org 0x0
goto uPascal_boot
org 0x08
goto uPascal_int08
org 0x18
goto uPascal_int18

uPascal_begin
...
;uPascal_end

uPascal_boot
...
goto uPascal_begin
;uPascal_boot_end

Hid bootloaderrel:

org 0x0
goto HID_boot_reset
org 0x08
goto HID_boot_int08
org 0x0
goto HID_boot_int18

HID_boot_reset
..
goto 0x2000
..
HID_boot_int08
..
goto 0x2008
..
HID_boot_int18
..
goto 0x2018
..
; HID_boot_end

org 0x2000
goto uPascal_boot

org 0x2008
goto uPascal_int08

org 0x2018
goto uPascal_int18

org 0x2100
uPascal_begin
...
;uPascal_end

uPascal_boot
...
goto uPascal_begin
;uPascal_boot_end
goto uPascal_begin

Szia
(#) roland79 válasza Hp41C hozzászólására (») Nov 20, 2009 /
 
  1. void main(void)
  2. {  
  3.     ADCON1 = 0x0F;                      //Need to make sure RB4 can be used as a digital input pin
  4.         //      TRISBbits.TRISB4 = 1;   //No need to explicitly do this since reset state is = 1 already.
  5.  
  6.     //Check Bootload Mode Entry Condition
  7.         if(sw2 == 1)    //This example uses the sw2 I/O pin to determine if the device should enter the bootloader, or the main application code
  8.         {
  9.         ADCON1 = 0x07;          //Restore "reset value" of the ADCON1 register
  10.                 _asm
  11.                 goto 0x1000                     //If the user is not trying to enter the bootloader, go straight to the main application remapped "reset" vector.
  12.                 _endasm

Ebbol arra kovetkeztettem, hogy a HID bootloader 0x1000 cimre teszi at a user_program kezdetet es igy probalkoztam:

  1. program LED_Blinking;
  2. begin
  3.     orgall (0x1000);
  4.     CMCON  := CMCON or 0x07;           // turn off comparators
  5.     ADCON1 := ADCON1 or 0x0F;          // turn off analog inputs
  6.  
  7.     TRISD := 0x00;                     // Configure PORTD as output
  8.     PORTD := 0xFF;                     // Initial PORTD value
  9.  
  10.     while TRUE do
  11.         begin
  12.               PORTD := not PORTD;                   // Invert PORTD
  13.               Delay_ms(2000);
  14.         end;                  // Endless loop
  15. end.

De sajnos nem mukodik.
(#) roland79 válasza roland79 hozzászólására (») Nov 21, 2009 /
 
Addig-addig keresgeltem, hogy vegul csak sikerult:
  1. program LED_Blinking;
  2. begin
  3.     orgall (0x2000);
  4.     CMCON  := CMCON or 0x07;           // turn off comparators
  5.     ADCON1 := ADCON1 or 0x0F;          // turn off analog inputs
  6.  
  7.     TRISB0_bit := 1;                   // Set pin as input
  8.  
  9.     TRISD := 0x00;                     // Configure PORTD as output
  10.     PORTD := 0xFF;                     // Initial PORTD value
  11.  
  12.  
  13.     while TRUE do
  14.         begin
  15.               PORTD := not PORTD;                   // Invert PORTD
  16.               Delay_ms(2000);
  17.               PORTD := not PORTD;
  18.               Delay_ms(5000);
  19.         end;                  // Endless loop
  20. end.

Azzal, hogy a leforditott *.hex filet szerkeszteni kell. Az elso sorba be kell irni a kovetkezot: ":020000040000FA"
(#) Hp41C válasza roland79 hozzászólására (») Nov 21, 2009 /
 
Szia!

A HID bootloader vektorai miatt 0x2000 nem lesz elég, 0x2100 -at javasolnék. A uPascal által készített hex importásása, HID bootloader importálása, 0x2000, 0x2008, 0x2018 -ra az ugrásokat elhelyezése, programozás. Mennie kell...

Köszönöm a pontokat.

Szia és sok sikert...
(#) icserny válasza Hp41C hozzászólására (») Nov 22, 2009 /
 
Tisztázzunk egy félreértést/elírást!

A HID bootloader 0x0fff-ig tart, tehát az áthelyezett vektorok címei: 0x1000, 0x1008, 0x1018. A 0x2000-től elhelyezett vektorokra nem fognak rátalálni a HID bootloader elején elhelyezett ugróutasítások!

A programkód 0x102A-tól kezdődhet. Ennél nem okoz gondot (csak pazarlás), ha 0x2100-nál kezditek.
(#) Hp41C válasza icserny hozzászólására (») Nov 22, 2009 /
 
Szia!

Hirtelenjében a PicKit2 -ben alkalmazott HID bootloader forrását néztem meg, ott a remap vektorok 0x2000, 0x2008, 0x2018.
De itt nem is az volt a lényeg, hanem az, hogy a uPascal is betesz egy boot loadert. Azt kellett megoldani, hogy a HID boot loader-nek maradjon hely, és mind a kettő használható legyen.

Szia
(#) icserny válasza Hp41C hozzászólására (») Nov 23, 2009 /
 
Idézet:
„Hirtelenjében a PicKit2 -ben alkalmazott HID bootloader forrását néztem meg”

Jó, de az első hozzászólásban említett PIC mikrovezérlőbe nem az van beégetve...
Idézet:
„a uPascal is betesz egy boot loadert”

Miért/hogyan tenne ilyet?

Találtam egy fórumtémát, eszerint a vektorok áthelyezését így lehet megoldani (a címeket átírtam HID bootloaderhez):

  1. program test;      
  2.  
  3. procedure interrupt;
  4.  begin
  5.    //... Magas prioritású interrupt kiszolgálása...
  6.  End;{interrupt}
  7.  
  8. procedure interrupt_low;
  9.  begin
  10.   // ... Alacsony prioritású interrupt kiszolgálása...
  11.  End;{interrupt_low}
  12.  
  13. procedure vectors; org $1000;
  14.  begin
  15.   asm
  16.      goto   _main
  17.      nop
  18.      nop
  19.      goto   test_interrupt
  20.      nop
  21.      nop
  22.      nop
  23.      nop
  24.      nop
  25.      nop
  26.      goto   test_interrupt_low
  27.   end;
  28.  End;{vectors}
  29.  
  30. begin
  31.  OrgAll($1000);
  32.  
  33. // ... Ide jön a főprogram...
  34.  asm goto $ end; // while ciklus itt nem használható!
  35.  vectors;
  36. end.
(#) roland79 válasza Hp41C hozzászólására (») Nov 23, 2009 /
 
Nem, nem, elerteted, csak a HID bootloadert akartam futtatni. Csak olvastam a mE forumokat es ott csak az o bootloaderjukrol vannak irasok, es ott arrol beszelnek h a memoria vegere teszik a mP bootloadert es nincs vektor atiranyitas, es ezert gondoltam hogy nem lehet mP-ben fejleszteni mas tipusu bootloaderre.
Igaza van icserny kolleganak, 0x102A cimrol mar mukodik a user program.
(#) roland79 válasza icserny hozzászólására (») Nov 23, 2009 /
 
Szia icserny!
Olvastam a PICCOLO projectet. Az alapjan indultam el. Csak nekem jobban fekszik a pascal, ezert probaltam atirni mP-re a dolgokat. Probalgattam az ORG 0x1000 es az ORGALL 0x1000 utasitasokat, de nem sikerult. Ott szepen le van irva, hogy a HID bootloader mely cimekre irannyitja at a vektorokat. De sajna nem ment. A mE foruman ezt olvastam:
Idézet:
„how can I change the Reset and Interrupt Vector in MP?
You cannot”

Ekkor fordultam a forumhoz, es Hp41C hozaszolasa alapjan 0x2000 cimre tettem az eltolast. Voila. Mukodott a dolog es en boldog voltam
Koszonom a fenti kodot. Majd ha mar erre a szintre jutok kifogom probalni Egyenlore orulok, hogy villog a ledem
(#) icserny válasza roland79 hozzászólására (») Nov 23, 2009 /
 
Idézet:
„Voila. Mukodott a dolog es en boldog voltam”

Az ilyen öröm csak addig tart, amíg interruptot nem kell használni. A reset vektornak az is jó, ha csak rácsorog a vezérlés, de a mögötte levő interrupt vektorokra már nem lehet rácsorgatni a programot.

A HID bootloader elején elhelyezett vektorok úgy működnek, hogy a 0-ás címről az 0x1000-re ugrik, ha nincs lenyomva a bootolást kiváltó gomb. A 8-as címről pedig 0x1008-ra, a 0x0018-as címről meg 0x1018-ra ugrik.

A belinkelt Pascal kódot nincs módomban kipróbálni, de úgy látom, hogy a fenti feltételeknek próbál megfelelni.
(#) icserny válasza icserny hozzászólására (») Nov 25, 2009 /
 
A MikroElektronika fórumán talált, korábban beidézett kódot megpróbáltam lefordítani, de a test_interrupt és a test_interrupt_low címkéket ismeretlennek mondta. Azután megnéztem a Pascal fordító dokumentációját, és nem derült ki belőle, hogy hogyan lehet olyan címkéket definiálni, amelyek az assembly betétekben használhatók. Enélkül pedig a további kísérletezés reménytelen.
(#) roland79 válasza icserny hozzászólására (») Nov 25, 2009 /
 
igen, sajnos en is ide jutottam...csak meg nem volt idom tovabb keresgelni. SD kartyat szeretnek kezelni, es a mP MMC library mindjart hasznal is valami megszakitast, es mar nem is ment a HID bootloaderrel a program. Ekkor probaltam a kodot amit fentebb beraktal es nekem se ment.
Az lesz a vege, hogy rafanyarodok az altaluk irt rs232 bootloaderre, vagy csinalok/veszek egy egetot... az elkepzeles az volt, hogy havernal beegetjuk az USB bootloadert es onnantol kezdve nincs szukseg egetore...de egyre inkabb ugy nezem, hogy ez nem epp igy mukodik...
(#) icserny válasza roland79 hozzászólására (») Nov 25, 2009 /
 
Idézet:
„Az lesz a vege, hogy rafanyarodok az altaluk irt rs232 bootloaderre, vagy csinalok/veszek egy egetot...”

Szerintem egyszerűbb volna rászokni a C18-ra!

A Pascal sem teljesen reménytelen egyébként, csak az interrupt eljárásra való ráugrást kell valahogy megoldani, s ehhez most nem találtam meg a szükséges információt.
(#) icserny válasza icserny hozzászólására (») Nov 26, 2009 /
 
Egyre inkább úgy tűnik, hogy a korábban javasolt megoldás csak valamilyen régebbi változatttal működött. A mostani MikroPascal Pro 3.2-ben úgy tűnik, mindent elkövettek, hogy ne lehessen a Bootloaderrel kompatibilis kódot fordítani.

1. Nem működik az a megoldás, hogy a linker fájlt átszerkesztjük.
2. Nem fordítja be a kódba a vectors eljárást - a korábban működő goto $ trükközés esetén sem.
3. Assembly betétben nem hajlandó tudni az egyébként definiált címkékről, így nem fordul le a korábban bevált goto test_interrupt utasítás.

Nem tudom, hogy ezt akarták-e, mindenesetre én elvesztettem minden érdeklődésemet a MikorPascal iránt.
(#) roland79 válasza icserny hozzászólására (») Nov 26, 2009 /
 
En is csak azert eroltetem annyira mert, delphizek, suliban pascalt tanultam, es sok eljaras van elore megirva amiket hasznalni szeretnek, pont olyan peldakkal amik nekem nagyon jok...mag az az igazsag, hogy mikor meglattam, hogy letezik pascal fordito is, nem is foglalkoztam tovabb a tobbivel
Nem ez van a linken pascalositva:
  1. /** INCLUDES *******************************************************/
  2. #include <p18cxxx.h>
  3.  
  4. /** PRIVATE PROTOTYPES *********************************************/
  5. #if defined(USE_INTERRUPT)
  6.   extern hi_isr();
  7.   extern lo_isr();
  8. #else
  9.   void hi_isr();
  10.   void lo_isr();
  11. #endif
  12.  
  13. /** Vektorok áthelyezése  ******************************************
  14. * Csak az egyiket definiálhatja, vagy egyiket sem!
  15. */
  16. #define HID_BOOTLOADER
  17. //#define MCHPUSB_BOOTLOADER
  18.        
  19.         #if defined(HID_BOOTLOADER)
  20.                 #define RESET_VECTOR                    0x1000
  21.                 #define HIGH_INTERRUPT_VECTOR   0x1008
  22.                 #define LOW_INTERRUPT_VECTOR    0x1018
  23.         #elif defined(MCHPUSB_BOOTLOADER)      
  24.                 #define RESET_VECTOR                    0x800
  25.                 #define HIGH_INTERRUPT_VECTOR   0x808
  26.                 #define LOW_INTERRUPT_VECTOR    0x818
  27.         #else  
  28.                 #define RESET_VECTOR                    0x00
  29.                 #define HIGH_INTERRUPT_VECTOR   0x08
  30.                 #define LOW_INTERRUPT_VECTOR    0x18
  31.         #endif
  32.        
  33.         extern void _startup (void);
  34.         #pragma code REMAPPED_RESET_VECTOR = RESET_VECTOR
  35.         void _reset (void)
  36.         {
  37.             _asm goto _startup _endasm
  38.         }
  39.  
  40.         #pragma code REMAPPED_HIGH_INTERRUPT_VECTOR = HIGH_INTERRUPT_VECTOR
  41.         void Remapped_High_ISR (void)
  42.         {
  43.              _asm goto hi_isr _endasm
  44.         }
  45.  
  46.         #pragma code REMAPPED_LOW_INTERRUPT_VECTOR = LOW_INTERRUPT_VECTOR
  47.         void Remapped_Low_ISR (void)
  48.         {
  49.              _asm goto lo_isr _endasm
  50.         }      
  51.  
  52.         #pragma code
  53.        
  54.  
  55. #if defined(USE_INTERRUPT)
  56. // do nothing
  57. #else
  58. //Define dummy interrupt routines if user failed to define them...       
  59.  
  60.         #pragma interrupt hi_isr
  61.         void hi_isr()
  62.         {
  63.  
  64.         }      
  65.        
  66.         #pragma interruptlow lo_isr
  67.         void lo_isr()
  68.         {
  69.        
  70.         }
  71. #endif

mert ha igen, akkor szerintem hianyoznak definiciok... azokat is pascalositani kellene, nem? (C-t nem nagyon vagom... )
(a mE foruman tovabb boncolgatjak a temat, nekik sem megy... de sajnos ott nem tudok hozzaszolni, mert nem megy az angol... )
(#) icserny válasza roland79 hozzászólására (») Nov 26, 2009 /
 
C-ben sem kell ennyi definíció, ha eleve csak a HID bootloaderre számítunk (lásd ma reggeli beírásom a PIC - Miértek, hogyanok...) topikban.

void hi_isr(); -> Ennek a
procedure interrupt; forward; felelne meg, de nincs rá szükség. Az _interrupt: címke anélkül is generálódik, csak az assembly betétből nem elérhető.

(#) icserny hozzászólása Nov 26, 2009 /
 
Csoda történt! Lefordult az alábbi program a vektor-áthelyezésekkel együtt. Működni persze nem működik, csak ha a HEX állomány elejére kézzel beírjuk a bűvös :020000040000FA sort! Ekkor már betölthető a HID bootloaderrel.

Az alábbi program a D port bitjeire kötött (áramkorlátozó ellenállással!) LED-eket villogtatja.
  1. program ledflash;
  2.  
  3. procedure interrupt;
  4.  begin
  5.  end;{interrupt}
  6.  
  7. procedure interrupt_low;
  8.  begin
  9.  end;{interrupt_low}
  10.  
  11. procedure vectors; org $1000;
  12.  begin
  13.   asm
  14.      goto   _main
  15.      nop
  16.      nop
  17.      goto   ledflash_interrupt
  18.      nop
  19.      nop
  20.      nop
  21.      nop
  22.      nop
  23.      nop
  24.      goto   ledflash_interrupt_low
  25.   end;
  26.  End;{vectors}
  27.  
  28. begin
  29.   OrgAll($1000);
  30.   asm goto skip_vectors end;
  31.   vectors;
  32.   asm skip_vectors: end;
  33.   TRISD := 0x00;
  34.   ADCON1 := 0x0F;
  35.   LATD := 0x00;
  36.   while TRUE do
  37.     begin
  38.       LATD := 0x00;       // Turn OFF diodes on PORTD
  39.       Delay_ms(250);      // 250 ms second delay
  40.       LATD := 0xFF;       // Turn ON diodes on PORTD
  41.       Delay_ms(250);      // 250 ms delay
  42.     end;                  // Endless loop
  43. end.


A megoldás kulcsa a "vectors" eljárás kioptimalizálásának megakadályozása, amire a korábban már hivatkozott fórumon ajánlottak egy újabb trükköt:
  1. asm goto skip_vectors end;
  2.   vectors;
  3.   asm skip_vectors: end;
(#) roland79 válasza icserny hozzászólására (») Nov 26, 2009 /
 
nekem tovabra is [quote]identifier "ledflash_interrupt" was not declared...mi a manot csinaljak vele? Kellet valamit allitani a mPben?
(#) icserny válasza roland79 hozzászólására (») Nov 26, 2009 /
 
Idézet:
„Kellet valamit allitani a mPben?”

Őszintén szólva én az állítási lehetőséget sem találtam meg...

Azt vettem észre, hogy a program neve és a forrásfájl neve meg kell, hogy egyezzen. Tehát ledflash legyen a filenév is. A sorrend is számít. Úgy, ahogy bemásoltam, nekem simán fordult, a legfrissebb fordítóval.
(#) roland79 válasza icserny hozzászólására (») Nov 28, 2009 /
 
Ezer koszonet!
Igy mar mukodik az MMC library is. Most jon a SoftI2C...
Ennel a PICnel az SPI es I2C ugyan azon a labakon van. Ezert ugy gondoltam, hogy softI2C-t fogok hasznalni. De sokan azt irjak hogy eleg lassu(ez szamomra meg relativ fogalom). 8db LM75 homerovel, egy PC8583 oraaramkorrel, es 3-4 PCF8574 aramkorrel szeretnek komunikalni. A mert adatokat pedig a SD kartyan egy txt fileba szeretnem tarolni. kb masodpercenkent szeretnek mintat vetelezni. A PIC 8mhz kristalyal megy. Ehhez eleg lesz a softI2C? vagy esetleg tudom a ket protokolt ugyan azokrol a labakrol hasznalni? Vegul is egyidoben mindenkepp csak az egyik fog futni.
(#) icserny válasza roland79 hozzászólására (») Nov 28, 2009 /
 
Nem az az érdekes, hogy hány MHz-es a kvarc, hanem az, hogy a PIC mit csinál belőle... A konfigurációs biteknél a PLLDIV hogy van beállítva? A HID bootloader "gyárilag" 20 MHz-hez van bekonfigurálva (PLLDIV=5), a 8 MHz-es kvarchoz viszont PLLDIV=2 kell.

SD kártya helyett lehet Flash memóriában is gondokodni Bővebben: Link (bár ez a lényegen nem sokat változtat).

Az SPI és az I2C használható felváltva is (nem kell szoftveres I2C-vel szerencsétlenkedni). Az SPI eszköz, ha nem kap SEL jelet, akkor elvileg lekapcsolja magát a vonalról.

I2C esetén bedig be lehet iktatni egy buszmeghajtót (pl. PCA9515, ennek van egy engedélyező bemenete is), ami azért is jó volna, mert elég sok eszközt akarsz rákötni a buszra. Az I2C eszközök adatlapját is meg kell nézni, hogy képesek-e meghajtani egy ekkora terhelésű buszt?
(#) roland79 válasza icserny hozzászólására (») Nov 28, 2009 /
 
Azert eset a valasztas az SD kartyara, mert nagyon konyen es gyorsan atlehet vinni az adatokat szamitogepre es aztan ott mar konyen lehet beloluk tablazatokat, grafikonokat kesziteni. A masik ok pedig, hogy a mPben vannak peldak a hasznalatara .
Szeretnek meg egy olyat is csinalni, hogy egy masik PIC AD konverterere kotok valamit(aramtrafo+elektronika) es az altala mert eredmenyeket is az SD kartyara irja a 18F4550. Ezt hogyan tudom legegyszerubben megoldani?
(#) icserny válasza roland79 hozzászólására (») Nov 28, 2009 /
 
Idézet:
„Azert esett a valasztas az SD kartyara, mert nagyon konyen es gyorsan atlehet vinni az adatokat szamitogepre”

Hát az USB csak dísznek van?

Idézet:
„Szeretnek meg egy olyat is csinalni, hogy egy masik PIC AD konverterere kotok valamit”

Miért? A 4550-nek nem maradt szabad bemenete?
Egyébként meg SPI,I2C,UART,RS-485...
(#) roland79 válasza icserny hozzászólására (») Nov 28, 2009 /
 
Az USB a bootloader miatt kellet... De majd idovel komunikalasra is jo lesz.
A 4550-nek maradt meg eleg laba, de a ket dolog szerkezetileg kulonallo lenne. En I2C-vel oldanam meg, de sajnos gozom sincs, hogy a konvertalo PICet hogy tudom elerni...
De egyenlore most van mit emesztenem. Van mivel kiserletezni...
(#) icserny válasza roland79 hozzászólására (») Nov 28, 2009 /
 
A 4550 master, a konvertáló meg slave. Mellesleg ennyi I2C eszköz címzésével nem lesz gond?
(#) roland79 válasza icserny hozzászólására (») Nov 28, 2009 /
 
Elvileg minden kutyunek mas a cime...vagy is a LM75 allithato 3biten, vagyis 8 db mehet egy I2C vonalra, a PCF8574 szinten allithato es mastartomanyban van mint a homerok. Vagy valamien mas problemara gondolsz?
Erre a master-slev dologra gondoltam, csak a kivitelezeset meg nem latom at...de majd lassan kialakul. A "Hello word!" mar megy...
Következő: »»   1 / 2
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