NOTICE توجه: این یک موضوع قدیمی است که آخرین پست ارسالی آن مربوط به 3354 روز قبل است . لطفا فقط پاسخ ها ، سوالات و درخواست های 100 درصد مرتبط را به آن ارسال کنید و برای درخواست ها و سوالات جدید موضوع جدیدی را ایجاد کنید
نمایش نتایج: از 1 به 8 از 8

موضوع: مشگل با چی بی او اس برای دیسکاوری برد؟

  1. #1
    کاربر علاقه مند
    تاریخ عضویت
    Feb 2015
    نوشته ها
    22
    تشکر
    8
    تشکر شده 17 بار در 11 پست

    پیش فرض مشگل با چی بی او اس برای دیسکاوری برد؟

    سلامم،
    من چن وقته پیش کد دموی chibios که برای برد دیسکاوری بود را با کیل بدون مشکل ریختم روی برد دیسکاوری،
    بعد با فشار دادن دکمه ی یوزر برد باید مقادیر adc را روی uart می فرستاد اما واسه من هیچ دیتا نشون نمیده،تنظیمات سریال را درست انجام دادم
    برای وصل شدن به یوزارت هم از همون تبدیلی که برای وصل شدن به کوبی استفاده می کنیم، استفاده کردم (بدون وصل کردن 5 ولت)

    حالا به نظر شما ایراد کار از کجا هست؟
    به خاطر اختلاف ولتاژ 3.3 ttl با 5 ولت هست یا دلیل دیگه ای داره؟

  2. # ADS
    Circuit advertisement
    تاریخ عضویت
    Always
    نوشته ها
    Many
     

  3. #2
    کاربر علاقه مند
    تاریخ عضویت
    Feb 2015
    نوشته ها
    22
    تشکر
    8
    تشکر شده 17 بار در 11 پست

    پیش فرض

    فکر کنم بیشترتون رفتین سراغ LPC که دیگه انجمن stm جواب نمیدین؟!

    حالا من کد مین برنامه رو میذارم:
    کد:
    /*
        ChibiOS/RT - Copyright (C) 2006-2013 Giovanni Di Sirio
    
        Licensed under the Apache License, Version 2.0 (the "License");
        you may not use this file except in compliance with the License.
        You may obtain a copy of the License at
    
            http://www.apache.org/licenses/LICENSE-2.0
    
        Unless required by applicable law or agreed to in writing, software
        distributed under the License is distributed on an "AS IS" BASIS,
        WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
        See the License for the specific language governing permissions and
        limitations under the License.
    */
    
    #include "ch.h"
    #include "hal.h"
    #include "test.h"
    
    static void pwmpcb(PWMDriver *pwmp);
    static void adccb(ADCDriver *adcp, adcsample_t *buffer, size_t n);
    static void spicb(SPIDriver *spip);
    
    /* Total number of channels to be sampled by a single ADC operation.*/
    #define ADC_GRP1_NUM_CHANNELS   2
    
    /* Depth of the conversion buffer, channels are sampled four times each.*/
    #define ADC_GRP1_BUF_DEPTH      4
    
    /*
     * ADC samples buffer.
     */
    static adcsample_t samples[ADC_GRP1_NUM_CHANNELS * ADC_GRP1_BUF_DEPTH];
    
    /*
     * ADC conversion group.
     * Mode:        Linear buffer, 4 samples of 2 channels, SW triggered.
     * Channels:    IN11   (48 cycles sample time)
     *              Sensor (192 cycles sample time)
     */
    static const ADCConversionGroup adcgrpcfg = {
      FALSE,
      ADC_GRP1_NUM_CHANNELS,
      adccb,
      NULL,
      /* HW dependent part.*/
      0,
      ADC_CR2_SWSTART,
      ADC_SMPR1_SMP_AN11(ADC_SAMPLE_56) | ADC_SMPR1_SMP_SENSOR(ADC_SAMPLE_144),
      0,
      ADC_SQR1_NUM_CH(ADC_GRP1_NUM_CHANNELS),
      0,
      ADC_SQR3_SQ2_N(ADC_CHANNEL_IN11) | ADC_SQR3_SQ1_N(ADC_CHANNEL_SENSOR)
    };
    
    /*
     * PWM configuration structure.
     * Cyclic callback enabled, channels 1 and 4 enabled without callbacks,
     * the active state is a logic one.
     */
    static PWMConfig pwmcfg = {
      10000,                                    /* 10kHz PWM clock frequency.   */
      10000,                                    /* PWM period 1S (in ticks).    */
      pwmpcb,
      {
        {PWM_OUTPUT_ACTIVE_HIGH, NULL},
        {PWM_OUTPUT_DISABLED, NULL},
        {PWM_OUTPUT_DISABLED, NULL},
        {PWM_OUTPUT_ACTIVE_HIGH, NULL}
      },
      /* HW dependent part.*/
      0
    };
    
    /*
     * SPI2 configuration structure.
     * Speed 21MHz, CPHA=0, CPOL=0, 16bits frames, MSb transmitted first.
     * The slave select line is the pin 12 on the port GPIOA.
     */
    static const SPIConfig spi2cfg = {
      spicb,
      /* HW dependent part.*/
      GPIOB,
      12,
      SPI_CR1_DFF
    };
    
    /*
     * PWM cyclic callback.
     * A new ADC conversion is started.
     */
    static void pwmpcb(PWMDriver *pwmp) {
    
      (void)pwmp;
    
      /* Starts an asynchronous ADC conversion operation, the conversion
         will be executed in parallel to the current PWM cycle and will
         terminate before the next PWM cycle.*/
      chSysLockFromIsr();
      adcStartConversionI(&ADCD1, &adcgrpcfg, samples, ADC_GRP1_BUF_DEPTH);
      chSysUnlockFromIsr();
    }
    
    /*
     * ADC end conversion callback.
     * The PWM channels are reprogrammed using the latest ADC samples.
     * The latest samples are transmitted into a single SPI transaction.
     */
    void adccb(ADCDriver *adcp, adcsample_t *buffer, size_t n) {
    
      (void) buffer; (void) n;
      /* Note, only in the ADC_COMPLETE state because the ADC driver fires an
         intermediate callback when the buffer is half full.*/
      if (adcp->state == ADC_COMPLETE) {
        adcsample_t avg_ch1, avg_ch2;
    
        /* Calculates the average values from the ADC samples.*/
        avg_ch1 = (samples[0] + samples[2] + samples[4] + samples[6]) / 4;
        avg_ch2 = (samples[1] + samples[3] + samples[5] + samples[7]) / 4;
    
        chSysLockFromIsr();
    
        /* Changes the channels pulse width, the change will be effective
           starting from the next cycle.*/
        pwmEnableChannelI(&PWMD4, 0, PWM_FRACTION_TO_WIDTH(&PWMD4, 4096, avg_ch1));
        pwmEnableChannelI(&PWMD4, 3, PWM_FRACTION_TO_WIDTH(&PWMD4, 4096, avg_ch2));
    
        /* SPI slave selection and transmission start.*/
        spiSelectI(&SPID2);
        spiStartSendI(&SPID2, ADC_GRP1_NUM_CHANNELS * ADC_GRP1_BUF_DEPTH, samples);
    
        chSysUnlockFromIsr();
      }
    }
    
    /*
     * SPI end transfer callback.
     */
    static void spicb(SPIDriver *spip) {
    
      /* On transfer end just releases the slave select line.*/
      chSysLockFromIsr();
      spiUnselectI(spip);
      chSysUnlockFromIsr();
    }
    
    /*
     * This is a periodic thread that does absolutely nothing except flashing
     * a LED.
     */
    static WORKING_AREA(waThread1, 128);
    static msg_t Thread1(void *arg) {
    
      (void)arg;
      chRegSetThreadName("blinker");
      while (TRUE) {
        palSetPad(GPIOD, GPIOD_LED3);       /* Orange.  */
        chThdSleepMilliseconds(500);
        palClearPad(GPIOD, GPIOD_LED3);     /* Orange.  */
        chThdSleepMilliseconds(500);
      }
    }
    
    /*
     * Application entry point.
     */
    int main(void) {
    
      /*
       * System initializations.
       * - HAL initialization, this also initializes the configured device drivers
       *   and performs the board-specific initializations.
       * - Kernel initialization, the main() function becomes a thread and the
       *   RTOS is active.
       */
      halInit();
      chSysInit();
    
      /*
       * Activates the serial driver 2 using the driver default configuration.
       * PA2(TX) and PA3(RX) are routed to USART2.
       */
      sdStart(&SD2, NULL);
      palSetPadMode(GPIOA, 2, PAL_MODE_ALTERNATE(7));
      palSetPadMode(GPIOA, 3, PAL_MODE_ALTERNATE(7));
    
      /*
       * If the user button is pressed after the reset then the test suite is
       * executed immediately before activating the various device drivers in
       * order to not alter the benchmark scores.
       */
      if (palReadPad(GPIOA, GPIOA_BUTTON))
        TestThread(&SD2);
    
      /*
       * Initializes the SPI driver 2. The SPI2 signals are routed as follow:
       * PB12 - NSS.
       * PB13 - SCK.
       * PB14 - MISO.
       * PB15 - MOSI.
       */
      spiStart(&SPID2, &spi2cfg);
      palSetPad(GPIOB, 12);
      palSetPadMode(GPIOB, 12, PAL_MODE_OUTPUT_PUSHPULL |
                               PAL_STM32_OSPEED_HIGHEST);           /* NSS.     */
      palSetPadMode(GPIOB, 13, PAL_MODE_ALTERNATE(5) |
                               PAL_STM32_OSPEED_HIGHEST);           /* SCK.     */
      palSetPadMode(GPIOB, 14, PAL_MODE_ALTERNATE(5));              /* MISO.    */
      palSetPadMode(GPIOB, 15, PAL_MODE_ALTERNATE(5) |
                               PAL_STM32_OSPEED_HIGHEST);           /* MOSI.    */
    
      /*
       * Initializes the ADC driver 1 and enable the thermal sensor.
       * The pin PC1 on the port GPIOC is programmed as analog input.
       */
      adcStart(&ADCD1, NULL);
      adcSTM32EnableTSVREFE();
      palSetPadMode(GPIOC, 1, PAL_MODE_INPUT_ANALOG);
    
      /*
       * Initializes the PWM driver 4, routes the TIM4 outputs to the board LEDs.
       */
      pwmStart(&PWMD4, &pwmcfg);
      palSetPadMode(GPIOD, GPIOD_LED4, PAL_MODE_ALTERNATE(2));  /* Green.   */
      palSetPadMode(GPIOD, GPIOD_LED6, PAL_MODE_ALTERNATE(2));  /* Blue.    */
    
      /*
       * Creates the example thread.
       */
      chThdCreateStatic(waThread1, sizeof(waThread1), NORMALPRIO, Thread1, NULL);
    
      /*
       * Normal main() thread activity, in this demo it does nothing except
       * sleeping in a loop and check the button state, when the button is
       * pressed the test procedure is launched with output on the serial
       * driver 2.
       */
      while (TRUE) {
        if (palReadPad(GPIOA, GPIOA_BUTTON))
          TestThread(&SD2);
        chThdSleepMilliseconds(500);
      }
    }

  4. #3
    کاربر فعال aminta آواتار ها
    تاریخ عضویت
    Jan 2013
    نام
    امین تقی زاده
    نوشته ها
    146
    تشکر
    219
    تشکر شده 106 بار در 67 پست

    پیش فرض

    سلام
    کل پروژه کیل یا فایل هگز و باینری نهایی پروژه را بزارید تا من بریزم رو برد با ترمینال یک تستیش بکنم
    تنظیماته سریال را هم کامل بگید.
    متاسفانه با اینکه stm دیسکاوری سرتر از بقیه میکرو های داخل بازاره ولی هنوز کامل جا نیفتاده ولی ایشالا درست میشه

  5. کاربران : 2 تشکر کرده اند از شما aminta برای ارسال این پست سودمند:


  6. #4
    کاربر علاقه مند
    تاریخ عضویت
    Feb 2015
    نوشته ها
    22
    تشکر
    8
    تشکر شده 17 بار در 11 پست

    پیش فرض

    نقل قول نوشته اصلی توسط aminta نمایش پست ها
    سلام
    کل پروژه کیل یا فایل هگز و باینری نهایی پروژه را بزارید تا من بریزم رو برد با ترمینال یک تستیش بکنم
    تنظیماته سریال را هم کامل بگید.
    متاسفانه با اینکه stm دیسکاوری سرتر از بقیه میکرو های داخل بازاره ولی هنوز کامل جا نیفتاده ولی ایشالا درست میشه
    خیر از جوونیت ببینی:

    ARMCM4-STM32F407-DISCOVERY.rar

    لینک دانلود خود chibios شامل مثال ها و...هم هست:

    ChibiOS/RT free embedded RTOS | SourceForge.net
    ویرایش توسط Freeme : 21-02-2015 در ساعت 14:23

  7. #5
    کاربر فعال aminta آواتار ها
    تاریخ عضویت
    Jan 2013
    نام
    امین تقی زاده
    نوشته ها
    146
    تشکر
    219
    تشکر شده 106 بار در 67 پست

    Icon16 :|

    سلام
    اقا راسیاتش من کیبی را گرفتم وقتی خواستم تو کیل کامپایلش کنم ارور داد
    سرچ کردم فهمیدم تو ورژن های جدید کیل لینکر تغییر کرده و ...
    بحثیه باسه خودش اینم چنتا لینک که بدونی چی شده :
    Undefined symbol Image$RW_IRAM1$ZI$Limit
    Error: L6218E:
    لینکر
    بگذریم شما فایل هگز یا باینری که کیل تولید کرده بعد کامپایلو بزار من بریزم رو برد ببینم چی میشه "\

    ایشالا درست شه
    در مورد تنظیماته سریال شما چطور عمل کردید ؟
    من نگاه کردم فک کنم تنظیماتش این باشه :
    baud rate : 38400
    بقیشو نجستم!
    بعد سوال دیگه یک قسمت از هدر سریال جلو تمام uart ها false گذاشته ماله اون نیست؟
    کد:
    #if !defined(STM32_SERIAL_USE_USART1) || defined(__DOXYGEN__)
    #define STM32_SERIAL_USE_USART1             FALSE
    #endif
    شاید true کنید درست شه!

  8. تشکرها از این نوشته :


  9. #6
    کاربر علاقه مند
    تاریخ عضویت
    Feb 2015
    نوشته ها
    22
    تشکر
    8
    تشکر شده 17 بار در 11 پست

    پیش فرض

    نقل قول نوشته اصلی توسط aminta نمایش پست ها
    سلام
    اقا راسیاتش من کیبی را گرفتم وقتی خواستم تو کیل کامپایلش کنم ارور داد
    سرچ کردم فهمیدم تو ورژن های جدید کیل لینکر تغییر کرده و ...
    بحثیه باسه خودش اینم چنتا لینک که بدونی چی شده :
    Undefined symbol Image$RW_IRAM1$ZI$Limit
    Error: L6218E:
    لینکر
    بگذریم شما فایل هگز یا باینری که کیل تولید کرده بعد کامپایلو بزار من بریزم رو برد ببینم چی میشه "\

    ایشالا درست شه
    در مورد تنظیماته سریال شما چطور عمل کردید ؟
    من نگاه کردم فک کنم تنظیماتش این باشه :
    baud rate : 38400
    بقیشو نجستم!
    بعد سوال دیگه یک قسمت از هدر سریال جلو تمام uart ها false گذاشته ماله اون نیست؟
    کد:
    #if !defined(STM32_SERIAL_USE_USART1) || defined(__DOXYGEN__)
    #define STM32_SERIAL_USE_USART1             FALSE
    #endif
    شاید true کنید درست شه!
    آقا خیلی ممنون من این دوتا فایل را از برنامه کیل گذاشتم، امیدوارم کافی باشه:

    obj.rar

    در مورد اون نکاتی هم که فرمودید بررسی می کنم و نتیجه اش را به شما اعلام می کنم

  10. #7
    کاربر فعال aminta آواتار ها
    تاریخ عضویت
    Jan 2013
    نام
    امین تقی زاده
    نوشته ها
    146
    تشکر
    219
    تشکر شده 106 بار در 67 پست

    Red face :)

    من برنامه رو روی برد ریختم که 3 تا ال ای دی ها چشمک میزنه!
    کار کرد! دلت آب
    اینم عکسش :

    تنظیمات که تو عکس معلومه
    پایه ی tx به PA3
    پایه rx به PA2
    موفق باشید
    تصاوير کوچک فايل پيوست تصاوير کوچک فايل پيوست برای دیدن سایز بزرگ روی عکس کلیک کنید

