Ja, då var man 15st bluetooth-moduler (class 2) rikare

Planering och tankar kring eventuella framtida projekt.
PatrikB
Inlägg: 185
Blev medlem: 24 maj 2004, 11:19:32
Ort: Borås

Inlägg av PatrikB »

Misstänkte att det var BGA, någon som vet hur många anslutningspunkter det är ?

Ska se om jag kan rota fram koden, den är skriven för PIC - C http://www.ccsinfo.com/picc.shtml
Användarvisningsbild
strombom
Inlägg: 3305
Blev medlem: 27 maj 2003, 10:50:20
Ort: Västra Götaland
Kontakt:

Inlägg av strombom »

Johan.o skrev:Jag skulle villja ha 50st vid max $4.99 st
Men lite billigare skadar aldrig.

/ Johan
oj vad ska du bygga? :)

/Johan
Johan.o
EF Sponsor
Inlägg: 2387
Blev medlem: 18 juni 2003, 01:08:50
Ort: Jönköping

Inlägg av Johan.o »

Ingen aning, men det är alltid bra att ha några extra =)
Synd bara att det inte var klass 1, dom här räcker bara ett tiotal meter.

/Johan
matseng
Inlägg: 2360
Blev medlem: 16 september 2003, 17:18:13
Ort: Dubai, United Arab Emirates
Kontakt:

Inlägg av matseng »

PatrikB skrev:Misstänkte att det var BGA, någon som vet hur många anslutningspunkter det är ?
30 BGA punkter varav 10 st inte används till något.

Dom är 0.89 mm stora och sitter med 1.25 mm CC, dvs 0.35 mm avstånd mellan dom.

Dom sitter i två grupper. En grupp med 2x6 st och en grupp med 3x6 st.

Dom dom sitter i 2x6-gruppen kan man nog lösa på kablar på - virtråd är praktiskt tror jag i detta fallet. Men att komma år och löda på mittenraden i 3x6-gruppen blir inte kul. Som tur är så är det bara en eller två punkter i mittenraden som är viktiga.
PatrikB
Inlägg: 185
Blev medlem: 24 maj 2004, 11:19:32
Ort: Borås

Inlägg av PatrikB »

Här är en del av koden, vet inte om den säger speciellt mycket men den fungerar iaf. Detta är taget ur ett större program som jag gjort så det kan saknas kod. Kan även tillägga att det är ingen lektion i att skriva bra C ; )

Kod: Markera allt

#byte ADCON0 = 0x1F  // Kontrollregister 0 till ADC
#byte ADCON1 = 0x9F  // Kontrollregister 1 till ADC
#byte ADRESH = 0x1E  // Resultatregister H till ADC
#byte ADRESL = 0x9E  // Resultatregister L till ADC
#byte RCSTA = 0x18   // Receiver status reg
#byte RCREG = 0x1A   // Receiver reg
#byte TCREG = 0x19   // Transmitter reg
byte BTADR[6];       // Slave Adr
byte BTMADR[6];      // Master Adr
byte HANDLE[2];

//-----------------------RS232----------------------------------------------
// Circulär buffer för mottagna tecken kanal 0
byte FInRB0;                         // Pekar först i bufferten
byte LInRB0;                         // Pekar sist i bufferten
byte const NumInRBuf0 =16;           // OBS 2^n
byte RxBuf0[NumInRBuf0 ];            // Bufferten
byte const RBMask0 = NumInRBuf0-1;   // OBS 2^n-1

// Circulär buffer för att sända tecken kanal 0
byte FInTB0;                         // Pekar först i bufferten
byte LInTB0;                         // Pekar sist i bufferten
byte const NumInTBuf0 =16;           // OBS 2^n
byte TxBuf0[NumInTBuf0 ];            // Bufferten
byte const TBMask0 = NumInTBuf0-1;   // OBS 2^n-1

