PSOC5 는 EEPROM 테스트 관련 글이 없어서 약간 시간을 내서 글을 올려 봅니다.


물론 예제에서도 참고할 수 있는데, 예제가 너무 복잡해 보이네요.
또한 제가 사용할 때는, EEPROM 을 따로 Erase를 할 필요가 없었는데.. 
예제에서는 항상 Erase를 하고 Write를 하는게 좀 이상했습니다.

이번에 테스트한 보드는, Cypress에서 많이 파는 CY8CKIT-059 로 진행했습니다.
사용한 콤포넌트는 Port 입력 1개(TACT Switch)와 UART 만 사용했습니다.

byte(unsigned char) 타입 데이터 2개와 uint(unsigned 16 bit) 타입 데이터 2개를 스위치를 1번 누를 때마다,
1씩 증가하도록 하고 EEPROM 에 저장을 했습니다.
그리고 리셋 버튼을 누르면 EEPROM에 저장된 값을 UART 로 출력해서 EEPROM의 동작을 확인했습니다.

보드의 외형과 사용하는 포트들은 다음과 같습니다.




다음은 PSOC Creeator 의 컴포넌트 설계도입니다. (TopDesign.cysch)



다음은 실제 PSOC5 IC의 사용하는 포트입니다.






다음은 프로그램 테스트 과정입니다.

1. 처음 프로그램을 다운로드하고 UART 로 출력되는 내용 (EEPROM에 저장되는 값들을 초기화하여 Write 한다)




2. 스위치를 3번 눌러서 값을 3증가시켜서 저장하고 UART로 출력. 리셋 버튼을 눌러 EEPROM 값을 읽어 확인.




3. 전원을 OFF --> ON 해서 정말로 데이터가 남아 있는지도 확인.





psoc 소스 코드 첨부합니다.

eeprom_test.Bundle01.zip


안녕하세요, 

이 글은 예정에는 없었지만, 카페에 올린줄 알았는데 없어서 글을 쓰게 되었습니다.

PSOC5에서 micro SD-Card 를 사용하는 방법인데, PSOC5은 SDIO 가 없어서 SPI 방식만 지원합니다.
속도는 24Mhz 입니다.
제가 보기에는 현재까지 PSOC5가 MCU 중에서 가장 사용자 친화적으로 잘 만들어 진 것 같은데,
패키지가 다양하지 않고 후속 모델(PSOC6)이 안나오며, PSOC4만 계속 손데고 있어서 매우 불만이 많습니다.
가격은 요새 좀 내려간 듯 한데, STM32F4xx 에는 가성비가 못미치네요.
PSOC5 이대로 죽는겐가? ㅜㅜ

아.. 헛소리를 많이 했군요. 
그럼 다시 PSOC5에서 SPI 방식으로 SD Card 제어하는 방법을 알아보겠습니다.
PSOC Creator 의 TopDesign.cysch 에 emFile SPI Mode[V1.20] 콤포넌트를 배치하고 
emfile 콤포넌트의 Datasheet를 보면 여기서 설명하려는 내용이 영문으로 나와 있습니다.


1. PSOC Creator 내부에 File System 라이브러리가 없기 때문에 먼저 File System 라이브러리를 다운로드 받아야 합니다.

여기(링크)에서 다운로드 받으시면 됩니다.





2. 받은 파일을 압축을 풀어서 적당한 위치에 놓으십시요. (저는 프로젝트 폴더 옆에 놓았습니다)




3. 콤포넌트 창에서 Communication->FileSystem->emFile 을 TopDesign.cysch 으로 끌고 와서 배치합니다.




4. 왼쪽 Workspace Explorer 의 Project 를 우클릭하여 Build Setting 을 클릭합니다.




5. Include Directory 를 추가




6. 라이브러리 이름 추가. 직접 타이핑해 줍니다.
emf32noslfn 를 타이핑 하고, 이 의미는 No OS , Long File Name 의 의미입니다.




7. 다음은 라이브러리가 있는 디렉토리를 추가합니다.




8. 라이브러리 파일을 추가합니다.




9. 회로를 보고 핀을 배치합니다. (PSOC5는 이것이 장점 : 핀을 맘대로 옮길 수 있습니다.)
디버깅용으로 USB Serial 포트도 하나 넣었습니다.




10. micro-SD 카드 회로도는 다음과 같습니다. 신호에 굳이 풀업저항은 필요 없었습니다.
혹시나 해서 테스트 해 봤는데 잘 되네요.




