Skip to main content
Visitor II
October 11, 2007
Question

ST10F269 problem

  • October 11, 2007
  • 12 replies
  • 2311 views
Posted on October 11, 2007 at 08:30

ST10F269 problem

    This topic has been closed for replies.

    12 replies

    Visitor II
    September 19, 2007
    Posted on September 19, 2007 at 08:26

    Hello Sir

    I design new PCB for ST10F269, I use function Digital I/O analog I/O and RS232 transmit and receive the value .I use crystal 8MHz,But I don't use EXTERNAL RAM and EXTERNAL FLASH. And now I have a problem with the value into Hyper terminal incorrect ,I think The baud rate is not match, I'm check switch D15 D14 D13 for clock , It's not working.

    If somebody have a good idea for this please give one's opinion

    thank you

    Visitor II
    September 19, 2007
    Posted on September 19, 2007 at 09:19

    Hello sagai,

    I suspect you have a start-up problem.

    Could you please tell me what is the hardware on RPD pon (pin 84)?

    A special hardware must be connected on this pin in order to ensure a good reset and a good sampling of port0 (clock etc...).

    More details are given in the application notes available on the following links:

    http://www.st.com/stonline/products/literature/an/8594.pdf

    http://www.st.com/stonline/products/literature/an/8906.pdf

    Hope this helps you,

    Please let me know if you have any question.

    Best regards,

    Najoua.

    Visitor II
    September 19, 2007
    Posted on September 20, 2007 at 00:12

    Thank you sir for your reply .

    My point of quation is can i get st10 to work without using EXTERNAL RAM and EXTERNAL FLASH ? Base on st10 desing from eva269 board of FS Forth

    to answer you qoution about hardware on RPD pon (pin 84) i use R 220 K and C 10 uF pullup.

    Visitor II
    September 20, 2007
    Posted on September 20, 2007 at 05:56

    Hello sagai,

    Yes of course you don't need external memories (RAM or Flash ) to get the ST10 to work.

    The external RAM on the FS FORTH board is used for debug purposes.

    The external Flash can be used if the user application size is greater than the internal Flash size.

    Regards,

    Najoua.

    Visitor II
    September 20, 2007
    Posted on September 20, 2007 at 08:51

    I did remove jumper J1 on eva269 board for stop using external ram and the result still same as my own design the problem was the values that show in hyper terminal is incorrect only show .............

    my st10 circuit design base on FS FORTH model eva269 . Do you have any ideal to pointing me into right direction to get st10 running without using any external ram

    Visitor II
    September 24, 2007
    Posted on September 24, 2007 at 06:57

    Hello Sagai,

    Could you please tell me from where you are executing your application? I suppose from the Flash. If this is the case, I suppose that you are using the ST10Flasher tool to load the code in the Flash.

    Could you please tell me what are the steps done to load and to run your application?

    Is it possible to give me your code to have a look at it?

    Regards,

    Najoua.

    Visitor II
    September 25, 2007
    Posted on September 25, 2007 at 06:06

    Thank you sir for your reply .

    I did open st10 flasher

    - enter the bootstrap loader mode

    - reset the st10

    - click the erase flash button command

    - click on the Program - Verify button command

    Do you have any ideal to setting menu of st10 flasher

    thank you

    Best regards

    sagai

    Visitor II
    September 28, 2007
    Posted on September 28, 2007 at 06:42

    Hello sagai,

    You can refer to the AN on the following link

    http://www.st.com/stonline/books/pdf/docs/11323.pdf

    It shows the guidelines to use the ST10Flasher tool.

    Regards,

    Najoua.

    Visitor II
    October 1, 2007
    Posted on October 01, 2007 at 08:03

    Hello Sir,

    Thank you sir for your reply.

    I would like to get example of demo code that send output Thur RS232 do any one have that kind of code for me to study how it work ?

    Thank you very much

    Best regards,

    sagai.

    Visitor II
    October 1, 2007
    Posted on October 01, 2007 at 08:36

    /***********************************************************************/

    Hello Sagai,

    This is an example:

    ----------------------

    /* */

    /* SERIAL2 */

    // Initialize the Asynchronous Serial Communication interface ASC0 to

    // transmit a string at 9600 Baud, 8 Data and 1 Stopbit no Parity

    //

    // Use an interrupt to load the ASC0 Transmit Buffer Register

    // Use your system terminal program to display the message.

    /***********************************************************************/

    #include

    /********************************************************************/

    sfrbit DP20 _atbit(DP2,0);

    sfrbit DP21 _atbit(DP2,1);

    sfrbit DP22 _atbit(DP2,2);

    sfrbit DP23 _atbit(DP2,3);

    sfrbit DP310 _atbit(DP3,10);

    sfrbit P310 _atbit(P3,10);

    /********************************************************************/

    void init_sci_ch0( void );

    void delay( void );

    /********************************************************************/

    #pragma global

    static volatile char msg[] =

    {

    ''Hello World, this is ST10F276 but soon it will be ST10F29x''

    };

    /********************************************************************/

    void init_sci_ch0( void )

    {

    /* Port P3.10 = Serial Output, the TX pin */

    /* first set port, before changing the direction (avoid glitch) */

    _putbit (1, P3, 10);

    DP310 = 0x01;

    /* Asynchron mode, transmission only, no Error Checks */

    S0CON = 0x0001;

    /* 9600 baud the CPU clock frequency is 40MHz */

    S0BG = 0x81;

    /* Transmit Interrupt, ILVL=8, GLVL=0 */

    S0TIC = 0x60;

    /* Baud Rate Generator Start */

    S0R = 1;

    }

    /********************************************************************/

    // Serial transmit interrupt service routine

    interrupt( 0x2A ) void s0_tx_int( void )

    {

    static volatile char *cptr;

    static volatile char n=0;

    static volatile char m=0;

    if( n==0 )

    cptr = msg;

    m = *cptr;

    if( m != '\0' )

    {

    S0TBUF = m;

    cptr++;

    }

    else

    {

    n = 0;

    return;

    }

    n++;

    /* LEDs Games */

    if(P2++ > 4)

    {

    delay();

    P2 = 4;

    }

    }

    /********************************************************************/

    void delay( void )

    {

    volatile unsigned int t1, t2, t3=0;

    for( t1= 15000; t1 > 0; t1-- )

    {

    for( t2=0xffff; t2>0; t2++ )

    t3++;

    }

    }

    /********************************************************************/

    main()

    {

    volatile unsigned int p=0;

    /* P2.0 - 2.3 = output */

    DP20 = DP21 = DP22 = DP23 = 0x01;

    /* LEDs = OFF */

    P2 = 0xFF;

    delay();

    // init ASC0

    init_sci_ch0();

    /* Global Interrupt Enable */

    IEN = 1;

    /* Trigger Serial Transmission */

    S0TIR = 1;

    while( 1 )

    {

    /* LEDs Games */

    if(P2++ > 4)

    {

    delay();

    P2 = 1;

    }

    delay();

    /* Repeat Transmission after delay */

    if( p++ > 50 )

    {

    S0TIR=01;

    p=0;

    }

    }

    }

    /********************************************************************/

    Regards,

    Najoua.