Hi all ;-)
Es gibt zwar etliche Beispiele im Netz, ATTiny85/45/84 mit der Library
<SoftwareSerial.h> zur seriellen Ausgabe (UART) zu bewegen, leider
funktioniert keins bei mir.
Dann kanns eigentlich nur an den eingesetzten Versionen liegen.
Ich nutze Arduino SDK 1.6.7 und zum hochladen auf den µC, einen Raspi3
(avrdude) mit einem USB-SPI-programer:
1 | #avrdude -p t84 -P /dev/ttyACM0 -c stk500v2 -U flash:w:/myprogs/avr/softseriell.ino.tiny14.hex:i
|
Das generieren eines hex mit 'Kompilierte Binärdatei exportieren' bietet
nur der ATTiny-core (Boardverwalter) von
https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json
an
Die Spannungsversorgung und UART kommt vom Pi3 (3,3V).
ACHTUNG: Zum deaktivieren der Ausgabe beim Start siehe:
http://kampis-elektroecke.de/?page_id=1682
muss beim Pi3 noch in der /boot/config.txt -> core_freq=250 hinzugefügt
werden. Der UART ist dann /dev/ttyS0 !!
Beispiel aus dem Netz:
1 | #include <SoftwareSerial.h>
|
2 | //const int rx = PB3; // ATTiny45
|
3 | //const int tx = PB1; // ATTiny45
|
4 | // ** ATTiny84
|
5 | const int rx = PA7;
|
6 | const int tx = PA3;
|
7 | SoftwareSerial mySerial(rx, tx);
|
8 | int i = 0;
|
9 | char buf[12];
|
10 |
|
11 | void setup()
|
12 | {
|
13 | pinMode(rx, INPUT);
|
14 | pinMode(tx, OUTPUT);
|
15 | mySerial.begin(9600);
|
16 | }
|
17 |
|
18 | void loop()
|
19 | {
|
20 | if (mySerial.available() > 0) {
|
21 | buf[i] = mySerial.read();
|
22 | if (int(buf[i]) == 13 || int(buf[i]) == 10 ) { //If Carriage return has been reached
|
23 | mySerial.println(buf);
|
24 | for (int x = 0; x <= 10; x++) {
|
25 | buf[x] = ' ';
|
26 | }
|
27 | i = 0; //start over again
|
28 |
|
29 | } //if enter
|
30 | i++;
|
31 | } //If mySerial.available
|
32 | }//LOOP
|
Hat jemand eine Idee, warum der Tiny nix rausgibt?
VG aus LA
ralphi