نام: ss.jpg
مشاهده: 73
حجم: 115.7 کیلو بایت  

  11. تشکرها از این نوشته :


  12. #8
    کاربر علاقه مند
    تاریخ عضویت
    Feb 2015
    نوشته ها
    22
    تشکر
    8
    تشکر شده 17 بار در 11 پست

    پیش فرض

    نقل قول نوشته اصلی توسط aminta نمایش پست ها
    من برنامه رو روی برد ریختم که 3 تا ال ای دی ها چشمک میزنه!
    کار کرد! دلت آب
    اینم عکسش :

    تنظیمات که تو عکس معلومه
    پایه ی tx به PA3
    پایه rx به PA2
    موفق باشید
    احسنت مهندس جان،
    من طبق راهنمایی شما Baud rate را 38400 گذاشتم و جواب داد، از قبل نمی دونم چرا باود ریت 9600 توی ذهنم می گذاشتم، احتمالا مربوط به یک پروژه دیگه بوده.
    حالا چون این پروژه برای gcc هم نوشته شده می خوام با eclipse و gcc هم کامپایل کنم و روی لینوکس هم ازش جواب بگیرم،
    اگر جواب داد، آموزشش را در قسمت آموزش های متن باز می گذارم.
    متشکر

  13. تشکرها از این نوشته :


موضوعات مشابه

  1. پاسخ: 4
    آخرين نوشته: 29-12-2013, 23:52
  2. تبدیل asm to bas بیا اسمبلی به بیسکم
    توسط kazemii در انجمن AVR
    پاسخ: 6
    آخرين نوشته: 06-10-2013, 00:59
  3. مقایسه شکل موج با avr
    توسط fazel7 در انجمن AVR
    پاسخ: 11
    آخرين نوشته: 11-09-2010, 00:54
  4. مقایسه نرم افزارهای طراحی pcb
    توسط MRSTAR در انجمن آموزش نرم افزارهای برق و الکترونیک
    پاسخ: 1
    آخرين نوشته: 06-05-2010, 00:33
  5. کول دیسک
    توسط omid_safari در انجمن AT91 series (ATMEL)
    پاسخ: 18
    آخرين نوشته: 30-04-2010, 01:33

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •