iotize
Administrator
Registered: 2007-07-09
Posts: 30
Sensor footprint
On the bottom layer of the STM32Primer, I had quickly a 8 pin sensor footprint. I expect to make a short development with the primer but I have not enough time. So, if somebody have times and ideas it can take a look on this datasheet : http://www.freescale.com/files/sensors/ … A6115A.pdf Enjoy. Benoit
quagmire
New member
Registered: 2007-10-24
Posts: 2
Re: Sensor footprint
If I read the data sheet correctly, the part needs a 5V supply to work correctly. Did you plan on getting this via USB power. If, so it will only work when hooked up to a PC. Or, did I miss a switched 5V source somewhere.
iotize
Administrator
Registered: 2007-07-09
Posts: 30
Re: Sensor footprint
Somebody tells me that this component should work also at 3V, it is necessary to validate this information by a test. Regards, Benoit
mtuxpe
New member
Registered: 2007-10-18
Posts: 5
Re: Sensor footprint
Hi, I can't find this sensor on schematics.
iotize
Administrator
Registered: 2007-07-09
Posts: 30
Re: Sensor footprint
This sensor does not exist on the schematic, only available on the footprint. I will recheck the possibility to use it at 3.3V, let me test it. Regards, Benoit
mtuxpe
New member
Registered: 2007-10-18
Posts: 5
Re: Sensor footprint
Benoit, This is my test application.
Code: /************************* (C) COPYRIGHT 2007 RAISONANCE **********************
* File Name : Application.c
* Author :
* Date First Issued :
* Description : Circle_App CircleOS application template.
* Revision :
*******************************************************************************/
/* Includes ------------------------------------------------------------------*/
#include "circle_api.h"
/* Private defines -----------------------------------------------------------*/
#define NEEDEDVERSION "V 1.7" // Put here the minimal CircleOS version needed by your application
/* Private define ------------------------------------------------------------*/
#define ADC1_DR_Address ((u32)0x4001244C)
/* Private variables ---------------------------------------------------------*/
ADC_InitTypeDef ADC_InitStructure;
DMA_InitTypeDef DMA_InitStructure;
char adcStrValue[20];
u32 ADC_ConvertedValue;
float press;
/* Private functions ---------------------------------------------------------*/
enum MENU_code MsgVersion(void);
/* Public variables ----------------------------------------------------------*/
const char Application_Name[8+1] = {"Hello"}; // max 8 characters for application name
/*******************************************************************************
* Function Name : Application_Ini
* Description : Initialization function of Circle_App. This function will
* be called only once by CircleOS.
* Input : None
* Return : MENU_CONTINUE_COMMAND
*******************************************************************************/
enum MENU_code Application_Ini ( void )
{
if(strcmp(UTIL_GetVersion(), NEEDEDVERSION) < 0)
{
return MsgVersion();
}
GPIO_InitTypeDef GPIO_InitStructure;
/* Enable ADC1 and GPIOA clock */
RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1 | RCC_APB2Periph_GPIOA, ENABLE);
/* Configure PA.1 (ADC Channel1) as analog input -------------------------*/
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;
GPIO_Init(GPIOA, &GPIO_InitStructure);
/* Configure PA.2 (ADC Channel2) as analog input -------------------------*/
// GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;
// GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;
// GPIO_Init(GPIOA, &GPIO_InitStructure);
// TODO: Write your application initialization function here.
return MENU_CONTINUE_COMMAND;
}
/*******************************************************************************
* Function Name : Application_Handler
* Description : Management of the Circle_App.
*
* Input : None
* Return : MENU_CONTINUE
*******************************************************************************/
enum MENU_code Application_Handler ( void )
{
const char msg[] ="ADC test";
DRAW_DisplayString(5,8,msg,sizeof(msg));
LED_Set ( LED_GREEN,LED_ON);
// DRAW_Line ( 0,0,0,0,0);
// DRAW_Line ( 1,1,2,1,RGB_ORANGE);
// TODO: Write your application handling here.
// This routine will get called repeatedly by CircleOS, until we
// return MENU_LEAVE
/* DMA channel1 configuration ----------------------------------------------*/
DMA_DeInit(DMA_Channel1);
DMA_InitStructure.DMA_PeripheralBaseAddr = ADC1_DR_Address;
DMA_InitStructure.DMA_MemoryBaseAddr = (u32)&ADC_ConvertedValue;
DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralSRC;
DMA_InitStructure.DMA_BufferSize = 1;
DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;
DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Disable;
DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord;
DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_HalfWord;
DMA_InitStructure.DMA_Mode = DMA_Mode_Circular;
DMA_InitStructure.DMA_Priority = DMA_Priority_Low;
DMA_InitStructure.DMA_M2M = DMA_M2M_Disable;
DMA_Init(DMA_Channel1, &DMA_InitStructure);
/* Enable DMA channel1 */
DMA_Cmd(DMA_Channel1, ENABLE);
/* ADC1 configuration ------------------------------------------------------*/
ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;
ADC_InitStructure.ADC_ScanConvMode = DISABLE;
ADC_InitStructure.ADC_ContinuousConvMode = DISABLE;
ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;
ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;
ADC_InitStructure.ADC_NbrOfChannel = 1;
ADC_Init(ADC1, &ADC_InitStructure);
/* ADC1 regular channel1 configuration */
// ADC_RegularChannelConfig(ADC1, ADC_Channel_2, 1, ADC_SampleTime_55Cycles5);
ADC_RegularChannelConfig(ADC1, ADC_Channel_1, 1, ADC_SampleTime_55Cycles5);
/* Enable ADC1 DMA */
ADC_DMACmd(ADC1, ENABLE);
/* Enable ADC1 */
ADC_Cmd(ADC1, ENABLE);
/* Start ADC1 Software Conversion */
ADC_SoftwareStartConvCmd(ADC1, ENABLE);
/* Test on Channel 1 DMA_FLAG_TC flag */
while(!DMA_GetFlagStatus(DMA_FLAG_TC1));
/* Clear Channel 1 DMA_FLAG_TC flag */
DMA_ClearFlag(DMA_FLAG_TC1);
// while ( ADC_GetFlagStatus(ADC1,ADC_FLAG_EOC) == RESET );
// ADC_ConvertedValue = ADC_GetConversionValue(ADC1);
ADC_ConvertedValue &= 0xfff;
ADC_ConvertedValue = (ADC_ConvertedValue*3300)/0x1000;
press = (313500+(float)ADC_ConvertedValue)/29700;
u16 upress = press;
// UTIL_uint2str(&adcStrValue,ADC_ConvertedValue,8,1);
UTIL_uint2str(&adcStrValue,upress,8,1);
DRAW_DisplayString(15,24,adcStrValue,sizeof(adcStrValue));
ADC_ConvertedValue = 0;
// If button is pushed exit
if ( BUTTON_GetState() == BUTTON_PUSHED )
{
BUTTON_WaitForRelease();
BUTTON_SetMode ( BUTTON_ONOFF_FORMAIN );
LED_Set ( LED_GREEN,LED_OFF);
LED_Set ( LED_RED,LED_OFF);
LCD_SetBackLightOn();
LCD_SetRotateScreen(1);
MENU_ClearCurrentCommand();
DRAW_SetDefaultColor ();
DRAW_Clear();
POINTER_SetMode ( POINTER_ON );
return MENU_LEAVE;
}
return MENU_CONTINUE; // Returning MENU_LEAVE will quit to CircleOS
}
/*******************************************************************************
* Function Name : MsgVersion
* Description : Display the current CircleOS version and the version needed
* exit to main menu after 4 secondes
*
* Input : None
* Return : MENU_CONTINUE
*******************************************************************************/
enum MENU_code MsgVersion(void)
{
int hh,mm,ss,ss2;
DRAW_DisplayString(5,60,"CircleOS",17);
DRAW_DisplayString(80,60,UTIL_GetVersion(),3);
DRAW_DisplayString(5,34,NEEDEDVERSION,3);
DRAW_DisplayString(40,34," required",12);
RTC_GetTime(&hh,&mm,&ss);
ss = ss + 4; // 4 secondes
ss = ss%60;
do
{
RTC_GetTime(&hh,&mm,&ss2);
}while (ss2 != ss); // do while < 4 secondes
return MENU_REFRESH;
}
lzyuan
New member
Registered: 2008-01-22
Posts: 2
Re: Sensor footprint
where can i find the schematic of the primer?
Francis
Administrator
From: France-Grenoble
Registered: 2007-07-09
Posts: 890
przemek
New member
Registered: 2008-02-16
Posts: 1
Re: Sensor footprint
Check out the second page of the schematics; I believe that VCC3 (U2 pin 3) is 5V; U2 is ST5R33 step-up voltage regulator.
iotize
Administrator
Registered: 2007-07-09
Posts: 30
Re: Sensor footprint
In fact, the ST5R33 is a step up regulator that generate in all the case a 3.3V. You can find the datasheet here http://www.stm32circle.com/projects/fil … T5R00.pdf. The goal of this regulator is to provide a fixe voltage value althought the battery voltage decrease. Benoit
jacques
Member
Registered: 2008-09-02
Posts: 10
Re: Sensor footprint
Benoit : Somebody tells me that this component should work also at 3V, it is necessary to validate this information by a test. Benoit
Yes it is working, output values are different that expected from datasheet, but after recalibration it is ok. We use it in a 3.3V design