-
Notifications
You must be signed in to change notification settings - Fork 21
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ATOM_CAN build fails for M5AtomS3 #26
Comments
Can you provide your program, this will help me locate the problem better. |
This is not my program, but yours: In the Arduino IDE just go to the menu File/Examples/M5Atom/ATOM_BASE/ATOM_CAN and try to build it for M5AtomS3 |
Might be a good idea to link to |
You can try this example #include <M5AtomS3.h>
#include "driver/twai.h"
// Pins used to connect to CAN bus transceiver:
#define RX_PIN 6
#define TX_PIN 5
// Interval:
#define TRANSMIT_RATE_MS 1000
#define POLLING_RATE_MS 1000
#define ARDUINO_USB_CDC_ON_BOOT 1
static bool driver_installed = false;
unsigned long previousMillis = 0; // will store last time a message was send
void setup() {
auto cfg = M5.config();
AtomS3.begin(cfg);
// Initialize configuration structures using macro initializers
twai_general_config_t g_config = TWAI_GENERAL_CONFIG_DEFAULT(
(gpio_num_t)TX_PIN, (gpio_num_t)RX_PIN, TWAI_MODE_NORMAL);
twai_timing_config_t t_config =
TWAI_TIMING_CONFIG_500KBITS(); // Look in the api-reference for other
// speed sets.
twai_filter_config_t f_config = TWAI_FILTER_CONFIG_ACCEPT_ALL();
// Install TWAI driver
if (twai_driver_install(&g_config, &t_config, &f_config) == ESP_OK) {
Serial.println("Driver installed");
} else {
Serial.println("Failed to install driver");
return;
}
// Start TWAI driver
if (twai_start() == ESP_OK) {
Serial.println("Driver started");
} else {
Serial.println("Failed to start driver");
return;
}
// Reconfigure alerts to detect TX alerts and Bus-Off errors
uint32_t alerts_to_enable = TWAI_ALERT_TX_IDLE | TWAI_ALERT_TX_SUCCESS |
TWAI_ALERT_TX_FAILED | TWAI_ALERT_ERR_PASS |
TWAI_ALERT_BUS_ERROR;
if (twai_reconfigure_alerts(alerts_to_enable, NULL) == ESP_OK) {
Serial.println("CAN Alerts reconfigured");
} else {
Serial.println("Failed to reconfigure alerts");
return;
}
// TWAI driver is now successfully installed and started
driver_installed = true;
}
static void send_message() {
// Send message
// Configure message to transmit
twai_message_t message;
message.identifier = 0x0F6;
message.data_length_code = 4;
for (int i = 0; i < 4; i++) {
message.data[i] = 0;
}
// Queue message for transmission
if (twai_transmit(&message, pdMS_TO_TICKS(1000)) == ESP_OK) {
printf("Message queued for transmission\n");
} else {
printf("Failed to queue message for transmission\n");
}
}
void loop() {
if (!driver_installed) {
delay(1000);
return;
}
uint32_t alerts_triggered;
twai_read_alerts(&alerts_triggered, pdMS_TO_TICKS(POLLING_RATE_MS));
twai_status_info_t twaistatus;
twai_get_status_info(&twaistatus);
if (alerts_triggered & TWAI_ALERT_ERR_PASS) {
Serial.println("Alert: TWAI controller has become error passive.");
}
if (alerts_triggered & TWAI_ALERT_BUS_ERROR) {
Serial.println(
"Alert: A (Bit, Stuff, CRC, Form, ACK) error has occurred on the "
"bus.");
Serial.printf("Bus error count: %lu\n", twaistatus.bus_error_count);
}
if (alerts_triggered & TWAI_ALERT_TX_FAILED) {
Serial.println("Alert: The Transmission failed.");
Serial.printf("TX buffered: %lu\t", twaistatus.msgs_to_tx);
Serial.printf("TX error: %lu\t", twaistatus.tx_error_counter);
Serial.printf("TX failed: %lu\n", twaistatus.tx_failed_count);
}
if (alerts_triggered & TWAI_ALERT_TX_SUCCESS) {
Serial.println("Alert: The Transmission was successful.");
Serial.printf("TX buffered: %lu\t", twaistatus.msgs_to_tx);
}
unsigned long currentMillis = millis();
if (currentMillis - previousMillis >= TRANSMIT_RATE_MS) {
previousMillis = currentMillis;
send_message();
}
}
|
This repo is linked on https://docs.m5stack.com/en/atom/Atomic%20CAN%20Base which also has pin definitions for M5AtomS3 which implies that the ATOM_CAN example should work for M5AtomS3, but already building fails:
The text was updated successfully, but these errors were encountered: