This is the mail archive of the ecos-discuss@sourceware.org mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: stm3210e eval board adc question


Hi again!

Thanks Christophe for taking the time to help me. Unfortunately I do
not see the packages you mention in my configuration. I can also not
add them by going in to Build -> Packages in the configtool. I tried
to create a new config for the stm3210e board with the 'all' template
instead of default and I still don't see those packages. I have tried
to search for the relevant files on the internet to see if I can maybe
add them manually, but this hasn't been fruitful either. Any ideas how
I may have access to these packages?

I installed ecos as indicated here
http://ecos.sourceware.org/getstart.html . I did notice that I have
libstdc++6.0.14. Could that be the problem? I would imagine not as I
can still use the configtool and build programs and run them on the
board.

Regards,
Jayant

On Wed, Apr 13, 2011 at 11:31, Christophe Coutand <ccoutand@stmi.com> wrote:
> Hi Jayant,
> You require the ADC package for
> the?STM32?HAL?(CYGPKG_DEVS_ADC_CORTEXM_STM32) to be present which I beleive
> must be included by default.
>
> To have access to /dev/adc00, you must enable
> CYGHWR_DEVS_ADC_CORTEXM_STM32_ADC1 as well as the channel 0 of this ADC.
>
> Christophe
> ________________________________
> From: jayant biswas [mailto:biswasj@gmail.com]
> Sent: Wed 4/13/2011 1:48 AM
> To: Christophe Coutand
> Cc: ecos-discuss@ecos.sourceware.org
> Subject: Re: [ECOS] stm3210e eval board adc question
>
> Thank you Christophe for your reply.
>
> So I added the ADC IO package as per your suggestion and I enabled the
> CYGPKG_IO_ADC_DEVICES option. Then I have modified my program as
> follows:
>
> ? int res = 0;
> ? cyg_io_handle_t handle;
>
> ? res = cyg_io_lookup("/dev/adc00", &handle);
> ? if(res != ENOERR) {
> ??????? ? printf("Error in cyg_io_lookup %d\n", res);
> ? }
>
> ? cyg_int32 sample = 0;
> ? cyg_uint32 len = sizeof(sample);
>
> ? res = cyg_io_read(handle, &sample, &len);
> ? if(res != ENOERR) {
> ??????? ? printf("Error in cyg_io_read %x\n", res);
> ? }
>
> ? printf("ADC value: 0x%x\n", sample);
>
> But cyg_io_lookup returns an error of -2. I am not sure if I need to
> add the packages mentioned here
> http://www.mail-archive.com/ecos-patches@ecos.sourceware.org/msg01672.html
> . But I am not able to find these packages among the available ones.
>
> Please let me know if I am missing something.
>
> Best regards,
> Jayant
>
>
> On Tue, Apr 12, 2011 at 18:19, Christophe Coutand <ccoutand@stmi.com> wrote:
>> Hi Jayant,
>>
>> Have you added the ADC IO package (CYGPKG_IO_ADC) ?
>>
>> CYGHWR_HAL_STM32_GPIO_IN is only relevant for digital IOs. To read ADC
>> channels, you must use cyg_io_lookup / cyg_io_read. Have a look at some
>> of the ADC test applications for AT91 or LPC24xx.
>>
>> Hope this helps.
>>
>> Christophe
>>
>>
>> -----Original Message-----
>> From: ecos-discuss-owner@ecos.sourceware.org
>> [mailto:ecos-discuss-owner@ecos.sourceware.org] On Behalf Of jayant
>> biswas
>> Sent: 12. april 2011 17:27
>> To: ecos-discuss@ecos.sourceware.org
>> Subject: [ECOS] stm3210e eval board adc question
>>
>> Hello everyone!
>>
>> I am new to this list and to ecos and the stm32 and am looking for
>> some help in reading from ADC inputs.
>>
>> Here is the test program I have used to see if I can read the inputs.
>> I am able to read the normal input from the user key on the board, but
>> I am not able to read the analog input. pot_val is always 0. I test my
>> program by holding on to the user key and changing the potentiometer
>> position and then hitting reset. Do you have any ideas?
>>
>> /* this is a simple hello world program */
>> #include <stdio.h>
>> #include <cyg/hal/hal_io.h>
>>
>> #define CYGHWR_POT ? ? ?CYGHWR_HAL_STM32_GPIO(C, 4, IN, ANALOG)
>> #define CYGHWR_BUT ? ? ?CYGHWR_HAL_STM32_GPIO(G, 8, IN, FLOATING)
>>
>> int cyg_user_start(void)
>> {
>> ?cyg_int32 pot_val = 10;
>> ?cyg_int32 but_val = 10;
>>
>> ?printf("Hello, eCos world!\n");
>> ?CYGHWR_HAL_STM32_GPIO_SET(CYGHWR_POT);
>> ?CYGHWR_HAL_STM32_GPIO_SET(CYGHWR_BUT);
>>
>> ?CYGHWR_HAL_STM32_GPIO_IN(CYGHWR_POT, &pot_val);
>> ?CYGHWR_HAL_STM32_GPIO_IN(CYGHWR_BUT, &but_val);
>>
>> ?printf("Potentiometer value is %d, button value is %d\n", pot_val,
>> but_val);
>> ?while(1);
>> ?return 0;
>> }
>>
>> I wasn't able to enable the cdl component CYGPKG_IO_ADC_DEVICES in my
>> ecos config as it wasn't available.
>>
>> I have an STM3210E Eval board and am using it with an Amontec JTAG
>> key. I used the default stm3210e template and changed the target to
>> ROM. I load the program directly to the ROM so I am not using anything
>> like Redboot.
>>
>> Thank you in advance for your help!
>>
>> Jayant
>>
>> --
>> Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
>> and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss
>>
>>
>

--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]