boxtec Forum

Electronics => PCB Design => : microtherion April 20, 2015, 03:40:13 AM

: Mein neuestes Projekt: ChipHeadBang
: microtherion April 20, 2015, 03:40:13 AM
Oder: Warum soll man sich mit einem mediokren USB->Serial Interface begnügen, wenn man gleich noch einen mediokren Bitbang-Programmierer einbauen kann?

http://samelimmat.blogspot.ch/2015/04/introducing-chipheadbang.html (http://samelimmat.blogspot.ch/2015/04/introducing-chipheadbang.html)
: Re: Mein neuestes Projekt: ChipHeadBang
: dinoi April 20, 2015, 11:24:29 AM
Hallo Matthias, der sieht aber super aus, Gratulation.

Gruss Reto
: Re: Mein neuestes Projekt: ChipHeadBang
: boxtec-support April 21, 2015, 10:15:24 PM
Cooles Board! Sehr schade, dass die Verwendung auf dem Mac und unter Windows so fricklig ist, resp. einen kommerziellen Treiber benötigt. Unter Linux zumindest macht mir der Chip genauso viel Spass wie ein FTDI.

Grüsse - Christoph

P.S.: Trotz gegenteiliger Erwartungen sind die Erträge im PTC-Sicherungsverkauf zurzeit (noch) nicht nachhaltig gestiegen  8)
: Re: Mein neuestes Projekt: ChipHeadBang
: dinoi April 29, 2015, 08:47:23 AM
Hallo Christoph,
ist bei Windows die einmalige Installation fricklig oder dann auch der Betrieb?
Gemäss Suchmaschine wäre das hier der Treiber vom Chip Hersteller:
http://www.wch.cn/download/CH341SER_EXE.html (http://www.wch.cn/download/CH341SER_EXE.html)

Gruss Reto
: Re: Mein neuestes Projekt: ChipHeadBang
: dinoi January 22, 2016, 10:37:06 PM
Hallo Matthias,

ich habe Dein ChipHeadBang nachgebaut, leider funktioniert es nicht wie gewünscht. Ich arbeite mit Linux und der Arduino IDE und versuche einen 328'er zu programmieren.

Der CH340 Chip wird vom Linux erkannt und auch der Treiber scheint automatisch richtig zu sein. Ein Port erscheint und kann auch genutzt werden. Ich kann per Rx und Tx auch problemlos Daten von der Konsole auf den Arduino übertragen und empfangen. Auch der Reset funktioniert wenn ich ein Blink Sketch laufen lasse und dann zu programmieren versuche wird das Blink Sketch unterbrochen. Somit gehe ich davon aus, dass Rx,TX und auch der Reset funktionieren.

Nur finde ich leider das Problem nicht wieso avrdude keine Antwort vom Arduino erhält:

Diesen Fehler kriege ich:

avrdude: stk500_recv(): programmer is not responding

Wenn ich einen FTDI verwende, dann habe ich überhaupt kein Problem.

Hast Du eine Idee wo das Problem liegen könnte?

Hier noch die Printscreens:

Danke und Gruss
Reto
: Re: Mein neuestes Projekt: ChipHeadBang
: microtherion January 23, 2016, 03:29:12 PM
ich habe Dein ChipHeadBang nachgebaut, leider funktioniert es nicht wie gewünscht. Ich arbeite mit Linux und der Arduino IDE und versuche einen 328'er zu programmieren.
[...]
Nur finde ich leider das Problem nicht wieso avrdude keine Antwort vom Arduino erhält:

Das ist ein Detail, das ich zu wenig diskutiert hatte: Der Bitbang-Modus ist ein bisschen eine Bastelei:


Ich rekonstruiere mal mein Experiment und gebe dann etwas genauere Instruktionen.
: Re: Mein neuestes Projekt: ChipHeadBang
: dinoi January 24, 2016, 03:04:23 PM
Hallo Mathias,

ok, da bin ich froh dass ich nicht etwas falsch gebaut habe. Jedoch verstehe ich nicht wieso im Netz Leute mit CH340 Chips problemlos arbeiten können. Soweit ich das sehe ist Dein Board nichts spezielles.