11. SD 카트에서 데이터를 읽어서 뿌려볼라고 하는데, 구글링해서 "영문 텍스트 소설" 검색하니 해리포터 불의잔이 있네요. ^^
다운받아서 SD Card에 넣습니다.




12. 제작한 기판에 SD Card를 끼웁니다. 회사에서 만든 기판은 다음과 같습니다.





이제 프로그램만 짜면 되는데 불의잔을 읽어서 USB Serial로 터미날에 5000 바이트만 뿌려 보겠습니다.
먼저 결과를 올려 보겠습니다.

잘 읽히네요. 불의 잔. ^^

소스코드는 main.c 에만 코드를 추가했고, SD Card 읽기만 테스트 해 봤습니다.
나머지는 현재까지 읽기 이외의 작업이 필요없었던 관계로 회원 여러분이 찾아서 해 보십시요. ^^
프로젝트 압축해서 첨부합니다. 그런데 emfile 라이브러리는 PSOC Creator에서 한번에 압축을 안해 주네요.
아마도 4~8 과정을 회원분들께서 다시 해 주셔야 될 것 같습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
#include "project.h"
#include <stdio.h>
#include <FS.h>
 
#define BUFFER_LEN  64u
 
struct tagFILE
{
    uint8 accmd;
    uint32 sz;
    FS_FILE* fp;
    char tFileName[64];
};
 
static struct tagFILE   tFILE;
char8 *parity[] = { "None""Odd""Even""Mark""Space" };
char8 *stop[] = { "1""1.5""2" };
 
void ready_USB_UART_tx(void);
 
int main(void)
{
    uint8_t buffer[5000];
    uint16_t i;
    char usb_tx[BUFFER_LEN];
    
    
    FS_Init();
    FS_Mount(0);
    FS_FAT_SupportLFN();
    
    CyGlobalIntEnable; /* Enable global interrupts. */
 
    /* Place your initialization/startup code here (e.g. MyInst_Start()) */
    
    CyDelay(500);
    
    FS_DIR*     pDir;
    USBUART_1_Start(0u, USBUART_1_3V_OPERATION);
    ready_USB_UART_tx();
 
    pDir = FS_OpenDir("");
    sprintf(tFILE.tFileName,"Harry_potter_Goblet_of_Fire.txt");
    tFILE.fp = FS_FOpen(tFILE.tFileName, "rb");
    tFILE.sz = FS_GetFileSize (tFILE.fp);
 
    sprintf(usb_tx,"File size : %5lu\n\r",tFILE.sz);
    while(USBUART_1_CDCIsReady() == 0u);    /* Wait till component is ready to send more data to the PC */ 
    USBUART_1_PutString(usb_tx);       /* Send data back to PC */
    
    FS_FSeek(tFILE.fp,0,0);
    FS_Read(tFILE.fp, buffer, 5000);
    for (i=0;i<5000;i++)
    {
        while(USBUART_1_CDCIsReady() == 0u);    /* Wait till component is ready to send more data to the PC */ 
        USBUART_1_PutChar(buffer[i]);       /* Send data back to PC */
    }
    //proc_USB_UART();
 
    for(;;)
    {
        /* Place your application code here. */
    }
}
 