#int_tbe     // Avbrottsrutin för sändning av data
tbe_isr() { // Async Serial Data Transmitted
 if(FInTB0==LInTB0) {
   disable_interrupts(INT_TBE);
 } else {
   TCREG=TxBuf0[FInTB0=(++FInTB0) & TBMask0];
 }
}
void SendC0(byte b){    // Lägger en byte i databufferten för sändning
  TxBuf0[LInTB0=(++LInTB0) & TBMask0]=b;
  enable_interrupts(INT_TBE);
}
#INT_RDA    // Avbrottsrutin för mottagning av data
ReceiveInt() {
   RxBuf0[LInRB0=(++LInRB0) & RBMask0]=RCREG;
   if (BIT_TEST(RCSTA,1)) {  // check and clear overrun error
    BIT_CLEAR(RCSTA,4);
    BIT_SET(RCSTA,4);
  };
}
byte NumInRB0(){ // Returnerar antalet byte i mottagningsbufferten
  return (LInRB0-FInRB0) & RBMask0;
}
byte GetC0() {    // Hämtar en byte ur mottagningsbufferten
  return RxBuf0[FInRB0=(++FInRB0 & RBMask0)];
}
void EmptyBuffer(){ //Tömmer inbufferten
   byte tmp;
   while(numinrb0())
      tmp=getc0();
}


//------------------------BT---------------------------------------------
short WaitForBTReply(byte n, long t){ //Väntar t ms på n byte i inbufferten
  while(t && numinRb0()<=n){
	  delay_ms(1);
      t--;
  }
  if(numinrb0() == n)
      return 1;
  while(numinrb0()) 
	  getc0();
  return 0;
}

void ResetBTModule(){//Gör reset på BT-modulen
short ok=0;
byte i=0;
byte a[7] = {0x04,0x0e,0x04,0x01,0x03,0x0C,0x00};
   for(i=3;i<7;i++)sendc0(a[i]);
   if(waitforbtreply(7,100))
       for(i=0,ok=1;i<7;i++)
           if(getc0() != a[i]) ok = 0;

   if(ok)
       return 1;
   return 0;
}
short GetBTDevAdr(){ //Hämtar BT:ns adress
short ok=0;
byte i=0;
byte a[7] = {0x04,0x0e,0x0a,0x01,0x09,0x10,0x00};
   for(i=3;i<7;i++)sendc0(a[i]);
   if(waitforbtreply(13,100))
      for(i=0,ok=1;i<7;i++)
         if(getc0() != a[i]) ok = 0;
   if(ok){
      for(i=0;i<6;i++)
            BTADR[i]=getc0();
      return 1;
      }
   for(i=0;i<6;i++)
      BTADR[i] = 0x00;
   return 0;
}
short SetBTEventFilter(){//Sätter upp eventfilter för kommunikation med mastern
short ok=0;
byte i=0;
byte a[7] = {0x01,0x05,0x0c,0x03,0x02,0x00,0x02};
byte b[7] = {0x04,0x0e,0x04,0x01,0x05,0x0c,0x00};
   for(i=0;i<7;i++)sendc0(a[i]);
   if(waitforbtreply(7,100))
      for(i=0,ok=1;i<7;i++)
         if(getc0() != b[i]) ok = 0;
   if(ok)
	   return 1;
return 0;
}
short BTWriteScanEnable(){//Gör writescan enable för kommunikation med mastern
short ok=0;
byte i=0;
byte a[5] = {0x01,0x1A,0x0c,0x01,0x03};
byte b[7] = {0x04,0x0e,0x04,0x01,0x1a,0x0c,0x00};
byte c[4] = {0x04,0x03,0x0b,0x00};

   for(i=0;i<5;i++)sendc0(a[i]);
   if(waitforbtreply(7,100))
      for(i=0,ok=1;i<7;i++)
         if(getc0() != b[i]) ok = 0;
   if(!ok) return 0;

   if(waitforbtreply(14,10000)){
      for(i=0,ok=1;i<4;i++)
         if(getc0() != c[i]) ok = 0;
      if(!ok) return 0;
      HANDLE[1]=getc0();
      HANDLE[0]=getc0();
      for(i=0;i<6;i++)
         BTMADR[i]= getc0();
      return 1;
   }
   else return 0;
}
short ConnectToRemoteMasterAsSlave(){ //Kör hela uppkopplingen mot mastern


   if(!resetbtmodule())
      return 0;

   if(!GetBTDevAdr())
      return 0;

   if(!SetBTEventFilter())
      return 0;

   if(!BTWriteScanEnable())
      return 0;

   return 1;
}
byte WaitForACLReply(){ //Väntar på svar efter att ha sänt ett ACL paket
short Ok=0;
long i=0xFFFF;
byte a[9] = {0x02,0x00,0x20,0x05,0x00,0x01,0x00,0x00,0x00};
a[1] = HANDLE[1];

   while(i && !ok){
      if(numinrb0() == 10){
         Ok = 1;
      }
      i--;
   }
   if(Ok){
      for(i=0,ok=1;i<9;i++)
         if(getc0() != a[i]) ok = 0;
      if(ok)
         return getc0();
      else
         getc0();
   }
   else
      emptybuffer();
   return 0;
}
void SendACLByte(byte d){ //Skickar ett ACL paket med en data byte
byte i,j=1;
byte a[10] = {0x02,0x00,0x20,0x05,0x00,0x01,0x00,0x00,0x00,0x00};
   a[9] = d;
   a[1] = HANDLE[1];
   do{
      emptybuffer();
      for(i=0;i<10;i++)sendc0(a[i]);
      i = WaitForACLReply();
      j--;
   } While(j && !i);
   emptybuffer();
}
Elektron
Inlägg: 18
Blev medlem: 16 oktober 2004, 19:58:34

