[B96B_F446VE] Add Can test files + bug fix in can_api.c

pull/1520/head
adustm 2016-01-29 14:09:25 +01:00
parent 1325d8c8c2
commit 6ff8955d58
4 changed files with 19 additions and 13 deletions

View File

@ -317,27 +317,28 @@ void can_monitor(can_t *obj, int silent)
int can_mode(can_t *obj, CanMode mode)
{
int success = 0;
CAN_TypeDef *can = (CAN_TypeDef *)(obj->can);
CAN_TypeDef *can = (CAN_TypeDef *)(obj->can);
can->MCR |= CAN_MCR_INRQ ;
while((can->MSR & CAN_MSR_INAK) != CAN_MSR_INAK) {
}
switch (mode) {
case MODE_NORMAL:
can->BTR &= ~(((uint32_t)1 << 31) | ((uint32_t)1 << 30));
can->BTR &= ~(CAN_BTR_SILM | CAN_BTR_LBKM);
success = 1;
break;
case MODE_SILENT:
can->BTR |= ((uint32_t)1 << 31);
can->BTR &= ~((uint32_t)1 << 30);
can->BTR |= CAN_BTR_SILM;
can->BTR &= ~CAN_BTR_LBKM;
success = 1;
break;
case MODE_TEST_GLOBAL:
can->BTR |= ((uint32_t)1 << 30);
can->BTR &= ~((uint32_t)1 << 31);
case MODE_TEST_LOCAL:
can->BTR |= CAN_BTR_LBKM;
can->BTR &= ~CAN_BTR_SILM;
success = 1;
break;
case MODE_TEST_SILENT:
can->BTR |= (((uint32_t)1 << 31) | ((uint32_t)1 << 30));
can->BTR |= (CAN_BTR_SILM | CAN_BTR_LBKM);
success = 1;
break;
default:
@ -352,7 +353,7 @@ int can_mode(can_t *obj, CanMode mode)
int can_filter(can_t *obj, uint32_t id, uint32_t mask, CANFormat format, int32_t handle)
{
CanHandle.Instance = (CAN_TypeDef *)(obj->can);
CanHandle.Instance = (CAN_TypeDef *)(obj->can);
CAN_FilterConfTypeDef sFilterConfig;
sFilterConfig.FilterNumber = handle;

View File

@ -7,6 +7,9 @@ DigitalOut led2(LED2);
#if defined(TARGET_LPC1549)
// LPC1549 support only single CAN channel
CAN can1(D2, D3);
#elif defined(TARGET_B96B_F446VE)
// B96B_F446VE support only single CAN channel
CAN can1(PD_0, PD_1);
#else
CAN can1(p9, p10);
#endif
@ -36,7 +39,7 @@ void send() {
led1 = !led1;
}
#if !defined (TARGET_LPC1549)
#if (!defined (TARGET_LPC1549) && !defined(TARGET_B96B_F446VE))
void read() {
CANMessage msg;
printf("rx()\n");
@ -50,7 +53,7 @@ void read() {
int main() {
printf("main()\n");
ticker.attach(&send, 1);
#if !defined (TARGET_LPC1549)
#if (!defined (TARGET_LPC1549) && !defined(TARGET_B96B_F446VE))
can2.attach(&read);
#endif
while(1) {

View File

@ -5,6 +5,8 @@
CAN can1(D9, D8);
#elif defined(TARGET_LPC1768) || defined(TARGET_LPC4088)
CAN can1(p9, p10);
#elif defined(TARGET_B96B_F446VE)
CAN can1(PD_0, PD_1);
#endif
#define TEST_ITERATIONS 127

View File

@ -283,7 +283,7 @@ TESTS = [
"automated": True,
"duration": 20,
"peripherals": ["can_transceiver"],
"mcu": ["LPC1549", "LPC1768"],
"mcu": ["LPC1549", "LPC1768","B96B_F446VE"],
},
{
"id": "MBED_BLINKY", "description": "Blinky",
@ -554,13 +554,13 @@ TESTS = [
"id": "MBED_29", "description": "CAN network test",
"source_dir": join(TEST_DIR, "mbed", "can"),
"dependencies": [MBED_LIBRARIES],
"mcu": ["LPC1768", "LPC4088", "LPC1549", "RZ_A1H"]
"mcu": ["LPC1768", "LPC4088", "LPC1549", "RZ_A1H", "B96B_F446VE"]
},
{
"id": "MBED_30", "description": "CAN network test using interrupts",
"source_dir": join(TEST_DIR, "mbed", "can_interrupt"),
"dependencies": [MBED_LIBRARIES],
"mcu": ["LPC1768", "LPC4088", "LPC1549", "RZ_A1H"]
"mcu": ["LPC1768", "LPC4088", "LPC1549", "RZ_A1H", "B96B_F446VE"]
},
{
"id": "MBED_31", "description": "PWM LED test",