void ready_USB_UART_tx(void)
{
    uint16 count;
    uint8 state,led_st=0,cnt_USB_UART_con=0;;
    uint8 buffer[BUFFER_LEN];
    char tx_buffer[BUFFER_LEN];
   /* Main Loop: */
    for(;;)
    {
        if(USBUART_1_IsConfigurationChanged() != 0u) /* Host could send double SET_INTERFACE request */
        {
            if(USBUART_1_GetConfiguration() != 0u)   /* Init IN endpoints when device configured */
            {
               /* Enumeration is done, enable OUT endpoint for receive data from Host */
                USBUART_1_CDC_Init();
            }
        }         
        if(USBUART_1_GetConfiguration() != 0u)    /* Service USB CDC when device configured */
        {
            if(USBUART_1_DataIsReady() != 0u)               /* Check for input data from PC */
            {   
                count = USBUART_1_GetAll(buffer);           /* Read received data and re-enable OUT endpoint */
                if(count != 0u)
                {
                    while(USBUART_1_CDCIsReady() == 0u);    /* Wait till component is ready to send more data to the PC */ 
                    USBUART_1_PutData(buffer, count);       /* Send data back to PC */
                    /* If the last sent packet is exactly maximum packet size, 
                    *  it shall be followed by a zero-length packet to assure the
                    *  end of segment is properly identified by the terminal.
                    */
                    if(count == BUFFER_LEN)
                    {
                        while(USBUART_1_CDCIsReady() == 0u); /* Wait till component is ready to send more data to the PC */ 
                        USBUART_1_PutData(NULL, 0u);         /* Send zero-length packet to PC */
                    }
                }
            }  
            
            state = USBUART_1_IsLineChanged();              /* Check for Line settings changed */
            if(state != 0u)
            {  
                if(state & USBUART_1_LINE_CODING_CHANGED)   /* Show new settings */
                {
                    sprintf(tx_buffer,"BR:%4ld,DB:%d\n\r",USBUART_1_GetDTERate(),(uint16)USBUART_1_GetDataBits());
                    sprintf(tx_buffer,"SB:%s,Parity:%s\n\r", stop[(uint16)USBUART_1_GetCharFormat()], \
                                                         parity[(uint16)USBUART_1_GetParityType()]);
                }
 
                if(state & USBUART_1_LINE_CONTROL_CHANGED)  /* Show new settings */
                {   
                    state = USBUART_1_GetLineControl();
                    sprintf(tx_buffer,"DTR:%s,RTS:%s\n\r",  (state & USBUART_1_LINE_CONTROL_DTR) ? "ON" : "OFF", \
                                                        (state & USBUART_1_LINE_CONTROL_RTS) ? "ON" : "OFF");
                    cnt_USB_UART_con++;
                    
                    if (cnt_USB_UART_con > 1)
                        break;
                }
            }
        }
    }   
}
 
cs


emFile_V322c.zip

sd_card_test.zip


안녕하세요.


회사를 옮기면서 쓰게될 프로세서를 소개합니다.

이 프로세서(Psoc-5LP)는 ARM Cortex-M3계열로서,
특이점은 OP-AMP 와 ADC, ASIC을 Microcontroller와 조합해서 사용한다는 점입니다. 
This type of system is different from most mixed-signalembedded systems, which use a combination of amicrocontroller unit (MCU) and external analog and digitalperipherals, such as opamps, ADCs, and applicationspecificintegrated circuits (ASICs). 

다른 일반적인 MCU는 정해진 핀의 기능중 선택해서 사용하는 방식이나, 이 MCU(psoc 5LP)는 ASIC 회로를 꾸미고 핀에 붙이고 조합해서 씁니다. 예를 들어 디지탈 필터니 카운터, 디지탈 플립플롭들을 ASIC하듯이 회로도처럼 설계하여 MCU핀에 붙이면
외부에 Logic IC를 쓴 것과 같은 효과가 있습니다.
이 점이 저한테는 굉장히 특이하더군요.

컴파일러는 Cypress에서 제공하는 Psoc Creator 3.1을 사용합니다.
현재 공부를 진행 중인데, 왠만한 기능들이 라이브러리화되어 제공되고 라이브러리에서
회로도 툴(Orcad 와 비슷)처럼 부품을 빼서 그리면 기본 소스 코드가 생성됩니다.

공부를 진행하면서 시리즈로 올려볼까 합니다.

현재는 아직 프로그램 다운로드나 컴파일도 서툽니다. ^^





CC1310 을 사서 PCB에 꾸며서 , AT Command Application 을 넣고 테스트해 봤는데

아주 빠르고 좋았습니다. 

20ms 마다 18 바이트를 50번 보냈는데, 잘 전송되었고, 
10ms 마다 전송했는데, 멈추네요.(CC1310 문제인지, UART로 연결해 놓은 MCU 문제인지 아직 파악은 못했지만, 
일단 20ms 로 전송이 잘 되서, 그냥 원인은 알아보지 않고 프로젝트를 진행 할 예정입니다)

로라 모뎀을 일반용으로 쓸 때는, 2초에 1번씩 전송됐는데, CC1310은 거기에 비하면 엄청 빠른거죠.^^

예전에, 로라 모뎀을 일반용도로 쓴 적이 있었습니다. 그 때, 응답 속도가 너무 느려서 답답했었는데, 그 이유를 알 것 같습니다.
AT+I 01 명령으로 CC1310 도 Long Range Mode 로 설정하면, 거리가 더 많이 나오는데 응답속도가 현저히 느려졌습니다. 
아마도 로라 모뎀이 long range mode로 동작하도록 셋팅됐었나 봅니다