Ich rekonstruiere mal mein Experiment und gebe dann etwas genauere Instruktionen.

Ja super das wäre gut.
Vielen Dank und Gruss
Reto
: Re: Mein neuestes Projekt: ChipHeadBang
: microtherion January 25, 2016, 02:17:34 AM
Also, es braucht folgenden Eintrag in ~/.avrduderc

programmer
  id    = "chipheadbang";
  desc  = "CH340 based bitbang, reset=!txd sck=rts mosi=dtr miso=cts";
  type  = "serbb";
  connection_type = serial;
  baudrate = 115200;
  reset = ~3;
  sck   = ~7;
  mosi  = ~4;
  miso  = ~8;
;


Dann kann man programmieren mit z.B.:

avrdude -i 300 -p attiny84 -c chipheadbang -P /dev/cu.Repleo-CH341-0000124  -U flash:w:test8K.hex:i


Ein Entscheidendes Argument ist der delay "-i 300". Leider ist es, so viel ich weiss, unmöglich, diesen in der avrdude Konfiguration zu spezifizieren, und ich bin nicht sicher, ob man dieses Argument in Arduino konfigurieren kann.
: Re: Mein neuestes Projekt: ChipHeadBang
: dinoi January 27, 2016, 09:13:11 AM
Super Danke werde es am Wochenende mal ausprobieren.
Gruss Reto
: Re: Mein neuestes Projekt: ChipHeadBang
: dinoi February 04, 2016, 10:31:10 PM
Hallo Matthias,

leider funktioniert es noch nicht, hast Du noch eine Idee, hier mein Eintrag in der avrdude.conf, die Command line uns das Ergebnis. Ich habe schon verschiedene Dinge ausprobiert. Der Arduino reagiert auf den Reset, es kommt aber nichts über die serielle Schnittstelle zurück.

Danke und Gruss
Reto
: Re: Mein neuestes Projekt: ChipHeadBang
: microtherion February 08, 2016, 06:15:29 AM
leider funktioniert es noch nicht, hast Du noch eine Idee, hier mein Eintrag in der avrdude.conf, die Command line uns das Ergebnis. Ich habe schon verschiedene Dinge ausprobiert. Der Arduino reagiert auf den Reset, es kommt aber nichts über die serielle Schnittstelle zurück.

Leider sehe ich keine attachments…
: Re: Mein neuestes Projekt: ChipHeadBang
: dinoi February 09, 2016, 08:42:39 AM
Leider sehe ich keine attachments…

Ja sorry ich weiss nicht was ich gemacht habe. Finde meinen Printscreen auch nicht mehr auf der Festplatte.
Ich hatte absichtlich schön die Config, den Befehl und das Protokoll drauf.
Werde das ganze nochmals testen und dann Dir den Printscreen senden.

Danke und Gruss
Reto
: Re: Mein neuestes Projekt: ChipHeadBang
: microtherion February 09, 2016, 04:39:46 PM
Ein Experiment, das den Versuch wäre, ist die Polarität der Signale umzukehren. In obigem Eintrag sind mehrere Signale "unlogisch" gesetzt, d.h. eigentlich müssten sie nicht-invertiert sein, aber aus irgend einem Grund (Treiber?) funktioniert es nur, wenn sie invertiert sind. Die "logische" Konfiguration wäre eigentlich:

  reset = ~3;
  sck   = 7;
  mosi  = 4;
  miso  = 8;
: Re: Mein neuestes Projekt: ChipHeadBang
: dinoi February 10, 2016, 11:45:27 PM
Hallo Matthias,

ich habe noch etwas experimentiert. Etwas ist mir aufgefallen, bei Deinem Layout ist vom ICSP zum FTDI Stecker der Tx mit dem Reset verbunden.

