====== SUT AVR Assembler Laboratory Node Hardware Reference ====== ===== Introduction ===== Each laboratory node is equipped with an Arduino Uno R3 development board, based on the ATmega328P MCU. It also has two extension boards: * external, analogue and digital communication board, * user interface board presented on the image {{ref>sutavrlabimage1}}. There are 10 laboratory nodes. They can be used independently, but for collaboration, nodes are interconnected symmetrically, with GPIOs described in the hardware reference section below. ===== Hardware reference ===== The table {{ref>sutavrlabtable1}} lists all hardware components and details. Note that some elements are accessible, but their use is not supported via the remote lab, e.g., buttons and a buzzer.\\ The node is depicted in the figure {{ref>sutavrlabimage1}} and its interface visual schematic is presented in the figure {{ref>sutavrlabimage1_2}}. The schematic presents only components used in scenarios and accessible via the VREL NextGen environment (controllable and observable via video stream), omitting unused components such as buttons, a buzzer, and a potentiometer.
{{ :en:multiasm:exercisesbook:avr:sut_avr_lab_node.png?600 |}} AVR (Arduino Uno) SUT Node
{{ :en:multiasm:exercisesbook:avr:untitled.png?600 |}} SUT node's visual interface components schematic
^ Component ID ^ Component ^ Hardware Details (controller) ^ Control method ^ GPIOs (as mapped to the Arduno Uno) ^ Remarks ^ | D1 | LED (red) | direct via GPIO | binary (0->on, 1->off) | GPIO13 | | | D2 | LED (red) | direct via GPIO | binary (0->on, 1->off) | GPIO12 | | | D3 | LED (red) | direct via GPIO | binary (0->on, 1->off) | GPIO11 | | | D4 | LED (red) | direct via GPIO | binary (0->on, 1->off) | GPIO10 | shared with interconnection with another module | | LED4 | 4x 7-segment display | indirect, via two 74HC575 registers | serial load to 2 registers, daisy-chained | GPIO8 - serial input of the controller\\ GPIO7 - shift data internally, raising edge (write next bit and shift data in serial)\\ GPIO4 - reset display buffer | |
AVR (Arduino Uno) SUT Node Hardware Details
===== Communication ===== Devices (laboratory nodes) are interconnected in pairs, so it is possible to work in groups and implement scenarios involving more than one device: * node 1 with node 2, * node 3 with node 4, * node 5 with node 6, * node 7 with node 8, * node 9 with node 10. Interconnections are symmetrical, so that device 1 can send data to device 2 and vice versa (similar to serial communication). Note that analogue inputs are also involved in the interconnection interface. See image {{ref>sutavrlabimage2}} for details.
{{ :en:multiasm:exercisesbook:avr:sutavrconnections.png?600 |}} SUT AVR nodes interconnection diagram
The in-series resistors protect the Arduino boards' outputs from excessive current when both pins are configured as outputs with opposite logic states. The capacitors on the analogue lines filter the PWM signal, providing a stable voltage for the analogue-to-digital converter to measure. ^ Arduino Uno pin name ^ AVR pin name ^ Alternate function ^ Comment ^ | D2 | PD2 | INT0 | Interrupt input | | D5 | PD5 | T1 | Timer/counter input | | D6 | PD6 | OC0A | PWM output to generate analogue voltage | | D9 | PB1 | OC1A | Digital output / Timer output | | D10 | PB2 | OC1B | Digital output / Timer output | | A5 | PC5 | ADC5 | Analogue input |
AVR (Arduino Uno) SUT Node Interconnections
Such a connection makes it possible to implement a variety of scenarios: * Connection of OC0A to ADC5 allows you to generate a voltage for measuring on input 5 of the analogue-to-digital converter. * Connection of OC1A to INT0 allows you to generate a digital periodic signal that can trigger hardware interrupts. * Connection of OC1B to T1 allows you to generate a digital periodic signal, the pulse count of which can be counted using timer T1. Nodes are interconnected in pairs: 1-2, 3-4, 5-6, 7-8, 9-10. Scenarios for data transmission between MCUs require booking and the use of correct nodes for sending and receiving messages.