[ 보드 제작시에는 다음과 같은 내용을 참고해 주세요 ]

1. DIO_0 을 사용하면 동작이 안되는데, 왜 그런지 모르겠네요. 일단은 DIO_0 을 제외하고 사용하면 문제는 없습니다. 


2. 32.768KHz 외부 클럭은 사용하지 않아도 되더군요. 24MHz 크리스탈만 잘 달아 주면 됩니다. 


3. saw 필터를 사용하면 아주 조그마해 집니다. ^^

개발키트에는 USB to UART 디버거 칩에 연결되어서 다른 MCU에 연결해서 테스트를 할 수가 없어서 

UART 포트를 옮겨봤습니다.








CC1310 은 핀 수와 Flash 메모리 용량에 따라서 여러가지 모델이 있다.


가능하면 작은 패키지와 가격이 싼 모델로 구현을 해 보려고 했는데,
결론을 미리 말씀 드리면 32K는 안되고 64K 모델부터 되네요.

가격이 $2.5 @ 1K (CC1310F32,32K) 에서 $2.9 @ 1K(CC1310F64, 64K)로 올라가서 
가격이 $0.4 올라가버렸네요. ㅜㅜ


먼저 CC1310 의 메모리가 개발키트에는 128KB로 되어 있으므로 32K,64K 로 바꿔 보겠습니다.



[결론]

AT Command 프로그램을 적용하려면, 32K 모델은 사용할 수가 없고 적당한 모델은 64K 모델인 것 같습니다.



실제로 현재 테스트 결과, CC1310F64 / 32핀 모델에 프로그램을 했고 동작이 잘 됩니다.


처음에 CC1310 32핀 IC를 쓰려고 하는데, JTAG로 설계하니 핀이 좀 많이 소비된다 싶어서

메뉴얼을 찾아보니 cJTAG라는 방식이 있었습니다.

자세한 설명은 메뉴얼을 보시고, 어떤 핀을 연결하는지와 실제로 동작하는지를 알아봤습니다.




TI의 Sub 1GHz Microprocessor인 CC1310를 소개합니다.


RF 테스트를 하려면 보드가 2개 있어야 해서 개발키트(CC1310 Launchpad)를 2개 구입했습니다.

키트는 디버거(XDS110) 와 CC1310(RF MCU)가 포함되어 있습니다.




TI 사이트에 가서 CCS 를 다운 받아서 설치하면 여러가지 예제 소스를 제공 받을 수 있다.


RF EasyLink Network Processor 라는 프로젝트는 RF 관련 기능을 대부분 테스트할 수 있는 양방향 AT Command 방식의 프로그램이다.


각각의 CC1310 런치패드 보드에, 이 프로젝트를 컴파일하여 디버그 버튼을 누르면 프로그램이 CC1310 MCU에 들어가서 동작을 한다.





CC1310 런치패드 보드는 USB 케이블을 연결하면, 2개의 UART 포트가 생기는데,

터미날 프로그램에서 시리얼 포트를 설정할 때, Application/User UART 에 연결한다.


UART 상세 설정은 다음과 같다.

1. Baud Rate : 115200 bps

2. Stop bit : 1

3. Data bit : 8-bit

4. Flow control : None




PC쪽 터미날의 시리얼 포트 설정은 다음과 같습니다.




터미널 설정은 다음과 같이 조정합니다. 수정한 부분은 줄바꿈 수신 설정만 CR+LF 로 변경했습니다.



rfEasyLinkNp_CC1310 프로젝트가 실행되면, 처음에 터미날로 다음과 같은 내용을 출력함. (리셋하고 동작 시작한다는 뜻)


이 AT Command 프로젝트는 기본으로 echo 동작을 합니다. (AT 명령으로 echo 없앨 수 있음)



다음은 터미널에 연결하여 장치 테스트 과정입니다.




다음은 파라메터 테스트 입니다.




다음은 이 프로그램에서 사용한 AT Command 명령어 리스트 입니다.

T Parameters

Parameters offer set and get functionality.

The format of a parameter read command to get the TxPower paramter is:

“ATP00?

The response to a read will be of the format shown below, depending on the paramter it will be hex or decimal:

“-10

The format of an AT command to set the Frequency Parameter to 868MHz is:

“ATPFR=868000000

The response of a write will be of the format:

OK<CR>


The registers exposed for the EasyLink API are:

