Coder Social home page Coder Social logo

hercules-phantom-lib's Introduction

hercules-phantom-lib

A common firmware library for all Team Phantom PCBs based off of the TMS570LS1224/1227 Hercules line

hercules-phantom-lib's People

Contributors

manojbr105 avatar rafguevara14 avatar

Watchers

Gabe Soares avatar  avatar

hercules-phantom-lib's Issues

Unify halcogen projects between VCU and BMS

The VCU and BMS run on the same hardware design. There is no reason not to configure all hardware upfront and never worry about configuration again until a new design is made

  • Run 1227 code on launchpad and see if it works. Use PhantomRelease1 branch
  • Test ECAP module with PWM so that merging can work (FUTURE WORK)

SPI Driver

(Explain how this peripheral could potentially be used in the car)

  • Propose an interface of functions (Do a quick design review w/ other firmware/application engineers)
  • Implement functions
  • Document Halcogen setup
  • Confirm operation on both Launchpad and VCU (can use Rpi Pico with MicroPython REPL)

Deliverables:

  • A new folder in the HAL folder containing...
    • readme.md w/ setup instructions, code snippets, and verification documentation
    • Header and implementation files

UART

(Explain how this peripheral could potentially be used in the car)

  • Propose an interface of functions (Do a quick design review w/ other firmware/application engineers)
  • Implement functions
  • Document Halcogen setup
  • Confirm operation on both Launchpad and VCU (can use Rpi Pico with MicroPython REPL)

Deliverables:

  • A new folder in the HAL folder containing...
    • readme.md w/ setup instructions, code snippets, and verification documentation
    • Header and implementation files

Create GPIO interrupts module

It can be a pain to set up interrupts in halcogen. There are quite a few GPIO pins that constantly move between the VCU/BMS. Having a small module to quickly set up IRQs on the fly would help development a lot.

  • Propose an interface of functions (Do a quick design review)
  • Implement functions
  • Document Halcogen setup
  • Confirm operation on both Launchpad and VCU

Create Watchdog task

The implementation is independent of the VCU/BMS. We need to enable and then continuously "pet" the watchdog in a timer or freeRTOS task.

Before this, we should determine the priority of the task to decide which tasks if left hanging, should trigger the watchdog.

Possibly even some logging to the EEPROM to determine if we are booting up from a watchdog reset. Outside the scope of this issue though

Design and implement Power-On-Self-Test (POST)

A power on self test occurs on boot up to validate what happened before powering on. There are many reason an MCU may reset but for the VCU/BMS I think there is only one.

The watchdog timer resets the microcontroller if the firmware hangs. The boards have an external watchdog IC that should have a register we can read to determine if it has reset the microcontroller. We should read this as part of the POST. If the watchdog did reset the VCU, we should do...[insert requirements here]

Probably for another issue, but we need to have context surrounding a potential reset by saving some state to the internal EEPROM on the MCU and reading what caused the reset. If it's something unusual, we should immediately go to shutdown

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.