Отговори на тема  [ 2 мнения ] 
Обзо питане за Wismo 228 модул 
Автор Съобщение
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Пон Дек 28, 2015 5:12 pm
Мнения: 4
Мнение Обзо питане за Wismo 228 модул
Понеже се занимавам и с касови апарати - отвреме навреме ми изпадат модулчета със някакъв LPC процесор и модем WISMO228 на Datecs - кадърно направен хардуевр изглежда, за разлика от новите неща. Някой играл ли си е с такива, иска ми се да им намеря друго приложение вместо да ги хвърлям в коша. Вярно, че ново модулче А6 е 5$ в при джигитайците, но могат да се ползват като GSM дайлърчета примерно.

Проблемът ми е, че не виждам никаква серийна комуникация на TX/RX изводите на модемчето между него и професора. Предполагам, че са пуснати в някой от другите режими, но как мога да го, ъъъ, вкарам в някакъв фейлсейф режим да видя жив ли е въобще, поема ли АТ команди и т.б.? Има ли начин да се закъси някой пин и да се ресетне модемчето да го видя без LPC-то справя ли се, и после мога да си играя да напиша някоя програмка за LPC-то. Но ми трябва начало - как се пуска, как се говори с него, общи приказки - ако някой се е ровил.


Вто Фев 07, 2017 8:56 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Ное 25, 2005 11:41 am
Мнения: 1680
Мнение Re: Обзо питане за Wismo 228 модул
Това е за да го ползваш като модем.

Код:

#include "lpc23xx.h"

typedef volatile unsigned int *reg32_t;

//#define MAMCR (*(reg32_t)0xE01FC000)
#define IOPIN (*(reg32_t)0xE0028010)
#define IOSET (*(reg32_t)0xE0028014)
#define IODIR (*(reg32_t)0xE0028018)
#define IOCLR (*(reg32_t)0xE002801C)
#define IOPINSEL0 (*(reg32_t)0xE002C00C)

#define OSCEN 5

#define LEDMASK   0x1 //0xFFFFFFFF

volatile unsigned char ch = 0x20;
volatile unsigned long port2;
volatile unsigned long port4;
volatile unsigned long port2n;
volatile unsigned long port4n;
volatile unsigned long porttemp = 0ul;
volatile unsigned long port2out;

volatile unsigned long ticks = 0;
volatile unsigned long tx_now;
volatile unsigned long tx_last;

void Init_MCU()
{
  SCS  = 0x00000029;//|= (1 << OSCEN);
  CLKSRCSEL = 1;
   
  /*// disconnect/disable
  PLLCON  = 0x0;
  PLLFEED = 0xaa;
  PLLFEED = 0x55;
  // configure
  CLKSRCSEL = 1; // Switch to main oscillator input (12 MHz)
  PLLCFG  = (0x2 << 9) | 0x19; // Fcco=2*10*12/2=120 MHz
  PLLFEED = 0xaa;
  PLLFEED = 0x55;
  // enable
  PLLCON  = 0x1;
  PLLFEED = 0xaa;
  PLLFEED = 0x55;
  // wait for lock
  while (!(PLLSTAT & (1 << 26)));
  // connect
  PLLCON  = 0x3;
  PLLFEED = 0xaa;
  PLLFEED = 0x55;
  // set CPU clock to 120/6 = 20 MHz
  CCLKCFG = 5;*/


   //FIO2DIR |= 0xFFFFFFFF;//0x00000400;
   //FIO2MASK |= 0xFFFFFFFF;//0x00000400;

   //FIO0DIR |= 0xFFFFFFFF;
   //FIO0MASK |= 0xFFFFFFFF;

   //FIO1 - LEDs output
   FIO1DIR |= 0xFFFFFFFF;
   FIO1MASK |= 0x0000000;//0xFFFFFFFE;  //0x0000000;

   FIO4DIR |= 0x0000000 | (1ul << 28);  //P4.28 -> TxD3 as output
   FIO4MASK |= 0x0000000;

   FIO2DIR |= 0x0000000 | (1ul << 2) | (1ul << 0) | (1ul << 8);  //CTS to GSM and TxD to GSM and CTS to PC  (MAIN RS232)  as outputs
   FIO2MASK |= 0x0000000;

   FIO0DIR |= 0x0000000 | (1ul << 20) | (1ul << 22);  //ON/~OFF and ~RESET as outputs
   FIO0MASK |= 0x0000000;
   FIO0PIN = 0ul;//1ul << 20;  pin P0.20  - On/OFF should be LOW for at least 685ms for power up and internal VCC2.8 to be out

   //FIO3DIR |= 0xFFFFFFFF;
   //FIO3MASK |= 0xFFFFFFFF;

   //IOPINSEL0  = 0x00000000;
   //IODIR |= LEDMASK;

   PINSEL4 = 0x00000000;
}

static void ledOn(int led)
{
  IOCLR = led;
}

static void ledOff(int led)
{
  IOSET = led;
}

void delay(unsigned long long d)
{
  for(; d; --d);
}

int TestLED(void)
{
  unsigned long i, j;

  //ledInit();
  ledOff(LEDMASK);
  for(i = 0; i < 256000; i++)
    delay(20000000);
  ledOn(LEDMASK);
  for(i = 0; i < 256000; i++)
    delay(20000000);
  return 0;
}

void Get_Ports()
{
  port2 = FIO2PIN;
  port4 = FIO4PIN;
}

void Set_Ports()
{
  FIO2PIN = port2out;
  FIO4PIN = port4n;
}


void main()
{
  Init_MCU();

  FIO1PIN = ~0x00ul;  //turn off leds

  while(1)
    {
      FIO2PIN = ((FIO4PIN & (1ul << 29)) >> 29) |  //read External RxD and Send to GSM
                ((FIO2PIN & (1ul << 9)) >> 7)   |  //External CTS (from PC) to GSM_RTS
                ((FIO2PIN & (1ul << 7)) << 1);     //GSM CTS (from GSM) to PC_RTS
 
      FIO4PIN = ((FIO2PIN & (1ul << 1)) << 27);   //read GSM TxD and send to RS232-TxD

      /*
      //External CTS (from PC) to GSM_RTS:
      FIO2PIN |= ((FIO2PIN & (1ul << 9)) >> 7);
      //GSM CTS (from GSM) to PC_RTS:
      FIO2PIN |= ((FIO2PIN & (1ul << 7)) << 1);
      */

      //check for gsm halted
      tx_now = FIO2PIN & (1ul << 1);
      if (tx_now == tx_last)
        {
          ticks++;
          if (ticks >= 21000000ul)  //6 000 000 => ~8.5 seconds; 21 000 000 => ~30 seconds
            {
              //reset_gsm:
              FIO0PIN |= 1ul << 22;
              ticks = 600000ul;  //600 000 => ~100 ms
              while(--ticks)
                ;
              FIO0PIN &= ~(1ul << 22);

              ticks = 0;
            }
        }
      else
        {
          ticks = 0;
        }
      tx_last = tx_now;

      //Debug & display:
      FIO1PIN = 0xFFFFFFFC | ((((FIO4PIN & (1ul << 29)) >> 29) & 1ul) | (((FIO4PIN & (1ul << 28)) >> 27) & 2ul));  //Display RxD & Txd on LEDs: 0,1
      //FIO4PIN =  ((FIO4PIN & (1ul << 29)) >> 1) & (1ul << 28);  //echo on TxD
    }
}


Вто Фев 07, 2017 9:22 pm
Профил ICQ WWW
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 2 мнения ] 

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 7 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни