mirror of https://github.com/ARMmbed/mbed-os.git
[B96B_F446VE] Add Can test files + bug fix in can_api.c
parent
1325d8c8c2
commit
6ff8955d58
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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",
|
||||
|
|
|
|||
Loading…
Reference in New Issue