Wenn ich jedoch Tx und Reset im FTDI Stecker umdrehe funktioniert es immer noch nicht. Ich habe jetzt mal die 3 Signale von einem normalen FTDI Adapter und vom ChipHeatBang verglichen. Siehe Attachment, dabei ist das Tx noch invertiert. Leider schaffe ich es nicht durch die Konfiguration das zu invertieren auch mit dem "~" vor dem Port geht es nicht.

Evtl. hast Du noch eine Idee?

Danke und Gruss
Reto
: Re: Mein neuestes Projekt: ChipHeadBang
: microtherion February 11, 2016, 07:11:20 AM
ich habe noch etwas experimentiert. Etwas ist mir aufgefallen, bei Deinem Layout ist vom ICSP zum FTDI Stecker der Tx mit dem Reset verbunden.

Ich bin da bei der Terminologie etwas verwirrt: ICSP ist der 6 pin Stecker mit 4 Signalen (RESET, MOSI, MISO, SCK). FTDI ist für mich eine rein serielle Schnittstelle mit RX und TX. Oder reden wir von einem FTDI Adapter im ftdi_syncbb Bitbang Modus?

RESET auf dem ICSP Stecker ist tatsächlich mit TX verbunden, weil serielle ports einen "break" Zustand haben, in dem TX auf 0 gehalten wird, was genau das ist, was man für RESET braucht.

Wenn ich jedoch Tx und Reset im FTDI Stecker umdrehe funktioniert es immer noch nicht. Ich habe jetzt mal die 3 Signale von einem normalen FTDI Adapter und vom ChipHeatBang verglichen. Siehe Attachment, dabei ist das Tx noch invertiert. Leider schaffe ich es nicht durch die Konfiguration das zu invertieren auch mit dem "~" vor dem Port geht es nicht.

Meinst Du mit TX jetzt also das signal, das vom Computer zum Target läuft, also MOSI? Das kann man durch Hinzufügen bzw. weglassen eines `~` auf der Zeile "mosi" in der Konfiguration ändern.
: Re: Mein neuestes Projekt: ChipHeadBang
: dinoi February 11, 2016, 09:43:42 AM
Hallo Matthias,

FTDI ist für mich eine rein serielle Schnittstelle mit RX und TX. Oder reden wir von einem FTDI Adapter im ftdi_syncbb Bitbang Modus?

Ja sorry das hätte ich Dir vielleicht ganz am Anfang sagen sollen. Ich programmiere z.B. den Helvetino mit folgendem Adapter mit Rx/Tx und Reset was das genau für ein Modus ist weiss ich gar nicht. Ich nutze nur das beim Atmega328. (https://www.arduino.cc/en/Main/USBSerial (https://www.arduino.cc/en/Main/USBSerial))

Jetzt geht mir langsam ein Licht auf, dann nutzt Du den flachen Stecker also gar nicht zum programmieren sondern rein als serielle Schnittstelle?

Ich werde also mal den Atmega 326 über ICSP anschliessen und versuchen zu programmieren, ich gehe davon aus dass es funktionieren wird.

Gruss Reto
: Re: Mein neuestes Projekt: ChipHeadBang
: microtherion February 12, 2016, 05:11:37 PM
Hallo Matthias,

FTDI ist für mich eine rein serielle Schnittstelle mit RX und TX. Oder reden wir von einem FTDI Adapter im ftdi_syncbb Bitbang Modus?

Ja sorry das hätte ich Dir vielleicht ganz am Anfang sagen sollen. Ich programmiere z.B. den Helvetino mit folgendem Adapter mit Rx/Tx und Reset was das genau für ein Modus ist weiss ich gar nicht.

Ah, das ist hundskommune serielle Kommunikation. Geht mit dem flachen Stecker des ChipHeadBang natürlich auch zum Programmieren, aber nur wenn auf dem Empfänger-Chip ein Bootloader installiert ist.

Jetzt geht mir langsam ein Licht auf, dann nutzt Du den flachen Stecker also gar nicht zum programmieren sondern rein als serielle Schnittstelle?

Ich interessiere mich primär für Situationen ohne Bootloader. Beim Anderen ist irgendwie zu wenig Kunst da  8)