Inlägg av Elektron »

Jag köper gärna en 10stycken om det blir sambeställning av. Kan tänka mig några fler om vi inte når upp till 50gränsen.
Användarvisningsbild
chille
Inlägg: 2469
Blev medlem: 25 juni 2003, 20:54:41
Ort: Stockholm
Kontakt:

Inlägg av chille »

Er som klagar på att det bara är 10m räckvid kan jag bara råda att ni ska modda dom för längre räckvidd 8-)

PatrikB:
Vilkan BT-modul använder du?

Och för er andra som har frågar så säger jag: RTFM! :)

(Tankar upp all info jag hittat på min webserver och drar en edit med adress här så fort jag får tid/orkar)
klintan
Inlägg: 307
Blev medlem: 13 juni 2003, 01:59:05
Ort: Ekerö

Inlägg av klintan »

ja för va 5 dollar nu blir * 7 cirka? 35 spänn styck skulle jag kunna tänka mig 4 att labba med :)
Användarvisningsbild
chille
Inlägg: 2469
Blev medlem: 25 juni 2003, 20:54:41
Ort: Stockholm
Kontakt:

Inlägg av chille »

http://chille.se/bt/

Där tänkte jag vi skulle samla all info vi har :)
sebastiannielsen
Inlägg: 3663
Blev medlem: 11 september 2004, 09:30:42
Ort: gbg
Kontakt:

Inlägg av sebastiannielsen »

är inte dollarn 9 nu? 5 * 9 = 40 kr /styck.
Användarvisningsbild
chille
Inlägg: 2469
Blev medlem: 25 juni 2003, 20:54:41
Ort: Stockholm
Kontakt:

Inlägg av chille »

Nä, den är några ören under 7 nu.

Kolla forex
Johan.o
EF Sponsor
Inlägg: 2387
Blev medlem: 18 juni 2003, 01:08:50
Ort: Jönköping

Inlägg av Johan.o »


chille"]Er som klagar på att det bara är 10m räckvid kan jag bara råda att ni ska modda dom för längre räckvidd 8-)
har du något länktips hur man moddar dessa moduler?
Användarvisningsbild
chille
Inlägg: 2469
Blev medlem: 25 juni 2003, 20:54:41
Ort: Stockholm
Kontakt:

Inlägg av chille »

Beror ju helt och håller på hur lång räckvidd man vill ha, vad det är för modul, vad man har för krav osv.

Enklaste är ju att bara slänga på en egen antenn, det ger förvånansvärt mycket bättre räckvidd.
Johan.o
EF Sponsor
Inlägg: 2387
Blev medlem: 18 juni 2003, 01:08:50
Ort: Jönköping

Inlägg av Johan.o »

Jag tänker då på de aktuella modulerna, som den här tråden handlar om.
Trodde du låg inne med modifikationstips för att höja utteffekten till klass 1.

Egen antenn lär det bli, finns ingen förmonterad antenn på
dom.

/ Johan
Användarvisningsbild
chille
Inlägg: 2469
Blev medlem: 25 juni 2003, 20:54:41
Ort: Stockholm
Kontakt:

Inlägg av chille »

"egen antenn" och "egen antenn". En 4mm lång kabelsnutt kan ju anses som antenn, medans en specialanpassad för bästa räckvidd (som är fysiskt möjligt) lär vara lite bättre.
Skriv svar