| Param | R/W | Description                      | Parameter(s)               |
|=======|=====|==================================|============================|
|  ST   |  R  | Read The last EasyLink status    | EasyLink status in 4B:     |
|       |     | returned                         | hex<br> Success = 0000     |
|       |     |                                  | Config_Error = 0001        |
|       |     |                                  | Param_Error = 0002         |
|       |     |                                  | Mem_Error = 0003           |
|       |     |                                  | Cmd_Error = 0004           |
|       |     |                                  | Tx_Error = 0005            |
|       |     |                                  | Rx_Error = 0006            |
|       |     |                                  | Rx_Timeout = 0007          |
|       |     |                                  | Rx_Buffer_Error = 0008     |
|       |     |                                  | Busy_Error = 0009          |
|       |     |                                  | Aborted = 000a             |
|-------|-----|----------------------------------|----------------------------|
|  AE   | R/W | UART Echo Enable                 | 0 or 1 to enable/disable   |
|       |     |                                  | echo                       |
|-------|-----|----------------------------------|----------------------------|
|  FR   | R/W | Read/Write frequency in kHz      | Frequency in 1B hex        |
|-------|-----|----------------------------------|----------------------------|
|  PW   | R/W | Read/Write tx power in dBm       | Power in decimal between   |
|       |     |                                  | -10 to 14dBm. Note ccfg    |
|       |     |                                  | changes are required for   |
|       |     |                                  | 14dBm outpur power         |
|-------|-----|----------------------------------|----------------------------|
|  BM   | R/W | Read/Write data mode for Tx/Rx   | Mode in 1B hex 0:ASCII     |
|       |     | data                             | 1:Binary                   |
|-------|-----|----------------------------------|----------------------------|
|  IE   |  R  | Read IEEE address                | None                       |
|-------|-----|----------------------------------|----------------------------|
|  AS   |  R  | Read address size in Bytes       | None                       |
|-------|-----|----------------------------------|----------------------------|
|  TS   | R/W | Read/Write Tx address            | 1-8B Tx address in hex     |
|-------|-----|----------------------------------|----------------------------|
|  RT   |  R  | Read current radio time          | None                       |
|-------|-----|----------------------------------|----------------------------|
|  TY   | R/W | Read/Write Time Type             | Time in 1B hex 0:Absolute  |
|       |     |                                  | Time 1:Relative Time       |
|-------|-----|----------------------------------|----------------------------|
|  TT   | R/W | Absolute or relative (based on   | Absolute/relative time in  |
|       |     | Time Type) radio time to Tx a    | units of 4MHz ticks in     |
|       |     | packet                           | decimal OR 0 for immediate |
|-------|-----|----------------------------------|----------------------------|
|  TR   | R/W | Absolute or relative (based      | Absolute/relative time in  |
|       |     | on Time Type) radio time to Rx a | units of 4MHz ticks in     |
|       |     | packet                           | decimal OR 0 for immediate |
|-------|-----|----------------------------------|----------------------------|
|  RO   | R/W | Relative time for Rx timeout     | Relative time in units of  |
|       |     |                                  | 4MHz ticks in decimal OR 0 |
|       |     |                                  | for never                  |
|-------|-----|----------------------------------|----------------------------|
|  LA   |  R  | Destination address of last Rx'ed| None                       |
|       |     | message                          |                            |
|-------|-----|----------------------------------|----------------------------|
|  LT   |  R  | Read absolute radio time of last | None                       |
|       |     | Rx'ed message                    |                            |
|-------|-----|----------------------------------|----------------------------|
|  LR   |  R  | Read RSSI of last Rx'ed message  | None                       |
|-------|-----|----------------------------------|----------------------------|
|  F0   | R/W | Read/Write address filter 0      |  1-8B address in hex       |
|-------|-----|----------------------------------|----------------------------|
|  F1   | R/W | Read/Write address filter 1      |  1-8B address in hex       |
|-------|-----|----------------------------------|----------------------------|
|  F2   | R/W | Read/Write address filter 2      |  1-8B address in hex       |
|-------|-----|----------------------------------|----------------------------|
|  TM   | R/W | Read/Write test mode             | Test mode in 1B hex        |
|       |     |                                  | 0:None/Cancel              |
|       |     |                                  | 1:Tone/Carrier Wave        |
|       |     |                                  | 2:Modulated Signal         |
|       |     |                                  | 3:PER Tx                   |
|       |     |                                  | 4:PER Rx                   |
|-------|-----|----------------------------------|----------------------------|
|  PI   | R/W | Read/Write PER Tx Bursts Interval| 1B time between PER bursts |
|       |     |                                  | in units of ms in Decimal  |
|-------|-----|----------------------------------|----------------------------|
|  PB   | R/W | Read/Write PER Tx Burst Size     | 1B Tx Burst Size in Hex    |
|-------|-----|----------------------------------|----------------------------|
|  PP   | R/W | Read/Write Number of PER Tx/Rx   | 1B Tx/Rx Packets in Hex    |
|       |     | Packets                          |                            |
|-------|-----|----------------------------------|----------------------------|
|  PL   | R/W | Read/Write PER Tx/Rx Packet      | 1B Tx/Rx Packet Length in  |
|       |     | Length                           | Hex                        |
|-------|-----|----------------------------------|----------------------------|
|GM00-03| R/W | Read/Write GPIO Mode             | 0:1 GPIO Value input/output|
|-------|-----|----------------------------------|----------------------------|
|GV00-03| R/W | Read/Write GPIO Value            | 0:1 GPIO Value             |
|-------|-----|----------------------------------|----------------------------|

AT Control Commands

The format of Control Commands are:

“AT+I 00

The response will be similar to:

“OK

The Commands exposed for the EasyLink AT API are:

| Command  | Description                        | Parameter(s)                |
|==========|====================================|=============================|
|   i/I    | Initialize the Radio               | 00: For 50kbps 2-GFSK       |
|          |                                    | 01: For 625bps Long Range   |
|          |                                    | Mode                        |
|          |                                    | 02: For User defined from   |
|          |                                    | SmartRF_Settings.c/h        |
|----------|------------------------------------|-----------------------------|
|  tx/TX   | Send a message to Tx Address       | x Data Bytes                |
|          | (PARAM PTA) at Tx Time (Param PTT) |                             |
|          | or Immediate if 0 or expired       |                             |
|----------|------------------------------------|-----------------------------|
|  rx/RX   | Turn on Radio to Receive Data at   | None                        |
|          | Rx Time set by Parameter `PRT` (or |                             |
|          | Immediate if 0), with timeout set  |                             |
|          | by Parameter "PRO"                 |                             |
|----------|------------------------------------|-----------------------------|
|  rs/RS   | Reset the CC13xx                   | None                        |
|----------|------------------------------------|-----------------------------|

Command Responses

Response for Register Write and Control Commands are formatted as:

| Resonse        | Description                                                |
|================|============================================================|
| OK<CR>         | Command or Register write successful                       |
|----------------|------------------------------------------------------------|
| Error 0001<CR> | Command or register read/write failed due to bad formatting|
|----------------|------------------------------------------------------------|
| Error 0002<CR> | Command or register read/write failed due to bad length    |
|----------------|------------------------------------------------------------|
| Error 0003<CR> | Command or register write failed due to a parameter Error  |
|----------------|------------------------------------------------------------|
| Error 0004<CR> | Command or register write failed due to a Memory Error     |
|----------------|------------------------------------------------------------|
| Error 0005<CR> | Command or register write failed due to Error From         |
|                | EasyLink API (EasyLink error is stored in Parameter "ST")  |
|----------------|------------------------------------------------------------|

The response to the “rx”"RX" (receive) Command is of the format:

  • For ASCII Data Mode:

    RX: Hello World<CR>
    OK<CR>
  • For Binary Data Mode:

    RX: 2fbb1aa8ec84045fb0c3e5236cb8cc5b3c<CR>
    OK<CR>

The response to the “rs”"RX" (reset) Command is of format:

  • For ASCII Data Mode:

    RESET:vxx.xx.xx<CR>

Where vxx.xx.xx is the version number of the EasyLink API

Test Modes

The EasyLink AT interface supports the following test modes:

  • Carrier Wave
  • Modulated Signal
  • PER Tx
  • PER Rx

Before running these commands you must first initialize the device using:

AT+I x<CR>

where x indicate the Phy settings used.

Carrier Wave:

This is enabled by Setting test mode to 1. To configure the Carrier Wave test mode use:

    ATPTM=1<CR>

To exit the Carrier Wave test mode:

    ATPTM=0<CR>

Modulated Signal:

This is enabled by Setting test mode to 2. To configure the Modulated Signal test mode use:

    ATPTM=2<CR>

To exit the Modulated Signal test mode:

    ATPTM=0<CR>


+ Recent posts